ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | Static Public Member Functions | List of all members
LoadbalanceWriter Class Reference

The LoadbalanceWriter writes out information about the programs load balance. More...

#include <LoadBalanceWriter.h>

Inheritance diagram for LoadbalanceWriter:
PluginBase

Public Member Functions

void readXML (XMLfileUnits &xmlconfig) override
 Read in XML configuration for LoadbalanceWriter. More...
 
void init (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
 Method init will be called at the begin of the simulation. More...
 
void endStep (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain, unsigned long simstep) override
 Method endStep will be called at the end of each time step. More...
 
void finish (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
 Method finish will be called at the end of the simulation. More...
 
std::string getPluginName () override
 return the name of the plugin More...
 
- Public Member Functions inherited from PluginBase
 PluginBase ()
 Subclasses should use their constructur to pass parameters (e.g. filenames)
 
virtual void beforeEventNewTimestep (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep)
 Method will be called first thing in a new timestep. More...
 
virtual void beforeForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep)
 Method beforeForces will be called before forcefields have been applied no alterations w.r.t. Forces shall be made here. More...
 
virtual void siteWiseForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep)
 Method siteWiseForces will be called before forcefields have been applied alterations to sitewise forces and fullMolecule forces can be made here. More...
 
virtual void afterForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep)
 Method afterForces will be called after forcefields have been applied no sitewise Forces can be applied here. More...
 
virtual void registerCallbacks (std::map< std::string, FunctionWrapper > &callbackMap)
 
virtual void accessAllCallbacks (const std::map< std::string, FunctionWrapper > &callbackMap)
 

Static Public Member Functions

static PluginBasecreateInstance ()
 

Detailed Description

The LoadbalanceWriter writes out information about the programs load balance.

The LoadbalanceWriter writes out load balance information for MPI processes based on timers. The 'default' timer used measures the time between invocations of this plugin. Additional timers used in the program and registered in the Simulation can be added to compute the load balance of specific code parts.

The output file will include for each time step in the simulation one line. In each line the following values are stored for each LB timer:

Note
Warning thresholds (level) (for the ratio max / min) for each timer can be set (see documentation of readXML()) which will output a warning to the logfile if the ratio max_time / min_time is above the threshold. This warning level should be bigger than 1.!
Todo:
This plugin may be extended to threads

Member Function Documentation

◆ endStep()

void LoadbalanceWriter::endStep ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
Domain domain,
unsigned long  simstep 
)
overridevirtual

Method endStep will be called at the end of each time step.

This method will be called every time step passing the simstep as an additional parameter. It can be used e.g. to write per time step data to a file or perform additional computations.

Parameters
particleContainerparticle container storing the (local) molecules
domainDecompdomain decomposition in use
domain

Implements PluginBase.

◆ finish()

void LoadbalanceWriter::finish ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
Domain domain 
)
inlineoverridevirtual

Method finish will be called at the end of the simulation.

This method will be called once at the end of the simulation. It can be used e.g. to closing output files or writing final statistics.

Parameters
particleContainerparticle container storing the (local) molecules
domainDecompdomain decomposition in use
domain

Implements PluginBase.

◆ getPluginName()

std::string LoadbalanceWriter::getPluginName ( )
inlineoverridevirtual

return the name of the plugin

Implements PluginBase.

◆ init()

void LoadbalanceWriter::init ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
Domain domain 
)
overridevirtual

Method init will be called at the begin of the simulation.

This method will be called once at the begin of the simulation just right before the main time step loop. It can be used e.g. to open output files or initialize statistics.

Parameters
particleContainerparticle container storing the (local) molecules
domainDecompdomain decomposition in use
domain

Implements PluginBase.

◆ readXML()

void LoadbalanceWriter::readXML ( XMLfileUnits xmlconfig)
overridevirtual

Read in XML configuration for LoadbalanceWriter.

The following xml object structure is handled by this method: parameters: name: name of the timer warninglevel: warnings will be printed if "max time / min time > warninglevel" incremental: specifies whether the timer is incremental or not, e.g., a timer just measuring the time for the current time step is not incremental, but one measuring the time since the first time step is incremental.

<outputplugin name="LoadbalanceWriter">
<writefrequency>INTEGER</writefrequency>
<averageLength>INTEGER</averageLength>
<outputfilename>STRING</outputfilename>
<timers> <!-- additional timers -->
<timer> <name>LoadbalanceWriter_default</name> <warninglevel>DOUBLE</warninglevel> </timer>
<timer> <name>STRING</name> <warninglevel>DOUBLE</warninglevel> <incremental>BOOL</incremental> </timer>
<!-- ... -->
</timers>
</outputplugin>

Implements PluginBase.


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