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
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
SplitOversizedTree;
22
}
23
}
24
}
25
26
65
class
toolbox::loadbalancing::strategies::SplitOversizedTree
:
public
toolbox::loadbalancing::AbstractLoadBalancing
{
66
public
:
73
SplitOversizedTree
(
Configuration
* configuration =
new
DefaultConfiguration
(),
CostMetrics
* costMetrics =
new
toolbox::loadbalancing::metrics::CellCount
());
74
virtual
~SplitOversizedTree
();
75
92
virtual
void
finishStep
()
override
;
93
99
virtual
std::string
toString
()
const override
;
100
101
private
:
102
static
tarch::logging::Log
_log
;
103
109
int
_roundRobinToken
;
110
115
bool
doesLocalTreeViolateThreshold
()
const
;
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
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::SplitOversizedTree
Find trees that are bigger than largest tree size and split them.
Definition
SplitOversizedTree.h:65
toolbox::loadbalancing::strategies::SplitOversizedTree::_log
static tarch::logging::Log _log
Definition
SplitOversizedTree.h:102
toolbox::loadbalancing::strategies::SplitOversizedTree::finishStep
virtual void finishStep() override
Triggers actual load balancing data exchange, triggers rebalancing, and dumps statistics.
Definition
SplitOversizedTree.cpp:187
toolbox::loadbalancing::strategies::SplitOversizedTree::updateLoadBalancing
void updateLoadBalancing()
Core actions where we take the action and translate it into action - what a pun.
Definition
SplitOversizedTree.cpp:93
toolbox::loadbalancing::strategies::SplitOversizedTree::~SplitOversizedTree
virtual ~SplitOversizedTree()
Definition
SplitOversizedTree.cpp:29
toolbox::loadbalancing::strategies::SplitOversizedTree::_roundRobinToken
int _roundRobinToken
If it equals the rank, then we are allowed to do something.
Definition
SplitOversizedTree.h:109
toolbox::loadbalancing::strategies::SplitOversizedTree::computeNumberOfSplits
int computeNumberOfSplits(int sourceTree) const
Definition
SplitOversizedTree.cpp:201
toolbox::loadbalancing::strategies::SplitOversizedTree::SplitOversizedTree
SplitOversizedTree(Configuration *configuration=new DefaultConfiguration(), CostMetrics *costMetrics=new toolbox::loadbalancing::metrics::CellCount())
Set up recursive subdivision.
Definition
SplitOversizedTree.cpp:17
toolbox::loadbalancing::strategies::SplitOversizedTree::updateState
void updateState()
Definition
SplitOversizedTree.cpp:50
toolbox::loadbalancing::strategies::SplitOversizedTree::toString
virtual std::string toString() const override
I need the stats here mainly for debugging purposes.
Definition
SplitOversizedTree.cpp:32
toolbox::loadbalancing::strategies::SplitOversizedTree::getTargetTreeCost
double getTargetTreeCost() const
Definition
SplitOversizedTree.cpp:252
toolbox::loadbalancing::strategies::SplitOversizedTree::triggerSplit
void triggerSplit(int sourceTree, int targetRank, int numberOfSplits)
Wrapper around the spacetree set which also updates the blacklist.
Definition
SplitOversizedTree.cpp:228
toolbox::loadbalancing::strategies::SplitOversizedTree::doesLocalTreeViolateThreshold
bool doesLocalTreeViolateThreshold() const
Is the balancing on the rank ok.
Definition
SplitOversizedTree.cpp:71
toolbox
Definition
InterpolationRestriction.h:10
src
toolbox
loadbalancing
strategies
SplitOversizedTree.h
Generated on Fri Apr 11 2025 10:18:15 for Peano by
1.10.0