11 class LoadBalancingConfiguration;
77 double loadBalancingQuality=0.9,
78 int minSizeOfTree = 0,
79 bool assumePeriodicBoundaryConditions =
false,
99 virtual std::string
toString()
const override;
ExaHyPE 2-specific load balancing configuration.
virtual bool makeSplitDependOnMemory(toolbox::loadbalancing::State state) override
Use the operating system's memory queries to get the memory out and to veto too many local splits.
virtual int getMinTreeSize(toolbox::loadbalancing::State state) override
If we do the initial distribution in-between ranks, then there should be no such thing as a min tree ...
virtual ~LoadBalancingConfiguration()=default
static constexpr int UseTwiceTheNumberOfThreads
const peano4::SplitInstruction::Mode _mode
int translateSetMaxNumberOfTreesIntoRealNumberOfTrees(int value) const
Return how many trees to use if value is picked by user.
static tarch::logging::Log _log
virtual std::string toString() const override
const int _maxNumberOfTreesThroughoutInitialDistribution
const bool _assumePeriodicBoundaryConditions
const double _loadBalancingQuality
const int _maxNumberOfTrees
static constexpr int UseNumberOfThreads
virtual int getMaxLocalTreesPerRank(toolbox::loadbalancing::State state) override
Constraint on the number of trees per rank.
virtual peano4::SplitInstruction::Mode getMode(toolbox::loadbalancing::State state) override
virtual double getWorstCaseBalancingRatio(toolbox::loadbalancing::State state) override
Control when to balance between ranks.
LoadBalancingConfiguration(double loadBalancingQuality=0.9, int minSizeOfTree=0, bool assumePeriodicBoundaryConditions=false, int maxNumberOfTreesThroughoutInitialDistribution=UseNumberOfThreads, int maxNumberOfTrees=UseTwiceTheNumberOfThreads, peano4::SplitInstruction::Mode mode=peano4::SplitInstruction::Mode::BottomUp)
Configure load balancing.
For the generic kernels that I use here most of the time.