Gromacs
2020
|
#include <gromacs/mdrunutility/multisim.h>
Coordinate multi-simulation resources for mdrun.
Public Member Functions | |
gmx_multisim_t () | |
Default constructor. | |
gmx_multisim_t (MPI_Comm comm, gmx::ArrayRef< const std::string > multidirs) | |
Constructor useful for mdrun simulations. More... | |
~gmx_multisim_t () | |
Destructor. | |
Public Attributes | |
int | nsim = 1 |
The number of simulations in the set of multi-simulations. | |
int | sim = 0 |
The index of the simulation that owns this object within the set. | |
MPI_Group | mpi_group_masters = MPI_GROUP_NULL |
The MPI Group between master ranks of simulations, valid only on master ranks. | |
MPI_Comm | mpi_comm_masters = MPI_COMM_NULL |
The MPI communicator between master ranks of simulations, valid only on master ranks. | |
mpi_in_place_buf_t * | mpb = nullptr |
Communication buffers needed if MPI_IN_PLACE isn't supported. | |
gmx_multisim_t::gmx_multisim_t | ( | MPI_Comm | comm, |
gmx::ArrayRef< const std::string > | multidirs | ||
) |
Constructor useful for mdrun simulations.
Splits the communicator into multidirs.size() separate simulations, if >1, and creates a communication structure between the master these simulations.
Valid to call regardless of build configuration, but multidirs
must be empty unless a real MPI build is used.