[gmx-users] Identical energies generated in a rerun calculation ... but ...

Mark Abraham Mark.Abraham at anu.edu.au
Wed Apr 22 13:37:54 CEST 2009


Luca Mollica wrote:
> Dear users,
> 
> I am experiencing some troubles in using GMX 4.0.4 trying to rerun 
> trajectories and obtaining energies for single residues and/or portion 
> of proteins. According to the mdrun command help and to my experience 
> with the previous versions of GROMACS, I have edited my mdp file 
> including the desired groups for energy calculation, grompped it and 
> reruned the previous calculation with the "original" trr trajectory.
> I have noticed a different behaviour of mdrun plus -rerun flag between 
> the usage of a single CPU or the original number of CPU used in the 
> production run: that is, in the original production run I have used 24 
> CPU (12 for PME, nosum flag used), in the trajectory rerun step I have 
> tried to use both 24 CPU or single CPU and the result was different and 
> in the case of parallel run "strange". The parallel rerun energy file 
> led to an energy file made of a column of the same number, whereas the 
> single CPU one led to a normal energy trend vs time: interestingly, the 
> first value of this last calculation coincided with the one repeated in 
> the previous "strange" file.
> Hence, the single CPU recalculation works correctly, despite the fact 
> that (as expected) it takes longer time for huge trajectories with 
> respect to parallel run: but what's wrong with parallel rerun ? Is it a 
> bug of the newer version of the code or am I missing something in the 
> comprehnsion of how the rerun issue is working at code level ? It seems 
> to be more likely a code bug ... but I wait for your comments and/or 
> suggestions.

Ordinarily I'd suggest you'd probably managed to mismatch trajectory or 
run input files, but there was another report less than 24 hours ago of 
what appears to be a single-processor rerun producing the same numbers. 
This suggests that a single-processor rerun is loading a structure that 
is the same as the first one loaded by a multi-processor rerun (i.e. the 
first one in the trajectory) and then not ever loading a new one 
correctly. Can you see if these values are consistent with those 
reported for this step for the original simulation? They might differ 
slightly because of the timing of neighbour-searching. What step numbers 
are being reported in the rerun .log file?

I had a quick look at the code, but couldn't see any problem in do_md(). 
The first frame gets read with read_first_frame, the data gets copied 
from rerun_fr to the appropriate places, and at the end of the loop, 
read_next_frame is called. There doesn't appear to be any way you could 
get a difference between single- or multi-processor runs in the way you 
describe.

Mark



More information about the gromacs.org_gmx-users mailing list