[gmx-developers] double precision, gmx-3.3.1 and 3.3.2 do not work for me
Michael Brunsteiner
mbx0009 at yahoo.com
Fri Jan 18 01:10:40 CET 2008
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 ...
============ 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.
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
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.
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
More information about the gromacs.org_gmx-developers
mailing list