[gmx-developers] double precision, gmx-3.3.1 and 3.3.2 do not work for me
Mark Abraham
Mark.Abraham at anu.edu.au
Fri Jan 18 02:31:58 CET 2008
Michael Brunsteiner wrote:
> Dear all,
>
> Recently i tried to run a job with double precision gromacs.
> The same job (exactly the same top, gro, mdp anmd ndx files)
> had finished previously successfully using the single precision
> version.
> If I use grompp_d and mdrun_d instead of the single precision
> versions the system blows up immediately (details below).
>
> I found a number of cases involving issues with double precision
> in the mailing list, but in none of these cases a viable solution
> seems to have been suggested or found (at least nothing like that
> is reported in the mailing list)
>
> Has anybody managed to get gromacs double precision working ?
> if yes, which version/architecture ?? did you use any special
> options when compiling ???
> thanks in advance for any suggestions!
>
> mic
>
> ps: I CC-ed this mail to the developers group, because
> i am pretty sure that there is some issue with the code
> here since even the (essentially unmodified) nmr2 and speptide
> cases in the tutorial do not work for me with double precision,
> and my hardware is not particularly exotic ...
You didn't send this to the users list, thanks to a typo.
Your problems are almost certainly caused by your usage, not by double
precision. I'd suggest doing the tutorials as written, without
modifications, before you suggest there are code bugs :-) Good general
advice is to not suggest the existence of code bugs unless you are close
to being able to provide a patch to the code.
> ============ details:
>
> Running an energy minimization with mdrun_d i see INF force on
> some atom at step one, the run continues, energies look
> reasonable, but the final coordinates are EXACTLY the same
> as the input coordinates.
> I then tried mdrun_d with different systems, and architectures
> and settings, and ALWAYS end up with INF forces at step one,
> sometimes the system blows up immediately, other times the run
> continues as above, but gives meaningless output (final coords
> are INF or the same as initial), depending on what system i use.
>
> The same simulations/system run always perfectly well at
> single precision.
This means your systems happen to have numerical problems caused by your
setup that are only manifest in a crash when run in double precision.
> more details ==================
>
> hardare/OS:
> gmx-3.3.1, on 32 bit PC, linux-2.6.9-42, or
> gmx-3.3.2, on AMD64 PC, linux-2.6.23-12
>
> on both architectures I compiled the double precision version
> of gmx exactly as suggested in the INSTALL file (with libfftw-3.0.1
> or libfftw-3.1.2, respectively)
>
> systems:
> solvated protein+ligand, ffamber99+GAFF, steep or md
> solvated protein+ligand, oplsaa+GAFF, steep or md
> protein+ligand, oplsaa+GAFF, steep or md
> ligand alone, no pbc, GAFF, steep or md
> protein alone, no pbc, oplsaa, steep or md
> tutorial system in nmr2, steep or md
> tutorial system in speptide, steep or md, ffoplsaa or GROMOS96-43a1
>
> not a single combination of the above works with double
> precision for me, all work with single precision.
>
> I did not include any top, gro or mdp files since
> everybody who wants to look at this issue will have
> the files in $GMX/share/gromacs/tutor/speptide/
> what i do (and see) there is:
>
> 1) pdb2gmx -f speptide.pdb
>
> 2) edit box size confg.gro to be 4,4,4 nm ... otherwise
> grompp complains about box too small for chosen cut-off
Well of course it does... there's no solvent so you haven't generated a box.
> 3) edit full.mdp, remove tc-grps since i don't have an
> index file, leave only one tc-group (System), also remove
> pressure coupling and energy groups, end up with a very
> simple MD simulation protocol.
Various default index groups get generated if you don't supply an index
file. See http://wiki.gromacs.org/index.php/thermostats for some info,
but it's rare for a solvated system to want only one tc-group.
> 4) grompp -f full.mdp -c conf.gro -p topol.top -o s.tpr
> grompp_d -f full.mdp -c conf.gro -p topol.top -o d.tpr
>
> 5) mdrun -v -s s.tpr
>
> ... simulation runs, finishes, gives expected output,
> i.e., reasonalbe energies, and final coordinates.
>
> 6) mdrun_d -v -s d.tpr
> [...]
> starting mdrun 'Protein'
> 5000 steps, 10.0 ps.
>
> Step 0, time 0 (ps) LINCS WARNING
> relative constraint deviation after LINCS:
> max inf (between atoms 19 and 20) rms nan
> bonds that rotated more than 30 degrees:
> atom 1 atom 2 angle previous, current, constraint length
> 19 20 90.0 0.1010
> 281686866016823847434832511361337248181675221203774497197277847790070178377365950364492576351372152146141788870055107668655716525337674987053251256757378550098244248945243314132943514520713689705150498648542666085263408519308824200259271187179492680147493977548447260911627128680731095431666726510526464.0000
> 0.1010
> etc ...
> then a Range checking error ...
>
>
>
> 7) if i use the em.mdp script instead of the full.mdp
> i see this:
>
> ========================= single prec.
> mdrun -v -s s.tpr
> [...]
> Step= 0, Dmax= 1.0e-02 nm, Epot= 1.60712e+02 Fmax= 6.05026e+03, atom= 97
> Step= 1, Dmax= 1.0e-02 nm, Epot= -9.44050e+02 Fmax= 7.10858e+03, atom= 136
> Step= 2, Dmax= 1.2e-02 nm, Epot= -1.16563e+03 Fmax= 1.04291e+04, atom= 136
> Step= 3, Dmax= 1.4e-02 nm, Epot= -1.30809e+03 Fmax= 1.12525e+04, atom= 136
> Step= 4, Dmax= 1.7e-02 nm, Epot= -1.33588e+03 Fmax= 1.50335e+04, atom= 136
> Step= 5, Dmax= 2.1e-02 nm, Epot= -1.36092e+03 Fmax= 1.65502e+04, atom= 136
> Step= 7, Dmax= 1.2e-02 nm, Epot= -1.67493e+03 Fmax= 2.39752e+03, atom= 136
> Step= 10, Dmax= 3.7e-03 nm, Epot= -1.71020e+03 Fmax= 3.29757e+03, atom= 136
> Step= 13, Dmax= 1.1e-03 nm, Epot= -1.72254e+03 Fmax= 1.62450e+03, atom= 136
>
> writing lowest energy coordinates.
>
> Steepest Descents converged to Fmax < 2000 in 14 steps
> Potential Energy = -1.7225410e+03
> Maximum force = 1.6245012e+03 on atom 136
> Norm of force = 4.9998721e+03
>
> ========================= double prec:
> mdrun_d -v -s d.tpr
>
> [...]
> Steepest Descents:
> Tolerance (Fmax) = 2.00000e+03
> Number of steps = 100
> Step= 0, Dmax= 1.0e-02 nm, Epot= -2.78108e+03 Fmax= inf, atom= 6
> Step= 1, Dmax= 1.0e-02 nm, Epot= -2.78108e+03 Fmax= inf, atom= 6
> Step= 35, Dmax= 1.4e-12 nm, Epot= -2.78108e+03 Fmax= inf, atom= 6
> Stepsize too small, or no change in energy.
> Converged to machine precision,
> but not to the requested precision Fmax < 2000
>
> writing lowest energy coordinates.
>
> Steepest Descents converged to machine precision in 36 steps,
> but did not reach the requested Fmax < 2000.
> Potential Energy = -2.78108059141006e+03
> Maximum force = inf on atom 6
> Norm of force = inf
>
>
>
>
> ____________________________________________________________________________________
> Looking for last minute shopping deals?
> Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
> _______________________________________________
> gmx-developers mailing list
> gmx-developers at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-developers-request at gromacs.org.
>
More information about the gromacs.org_gmx-developers
mailing list