Peano
Loading...
Searching...
No Matches
SplitOversizedTree.h
Go to the documentation of this file.
1// This file is part of the Peano project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5
6
7#include "tarch/logging/Log.h"
8
10
11#include <map>
12
14
16
17
18namespace toolbox {
19 namespace loadbalancing {
20 namespace strategies {
21 class SplitOversizedTree;
22 }
23 }
24}
25
26
66 public:
74 virtual ~SplitOversizedTree();
75
92 virtual void finishStep() override;
93
99 virtual std::string toString() const override;
100
101 private:
103
110
116
117 double getTargetTreeCost() const;
118
135 void triggerSplit( int sourceTree, int targetRank, int numberOfSplits );
136
176 void updateState();
177
184 void updateLoadBalancing();
185
186 int computeNumberOfSplits(int sourceTree) const;
187};
188
189
190
Log Device.
Definition Log.h:516
Abstract interface to tweak the behaviour of the recursive subdivision.
Cost metrics based solely on cell counts.
Definition CellCount.h:23
Find trees that are bigger than largest tree size and split them.
virtual void finishStep() override
Triggers actual load balancing data exchange, triggers rebalancing, and dumps statistics.
void updateLoadBalancing()
Core actions where we take the action and translate it into action - what a pun.
int _roundRobinToken
If it equals the rank, then we are allowed to do something.
SplitOversizedTree(Configuration *configuration=new DefaultConfiguration(), CostMetrics *costMetrics=new toolbox::loadbalancing::metrics::CellCount())
Set up recursive subdivision.
virtual std::string toString() const override
I need the stats here mainly for debugging purposes.
void triggerSplit(int sourceTree, int targetRank, int numberOfSplits)
Wrapper around the spacetree set which also updates the blacklist.
bool doesLocalTreeViolateThreshold() const
Is the balancing on the rank ok.