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
9
#include "
peano4/parallel/Node.h
"
10
11
#include <map>
12
13
#include "
toolbox/loadbalancing/AbstractLoadBalancing.h
"
14
15
#include "
toolbox/loadbalancing/metrics/CellCount.h
"
16
17
18
namespace
toolbox
{
19
namespace
loadbalancing {
20
namespace
strategies {
21
class
RecursiveBipartition;
22
}
23
}
24
}
25
26
48
class
toolbox::loadbalancing::strategies::RecursiveBipartition
:
public
toolbox::loadbalancing::AbstractLoadBalancing
{
49
public
:
56
RecursiveBipartition
(
Configuration
* configuration =
new
DefaultConfiguration
(),
CostMetrics
* costMetrics =
new
toolbox::loadbalancing::metrics::CellCount
() );
57
virtual
~RecursiveBipartition
();
58
76
virtual
void
finishStep
()
override
;
77
83
virtual
std::string
toString
()
const override
;
84
85
private
:
86
static
tarch::logging::Log
_log
;
87
93
int
_roundRobinToken
;
94
111
void
triggerSplit
(
int
sourceTree,
int
numberOfCells,
int
targetRank );
112
152
void
updateState
();
153
160
void
updateLoadBalancing
();
161
};
162
163
164
AbstractLoadBalancing.h
CellCount.h
Log.h
Node.h
tarch::logging::Log
Log Device.
Definition
Log.h:516
toolbox::loadbalancing::AbstractLoadBalancing
Definition
AbstractLoadBalancing.h:24
toolbox::loadbalancing::Configuration
Abstract interface to tweak the behaviour of the recursive subdivision.
Definition
Configuration.h:28
toolbox::loadbalancing::CostMetrics
Abstract cost metric.
Definition
CostMetrics.h:32
toolbox::loadbalancing::DefaultConfiguration
Definition
Configuration.h:66
toolbox::loadbalancing::metrics::CellCount
Cost metrics based solely on cell counts.
Definition
CellCount.h:23
toolbox::loadbalancing::strategies::RecursiveBipartition
Recursive load balancing micking the behaviour of the guided partitioning in OpenMP.
Definition
RecursiveBipartition.h:48
toolbox::loadbalancing::strategies::RecursiveBipartition::_log
static tarch::logging::Log _log
Definition
RecursiveBipartition.h:86
toolbox::loadbalancing::strategies::RecursiveBipartition::RecursiveBipartition
RecursiveBipartition(Configuration *configuration=new DefaultConfiguration(), CostMetrics *costMetrics=new toolbox::loadbalancing::metrics::CellCount())
Set up recursive subdivision.
Definition
RecursiveBipartition.cpp:17
toolbox::loadbalancing::strategies::RecursiveBipartition::updateState
void updateState()
Definition
RecursiveBipartition.cpp:49
toolbox::loadbalancing::strategies::RecursiveBipartition::triggerSplit
void triggerSplit(int sourceTree, int numberOfCells, int targetRank)
Wrapper around the spacetree set which also updates the blacklist.
Definition
RecursiveBipartition.cpp:192
toolbox::loadbalancing::strategies::RecursiveBipartition::finishStep
virtual void finishStep() override
Triggers actual load balancing data exchange, triggers rebalancing, and dumps statistics.
Definition
RecursiveBipartition.cpp:178
toolbox::loadbalancing::strategies::RecursiveBipartition::toString
virtual std::string toString() const override
I need the stats here mainly for debugging purposes.
Definition
RecursiveBipartition.cpp:32
toolbox::loadbalancing::strategies::RecursiveBipartition::~RecursiveBipartition
virtual ~RecursiveBipartition()
Definition
RecursiveBipartition.cpp:29
toolbox::loadbalancing::strategies::RecursiveBipartition::_roundRobinToken
int _roundRobinToken
If it equals the rank, then we are allowed to do something.
Definition
RecursiveBipartition.h:93
toolbox::loadbalancing::strategies::RecursiveBipartition::updateLoadBalancing
void updateLoadBalancing()
Core actions where we take the action and translate it into action - what a pun.
Definition
RecursiveBipartition.cpp:70
toolbox
Definition
InterpolationRestriction.h:10
src
toolbox
loadbalancing
strategies
RecursiveBipartition.h
Generated on Fri Apr 11 2025 10:18:15 for Peano by
1.10.0