Gromacs  2026.0-dev-20251109-f20ba35
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Classes | Public Member Functions
gmx::PmeLoadBalancing Class Reference

#include <gromacs/ewald/pme_load_balancing.h>

Description

Object to manage PME load balancing.

Classes

class  Impl
 Impl class for PmeLoadBalancing. More...
 

Public Member Functions

 PmeLoadBalancing (gmx_domdec_t *dd, const MDLogger &mdlog, const t_inputrec &ir, const matrix box, const interaction_const_t &ic, const nonbonded_verlet_t &nbv, gmx_pme_t *pmedata, const SimulationWorkload &simulationWork)
 Initialize the PP-PME load balancing data and infrastructure. More...
 
 PmeLoadBalancing (const PmeLoadBalancing &)=delete
 
PmeLoadBalancingoperator= (const PmeLoadBalancing &)=delete
 
 PmeLoadBalancing (PmeLoadBalancing &&)=delete
 
PmeLoadBalancingoperator= (PmeLoadBalancing &&)=delete
 
bool isActive () const
 Return whether PME load balancing is active.
 
bool isPrintingLoad () const
 Return whether PME load balancing is printing load numbers to the log file.
 
void addCycles (FILE *fp_err, t_forcerec *fr, const matrix box, ArrayRef< const RVec > x, const gmx_wallcycle *wcycle, int64_t step, int64_t step_rel)
 Process cycles and PME load balance when necessary. More...
 
void printSettings () const
 Print the chosen PME settings to the mdlogger.
 

Constructor & Destructor Documentation

gmx::PmeLoadBalancing::PmeLoadBalancing ( gmx_domdec_t *  dd,
const MDLogger mdlog,
const t_inputrec &  ir,
const matrix  box,
const interaction_const_t &  ic,
const nonbonded_verlet_t nbv,
gmx_pme_t pmedata,
const SimulationWorkload simulationWork 
)

Initialize the PP-PME load balancing data and infrastructure.

Initialize the PP-PME load balancing data and infrastructure. The actual load balancing might start right away, later or never. The PME grid in pmedata is reused for smaller grids to lower the memory usage. The memory passed in pmedata needs to be freed after destructing PmeLoadBalancing object.

Note
This constructor should only be called when pmeTuningIsSupported() returns true.

Member Function Documentation

void gmx::PmeLoadBalancing::addCycles ( FILE *  fp_err,
t_forcerec *  fr,
const matrix  box,
ArrayRef< const RVec x,
const gmx_wallcycle *  wcycle,
int64_t  step,
int64_t  step_rel 
)

Process cycles and PME load balance when necessary.

Process the cycles measured over the last nstlist steps and then either continue balancing or check if we need to trigger balancing. Should be called after the WallCycleCounter::Step cycle counter has been stopped.


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