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

#include <gromacs/mdtypes/simulation_workload.h>

Description

Describes work done on this domain by the current rank that may change per-step.

This work description is based on the SimulationWorkload in the context of the current particle interactions assigned to this domain as well as other factors that may change during the lifetime of a domain.

Note that unlike the other workload descriptors, these flags are also used on dedicated PME ranks, hence the content is rank-specific (at least when it comes to flags related to PME).

Note that the contents of an object of this type is valid for a single step and it is expected to be set at the beginning each step.

Public Attributes

bool stateChanged = false
 Whether the state has changed, always set unless TPI is used.
 
bool haveDynamicBox = false
 Whether the box might have changed.
 
bool doNeighborSearch = false
 Whether neighbor searching needs to be done this step.
 
bool computeSlowForces = false
 Whether the slow forces need to be computed this step (in addition to the faster forces)
 
bool computeVirial = false
 Whether virial needs to be computed this step.
 
bool computeEnergy = false
 Whether energies need to be computed this step this step.
 
bool computeForces = false
 Whether (any) forces need to be computed this step, not only energies.
 
bool useOnlyMtsCombinedForceBuffer = false
 Whether only the MTS combined force buffers are needed and not the separate normal force buffer.
 
bool computeNonbondedForces = false
 Whether nonbonded forces need to be computed this step.
 
bool computeListedForces = false
 Whether listed forces need to be computed this step.
 
bool computeDhdl = false
 Whether this step DHDL needs to be computed.
 
bool useGpuXBufferOps = false
 Whether coordinate buffer ops are done on the GPU this step. More...
 
bool useGpuFBufferOps = false
 Whether force buffer ops are done on the GPU this step.
 
bool useGpuPmeFReduction = false
 Whether PME forces are reduced with other contributions on the GPU this step.
 
bool useGpuXHalo = false
 Whether GPU coordinates halo exchange is active this step.
 
bool useGpuFHalo = false
 Whether GPU forces halo exchange is active this step.
 
bool haveGpuPmeOnThisRank = false
 Whether GPU PME work is computed on the current rank this step (can be false on PP-only ranks or on fast steps with MTS)
 
bool computePmeOnSeparateRank = false
 Whether a separate PME rank has any work this step.
 
bool combineMtsForcesBeforeHaloExchange = false
 Whether to combine the forces for multiple time stepping before the halo exchange.
 
bool clearGpuFBufferEarly = false
 Whether to clear local force buffer on the device early on in the step.
 

Member Data Documentation

bool gmx::StepWorkload::useGpuXBufferOps = false

Whether coordinate buffer ops are done on the GPU this step.

Note
This technically belongs to DomainLifetimeWorkload but due to needing the flag before DomainLifetimeWorkload is built we keep it here for now.

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