[gmx-developers] Double precision restarts are exact, single precision are not in gromacs 3.2.1
hessb at mpip-mainz.mpg.de
Mon Jul 25 10:40:43 CEST 2005
Mark Abraham wrote:
> After posting twice to gmx-users about this problem and apparently
> being ignored, I've done yet more testing and discovered a clear
> difference in the way single precision and double precision gromacs
> handle MD restarts in version 3.2.1 (using Berendsen thermostat and
> barostat, and PME, on Pentium 4 architecture).
> Single precision restarts using the previous run's trajectory (.trr)
> and energy (.edr) files to obtain the configuration and other
> information (and using unconstrained_start = yes, and gen_vel = no in
> the .mdp file to make sure that the old configuration is preserved) do
> in fact reproduce the configuration exactly, in that the energy
> components calculated by the force field are identical in Step 0 of
> the restart with those of the final Step in the previous run. However
> the total pressure is different, and by 10 steps later (my next output
> interval), all energy components as well as the pressure have diverged
> from those obtained for a run. This suggests that values used to
> calculate the total pressure (e.g. the virial) are not being preserved
> correctly across the restart, and this is subsequently perturbing the
> system, at least through the barostat.
> However double precision gromacs performs "correctly" - all energy
> components and the total pressure are reproduced correctly in Step 0
> of the restart, and future steps agree exactly (within output
> precision over only a few tens of MD steps) with those obtained from a
> run that extended over the restart time from the original starting point.
> This suggests that something is being written or read at an
> inappropriate precision in the .edr files. Can this be brought to the
> attention of somebody who knows how that code is supposed to work,
> please? They may wish to see if they can reproduce my observations &
> work out what is wrong.
I have always gotten exact restarts in single precision.
Could you try restarting with a tpr obtained from tpbconv with a trr and
I don't think there is a difference between single and double precision.
You might not see the difference in double precision as it will be in
the 10 decimal
or so which is often not printed.
More information about the gromacs.org_gmx-developers