[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