[gmx-developers] Reproducible runs with DLB

Berk Hess hess at cbr.su.se
Fri Jul 22 13:56:21 CEST 2011


On 07/21/2011 11:47 PM, XAvier Periole wrote:
>
> On Jul 21, 2011, at 3:43 PM, Shirts, Michael (mrs5pt) wrote:
>
>>>> And an even more useful option would be to be able to write out
>>>> conformations more often than in the original run. That would allow 
>>>> one
>>>> run long simulations and go back and zoom in a particular time
>>>> period of the simulation where some interesting event occurred.
>>
>> I'll add the plug that having this sort of functionality would be 
>> great, if
>> possible. Could only really be done on the same machine, and may be
>> impossible since on restart, the order of operations might be 
>> different, and
>> chaos would get you very quickly, but it would be great!
> That is what I thought! But mark seem to suggest it is possible.
Any dynamic load balancing based on actual timings is never reproducible,
unless you would store all the timings, which is very impractical.
One could load balance based on flops, as the GMX_DLB_FLOP env var
does, which is only intended for debugging purposes. But that will not give
good load balancing. Therefore it's not worth storing the complete dlb 
state.

You could use the -dd option and the hidden options -ddcsx, -ddcsy and 
-ddcsz
(see mdrun -h -hidden) to do static load balancing. A string is required 
with
the relative sizes of the domains along each dimension, for example
-ddcsx "1.2 0.9 0.9 1.2" for 4 domains along x.
But the load balancing efficiency will depend very much on your system.
As only a few steps are required for accurate timings, you can quickly
try a few -dd and size settings to see if you can get reasonable 
performance.

Berk




More information about the gromacs.org_gmx-developers mailing list