![]() |
Peano
|
The namespace hosts some generic utilities, it hosts a statistics class (Statistics) and the Blacklist, and it finally hosts a few core load balancing classes. More...
Namespaces | |
namespace | metrics |
namespace | strategies |
Data Structures | |
class | AbstractLoadBalancing |
class | Blacklist |
Blacklisting. More... | |
class | Configuration |
Abstract interface to tweak the behaviour of the recursive subdivision. More... | |
class | CostMetrics |
Abstract cost metric. More... | |
class | DefaultConfiguration |
class | Statistics |
Statistics helper routine for load balancing. More... | |
Enumerations | |
enum class | State { Undefined , InterRankDistribution , IntraRankDistribution , InterRankBalancing , IntraRankBalancing , WaitForRoundRobinToken , Stagnation , SwitchedOff } |
State descriptor of load balancing. More... | |
Functions | |
void | dumpStatistics () |
Dump the stats of the lb to the terminal (info device). | |
int | getWeightOfHeaviestLocalSpacetree () |
This is a helper routine which is used by ExaHyPE's default main for for example. | |
The namespace hosts some generic utilities, it hosts a statistics class (Statistics) and the Blacklist, and it finally hosts a few core load balancing classes.
They are rather primitive. You can construct more sophisticated load balancing schemes from there by combining simple schemes via a Cascade, e.g.
|
strong |
State descriptor of load balancing.
Any load balancing will run through different states, aka "what will I try to achieve next". Not every load balancing strategy runs through the states in the same order or passes through all states, but these states are kind of a superset of different phases.
We have to define them here to give the configuration objects the opportunity to make state-dependent decisions if and how to refine.
void toolbox::loadbalancing::dumpStatistics | ( | ) |
Dump the stats of the lb to the terminal (info device).
It is invoked around once per time step/grid sweep and runs through all the spacetrees held on this particular rank.
Definition at line 21 of file loadbalancing.cpp.
References peano4::parallel::SpacetreeSet::getGridStatistics(), peano4::parallel::SpacetreeSet::getInstance(), peano4::parallel::SpacetreeSet::getLocalSpacetrees(), peano4::grid::GridStatistics::getNumberOfLocalUnrefinedCells(), peano4::grid::GridStatistics::getNumberOfRemoteUnrefinedCells(), and logInfo.
Referenced by toolbox::loadbalancing::strategies::Hardcoded::finishStep(), toolbox::loadbalancing::strategies::NoLoadBalancing::finishStep(), toolbox::loadbalancing::strategies::RecursiveBipartition::finishStep(), toolbox::loadbalancing::strategies::SplitOversizedTree::finishStep(), toolbox::loadbalancing::strategies::SpreadOut::finishStep(), toolbox::loadbalancing::strategies::SpreadOutHierarchically::finishStep(), and toolbox::loadbalancing::strategies::SpreadOutOnceGridStagnates::finishStep().
int toolbox::loadbalancing::getWeightOfHeaviestLocalSpacetree | ( | ) |
This is a helper routine which is used by ExaHyPE's default main for for example.
It is never used by the actual load balancing at the moment.
Definition at line 50 of file loadbalancing.cpp.
References peano4::parallel::SpacetreeSet::getGridStatistics(), peano4::parallel::SpacetreeSet::getInstance(), peano4::parallel::SpacetreeSet::getLocalSpacetrees(), peano4::grid::GridStatistics::getNumberOfLocalUnrefinedCells(), logDebug, and ThreePowerD.
Referenced by toolbox::loadbalancing::strategies::SpreadOutHierarchically::getNumberOfSplitsOnLocalRank(), step(), toolbox::loadbalancing::strategies::RecursiveBipartition::toString(), toolbox::loadbalancing::strategies::SplitOversizedTree::toString(), toolbox::loadbalancing::strategies::RecursiveBipartition::updateLoadBalancing(), toolbox::loadbalancing::strategies::SplitOversizedTree::updateLoadBalancing(), and toolbox::loadbalancing::strategies::SpreadOutHierarchically::updateLoadBalancing().