Gromacs
5.1.4
|
This file declares functions for inter-rank signalling by mdrun.
This handles details of responding to termination conditions, coordinating checkpoints, and coordinating multi-simulations.
Classes | |
class | gmx::ArrayRef< T > |
STL-like container for an interface to a C array (or part of a std::vector). More... | |
struct | gmx_signalling_t |
Object used by mdrun ranks to signal to each other. More... | |
Enumerations | |
enum | { eglsCHKPT, eglsSTOPCOND, eglsRESETCOUNTERS, eglsNR } |
Simulation conditions to transmit. More... | |
Functions | |
void | init_global_signals (struct gmx_signalling_t *gs, const t_commrec *cr, const t_inputrec *ir, int repl_ex_nst) |
Construct a struct gmx_signalling_t. | |
gmx::ArrayRef< real > | prepareSignalBuffer (struct gmx_signalling_t *gs) |
Fill the array of reals in which inter- and intra-simulation signals will be communicated with the signal values to be sent. | |
void | handleSignals (struct gmx_signalling_t *gs, const t_commrec *cr, bool bInterSimGS) |
Handle intra- and inter-simulation signals recieved. More... | |
anonymous enum |
Simulation conditions to transmit.
Keep in mind that they are transmitted to other ranks through an MPI_Reduce after casting them to a real (so the signals can be sent together with other data). This means that the only meaningful values are positive, negative or zero.
void handleSignals | ( | struct gmx_signalling_t * | gs, |
const t_commrec * | cr, | ||
bool | bInterSimGS | ||
) |
Handle intra- and inter-simulation signals recieved.
If a multi-simulation signal should be handled, communicate between simulation-master ranks, then propagate from the masters to the rest of the ranks for each simulation.
Then, set the flags that mdrun will use to respond to the signals received.