Gromacs
2024.3
|
#include <gromacs/mdtypes/simulation_workload.h>
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. | |