Gromacs  2024.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes
gmx::SimulationWorkload Class Reference

#include <gromacs/mdtypes/simulation_workload.h>

Description

Manage what computation is required during the simulation.

Holds information on the type of workload constant for the entire simulation, and independent of the particle interactions handled on any specific domain.

An object of this type is constructed at the beginning of the simulation and is expected to not change. Additionally, the initialization is uniform across ranks of a simulation, even with MPMD decomposition and separate PME ranks.

Public Member Functions

bool haveGpuPmeOnPpRank () const
 Whether PME GPU is active on this PP rank (note that currently only PP ranks use SimulationWorkload)
 

Public Attributes

bool computeNonbonded = false
 Whether to compute nonbonded pair interactions.
 
bool computeNonbondedAtMtsLevel1 = false
 Whether nonbonded pair forces are to be computed at slow MTS steps only.
 
bool computeMuTot = false
 Whether total dipole needs to be computed.
 
bool useCpuNonbonded = false
 If we have calculation of short range nonbondeds on CPU.
 
bool useGpuNonbonded = false
 If we have calculation of short range nonbondeds on GPU.
 
bool useCpuPme = false
 If we have calculation of long range PME in GPU.
 
bool useGpuPme = false
 If we have calculation of long range PME in GPU.
 
bool useGpuPmeFft = false
 If PME FFT solving is done on GPU.
 
bool useGpuBonded = false
 If bonded interactions are calculated on GPU.
 
bool useGpuUpdate = false
 If update and constraint solving is performed on GPU.
 
bool useGpuXBufferOpsWhenAllowed = false
 If X buffer operations are allowed on GPU (actual use depends on other activities that step).
 
bool useGpuFBufferOpsWhenAllowed = false
 If F buffer operations are allowed on GPU (actual use depends on other activities that step).
 
bool havePpDomainDecomposition = false
 If PP domain decomposition is active.
 
bool useCpuHaloExchange = false
 If domain decomposition halo exchange is performed on CPU (in CPU-only runs or with staged GPU communication).
 
bool useGpuHaloExchange = false
 If domain decomposition halo exchange is performed on GPU.
 
bool haveSeparatePmeRank = false
 If separate PME rank(s) are used.
 
bool useCpuPmePpCommunication = false
 If PP-PME communication is done purely on CPU (in CPU-only runs or with staged GPU communication).
 
bool useGpuPmePpCommunication = false
 If direct PP-PME communication between GPU is used.
 
bool useGpuDirectCommunication = false
 If direct GPU-GPU communication is enabled.
 
bool useGpuPmeDecomposition = false
 If GPU PME decomposition is enabled.
 
bool haveEwaldSurfaceContribution = false
 If there is an Ewald surface (dipole) term to compute.
 
bool useMts = false
 Whether to use multiple time stepping.
 
bool useMdGpuGraph = false
 Whether a GPU graph should be used to execute steps in the MD loop if run conditions allow.
 
bool useNvshmem = false
 Whether to use NVSHMEM enabled GPU initiated communication.
 

The documentation for this class was generated from the following file: