Skip to content
  • Mark Abraham's avatar
    Removed unnecessary inter-simulation signalling · d5bd278b
    Mark Abraham authored
    Generally, multi-simulation runs do not need to couple the simulations
    (discussion at #692). Individual algorithms implemented with
    multi-simulations might need to do so, but should take care of their
    own details, and now do. Scaling should improve in the cases where
    simulations are now decoupled.
    
    It is unclear what the expected behaviour of a multi-simulation should
    be if the user supplies any of the possible non-uniform distributions
    of init_step and nsteps, sourced from any of .mdp, .cpt or command
    line. Instead, we report on the non-uniformity and proceed. It's
    always possible that the user knows what they are doing. In
    particular, now that multi-simulations are no longer explicitly
    coupled, any heterogeneity in the execution environment will lead to
    checkpoints and -maxh acting at different time steps, unless a
    user-selected algorithm requires that the simulations stay coordinated
    (e.g. REMD or ensemble restraints).
    
    In the implementation of signalling, we have stopped checking gs for
    NULL as a proxy for whether we should be doing signalling at that
    communication phase. Replaced with a helper object in which explicit
    flags are set. Added unit tests of that functionality.
    
    Improved documentation of check_nstglobalcomm. mdrun now reports the
    number of steps between intra-simulation communication to the
    log file.
    
    Noted minor TODOs for future cleanup.
    
    Added some trivial test cases for termination by maxh in normal-MD,
    multi-sim and REMD cases. Refactored multi-sim tests to make this
    possible without duplication. This is complicated by the way filenames
    get changed by mdrun -multi by the former par_fn, so cleaned up the
    way that is handled so it can work and be re-used better. Introduced
    mdrun integration-test object library to make that build system work a
    little better. Made some minor improvements to Doxygen setup for
    integration tests.
    
    Fixes #860, #692, #1857, #1942.
    
    Change-Id: I5f7b98f331db801b058ae2b196d79716b5912b09
    d5bd278b