Gromacs
2020-beta1
|
#include <memory>
#include <string>
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/gmxmpi.h"
#include "gromacs/utility/mpiinplacebuffers.h"
Declares the multi-simulation support routines.
Classes | |
struct | gmx_multisim_t |
Coordinate multi-simulation resources for mdrun. More... | |
Macros | |
#define | gmx_sum_sim gmx_sumf_sim |
Convenience define for sum of reals. | |
Functions | |
void | gmx_sumi_sim (int nr, int r[], const gmx_multisim_t *ms) |
Calculate the sum over the simulations of an array of ints. | |
void | gmx_sumli_sim (int nr, int64_t r[], const gmx_multisim_t *ms) |
Calculate the sum over the simulations of an array of large ints. | |
void | gmx_sumf_sim (int nr, float r[], const gmx_multisim_t *ms) |
Calculate the sum over the simulations of an array of floats. | |
void | gmx_sumd_sim (int nr, double r[], const gmx_multisim_t *ms) |
Calculate the sum over the simulations of an array of doubles. | |
std::vector< int > | gatherIntFromMultiSimulation (const gmx_multisim_t *ms, int localValue) |
Return a vector containing the gathered values of localValue found on the master rank of each simulation. | |
void | check_multi_int (FILE *log, const gmx_multisim_t *ms, int val, const char *name, gmx_bool bQuiet) |
Check if val is the same on all simulations for a mdrun -multidir run. More... | |
void | check_multi_int64 (FILE *log, const gmx_multisim_t *ms, int64_t val, const char *name, gmx_bool bQuiet) |
Check if val is the same on all simulations for a mdrun -multidir run. More... | |
static bool | isMultiSim (const gmx_multisim_t *ms) |
Are we doing multiple independent simulations? | |
bool | isMasterSim (const gmx_multisim_t *ms) |
Are we the master simulation of a possible multi-simulation? | |
bool | isMasterSimMasterRank (const gmx_multisim_t *ms, bool isMaster) |
Are we the master rank (of the master simulation, for a multi-sim). More... | |
void | multiSimBarrier (const gmx_multisim_t *ms) |
Make a barrier across all multi-simulation master ranks. | |
void check_multi_int | ( | FILE * | log, |
const gmx_multisim_t * | ms, | ||
int | val, | ||
const char * | name, | ||
gmx_bool | bQuiet | ||
) |
Check if val is the same on all simulations for a mdrun -multidir run.
The string name is used to print to the log file and in a fatal error if the val's don't match. If bQuiet is true and the check passes, no output is written.
void check_multi_int64 | ( | FILE * | log, |
const gmx_multisim_t * | ms, | ||
int64_t | val, | ||
const char * | name, | ||
gmx_bool | bQuiet | ||
) |
Check if val is the same on all simulations for a mdrun -multidir run.
The string name is used to print to the log file and in a fatal error if the val's don't match. If bQuiet is true and the check passes, no output is written.
bool isMasterSimMasterRank | ( | const gmx_multisim_t * | ms, |
bool | isMaster | ||
) |
Are we the master rank (of the master simulation, for a multi-sim).
This rank prints the remaining run time etc.