Peano
Loading...
Searching...
No Matches
RecursiveBipartition.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 RecursiveBipartition;
22 }
23 }
24}
25
26
49 public:
57 virtual ~RecursiveBipartition();
58
76 virtual void finishStep() override;
77
83 virtual std::string toString() const override;
84
85 private:
87
94
111 void triggerSplit( int sourceTree, int numberOfCells, int targetRank );
112
152 void updateState();
153
160 void updateLoadBalancing();
161};
162
163
164
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
Recursive load balancing micking the behaviour of the guided partitioning in OpenMP.
RecursiveBipartition(Configuration *configuration=new DefaultConfiguration(), CostMetrics *costMetrics=new toolbox::loadbalancing::metrics::CellCount())
Set up recursive subdivision.
void triggerSplit(int sourceTree, int numberOfCells, int targetRank)
Wrapper around the spacetree set which also updates the blacklist.
virtual void finishStep() override
Triggers actual load balancing data exchange, triggers rebalancing, and dumps statistics.
virtual std::string toString() const override
I need the stats here mainly for debugging purposes.
int _roundRobinToken
If it equals the rank, then we are allowed to do something.
void updateLoadBalancing()
Core actions where we take the action and translate it into action - what a pun.