Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes
gmx_multisim_t Struct Reference

#include <gromacs/mdrunutility/multisim.h>

Description

Coordinate multi-simulation resources for mdrun.

Todo:
Change this to class

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.
 

Constructor & Destructor Documentation

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.


The documentation for this struct was generated from the following files: