Peano
Loading...
Searching...
No Matches
SpreadOutHierarchically.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
SpreadOutHierarchically;
22
}
23
}
24
}
25
26
42
class
toolbox::loadbalancing::strategies::SpreadOutHierarchically
:
public
toolbox::loadbalancing::AbstractLoadBalancing
{
43
public
:
47
enum class
Action
{
51
Unspecified
,
52
None
,
53
SpreadEquallyOverAllRanks
,
54
SpreadEquallyOverAllThreads
55
};
56
57
static
std::string
toString
(
Action
action );
58
59
SpreadOutHierarchically
(
Configuration
* configuration =
new
DefaultConfiguration
(),
CostMetrics
* costMetrics =
new
toolbox::loadbalancing::metrics::CellCount
());
60
virtual
~SpreadOutHierarchically
();
61
62
virtual
void
finishStep
()
override
;
63
64
private
:
65
static
tarch::logging::Log
_log
;
66
67
int
_stepsToWaitForNextLoadBalancingDecision
;
68
69
void
updateState
();
70
void
updateLoadBalancing
();
71
void
triggerSplit
(
int
numberOfCells,
int
targetRank );
72
Action
getAction
()
const
;
73
int
getNumberOfSplitsOnLocalRank
()
const
;
74
};
75
AbstractLoadBalancing.h
CellCount.h
Log.h
tarch::logging::Log
Log Device.
Definition
Log.h:517
toolbox::loadbalancing::AbstractLoadBalancing
Abstract superclass of any load balancing.
Definition
AbstractLoadBalancing.h:27
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:37
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::SpreadOutHierarchically
Spread out hiearchically.
Definition
SpreadOutHierarchically.h:42
toolbox::loadbalancing::strategies::SpreadOutHierarchically::Action
Action
Definition
SpreadOutHierarchically.h:47
toolbox::loadbalancing::strategies::SpreadOutHierarchically::Action::None
@ None
toolbox::loadbalancing::strategies::SpreadOutHierarchically::Action::Unspecified
@ Unspecified
Required for the strategy.
toolbox::loadbalancing::strategies::SpreadOutHierarchically::Action::SpreadEquallyOverAllRanks
@ SpreadEquallyOverAllRanks
toolbox::loadbalancing::strategies::SpreadOutHierarchically::Action::SpreadEquallyOverAllThreads
@ SpreadEquallyOverAllThreads
toolbox::loadbalancing::strategies::SpreadOutHierarchically::~SpreadOutHierarchically
virtual ~SpreadOutHierarchically()
toolbox::loadbalancing::strategies::SpreadOutHierarchically::_log
static tarch::logging::Log _log
Definition
SpreadOutHierarchically.h:65
toolbox::loadbalancing::strategies::SpreadOutHierarchically::getAction
Action getAction() const
toolbox::loadbalancing::strategies::SpreadOutHierarchically::updateLoadBalancing
void updateLoadBalancing()
toolbox::loadbalancing::strategies::SpreadOutHierarchically::_stepsToWaitForNextLoadBalancingDecision
int _stepsToWaitForNextLoadBalancingDecision
Definition
SpreadOutHierarchically.h:67
toolbox::loadbalancing::strategies::SpreadOutHierarchically::getNumberOfSplitsOnLocalRank
int getNumberOfSplitsOnLocalRank() const
toolbox::loadbalancing::strategies::SpreadOutHierarchically::toString
static std::string toString(Action action)
toolbox::loadbalancing::strategies::SpreadOutHierarchically::finishStep
virtual void finishStep() override
Finish the step.
toolbox::loadbalancing::strategies::SpreadOutHierarchically::SpreadOutHierarchically
SpreadOutHierarchically(Configuration *configuration=new DefaultConfiguration(), CostMetrics *costMetrics=new toolbox::loadbalancing::metrics::CellCount())
toolbox::loadbalancing::strategies::SpreadOutHierarchically::triggerSplit
void triggerSplit(int numberOfCells, int targetRank)
toolbox::loadbalancing::strategies::SpreadOutHierarchically::updateState
void updateState()
toolbox
Definition
InterpolationRestriction.h:10
Node.h
src
toolbox
loadbalancing
strategies
SpreadOutHierarchically.h
Generated on Tue Nov 3 2026 16:05:42 for Peano by
1.9.8