Peano
Loading...
Searching...
No Matches
AbstractLoadBalancing.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
#include <map>
7
8
#include "
Blacklist.h
"
9
#include "
Configuration.h
"
10
#include "
CostMetrics.h
"
11
#include "
Statistics.h
"
12
#include "
peano4/parallel/Node.h
"
13
#include "
tarch/logging/Log.h
"
14
#include "
tarch/mpi/mpi.h
"
15
16
17
namespace
toolbox
{
18
namespace
loadbalancing {
19
class
AbstractLoadBalancing
;
20
}
// namespace loadbalancing
21
}
// namespace toolbox
22
23
24
class
toolbox::loadbalancing::AbstractLoadBalancing
{
25
public
:
31
static
constexpr
int
NoHeaviestTreeAvailable
= -1;
32
59
AbstractLoadBalancing
(
Configuration
* configuration,
CostMetrics
* costMetrics);
60
68
virtual
~AbstractLoadBalancing
();
69
70
75
virtual
std::string
toString
()
const
;
76
77
81
virtual
void
enable
(
bool
);
82
83
84
virtual
bool
hasSplitRecently
()
const
;
85
86
92
bool
isEnabled
(
bool
globally)
const
;
93
94
98
virtual
int
getGlobalNumberOfTrees
()
const
;
99
100
105
virtual
bool
hasStagnated
()
const
;
106
107
108
virtual
void
finishSimulation
();
109
110
121
virtual
void
finishStep
() = 0;
122
128
void
setConfigurationAndMetricsNullWithoutDelete
();
129
130
protected
:
131
static
tarch::logging::Log
_log
;
132
133
Blacklist
_blacklist
;
134
135
Statistics
_statistics
;
136
137
Configuration
*
_configuration
;
138
139
CostMetrics
*
_costMetrics
;
140
149
State
_state
;
150
154
bool
fitsIntoMemory
(
State
state
)
const
;
155
156
173
bool
isInterRankBalancingBad
()
const
;
174
175
190
bool
isIntraRankBalancingBad
()
const
;
191
192
193
bool
areRanksUnemployed
()
const
;
194
198
double
getWeightOfHeaviestLocalSpacetree
()
const
;
199
225
int
getIdOfHeaviestLocalSpacetree
()
const
;
226
227
243
int
getIdOfHeaviestLocalSpacetree
(
double
tolerance)
const
;
244
};
245
246
std::ostream&
operator<<
(std::ostream& out,
const
toolbox::loadbalancing::AbstractLoadBalancing
& balancing);
operator<<
std::ostream & operator<<(std::ostream &out, const toolbox::loadbalancing::AbstractLoadBalancing &balancing)
Definition
AbstractLoadBalancing.cpp:8
Blacklist.h
Configuration.h
CostMetrics.h
state
AutomatonState state
Definition
GridTraversalEventGeneratorTest.cpp:146
Log.h
Node.h
tarch::logging::Log
Log Device.
Definition
Log.h:516
toolbox::loadbalancing::AbstractLoadBalancing
Definition
AbstractLoadBalancing.h:24
toolbox::loadbalancing::AbstractLoadBalancing::finishStep
virtual void finishStep()=0
Finish the step.
toolbox::loadbalancing::AbstractLoadBalancing::NoHeaviestTreeAvailable
static constexpr int NoHeaviestTreeAvailable
Is used by tree identification and either indicates that there are no trees at all or means that the ...
Definition
AbstractLoadBalancing.h:31
toolbox::loadbalancing::AbstractLoadBalancing::AbstractLoadBalancing
AbstractLoadBalancing(Configuration *configuration, CostMetrics *costMetrics)
Constructor.
Definition
AbstractLoadBalancing.cpp:13
toolbox::loadbalancing::AbstractLoadBalancing::toString
virtual std::string toString() const
Generic string serialisation.
Definition
AbstractLoadBalancing.cpp:38
toolbox::loadbalancing::AbstractLoadBalancing::areRanksUnemployed
bool areRanksUnemployed() const
Definition
AbstractLoadBalancing.cpp:170
toolbox::loadbalancing::AbstractLoadBalancing::_statistics
Statistics _statistics
Definition
AbstractLoadBalancing.h:135
toolbox::loadbalancing::AbstractLoadBalancing::~AbstractLoadBalancing
virtual ~AbstractLoadBalancing()
Destructor.
Definition
AbstractLoadBalancing.cpp:22
toolbox::loadbalancing::AbstractLoadBalancing::finishSimulation
virtual void finishSimulation()
Definition
AbstractLoadBalancing.cpp:94
toolbox::loadbalancing::AbstractLoadBalancing::isEnabled
bool isEnabled(bool globally) const
Clarifies whether load balancing is, in principle, enabled.
Definition
AbstractLoadBalancing.cpp:66
toolbox::loadbalancing::AbstractLoadBalancing::hasStagnated
virtual bool hasStagnated() const
A load balancing can either be stagnating or be switched off for this predicate to hold.
Definition
AbstractLoadBalancing.cpp:72
toolbox::loadbalancing::AbstractLoadBalancing::getWeightOfHeaviestLocalSpacetree
double getWeightOfHeaviestLocalSpacetree() const
Definition
AbstractLoadBalancing.cpp:176
toolbox::loadbalancing::AbstractLoadBalancing::isIntraRankBalancingBad
bool isIntraRankBalancingBad() const
Is the balancing on the rank ok.
Definition
AbstractLoadBalancing.cpp:128
toolbox::loadbalancing::AbstractLoadBalancing::fitsIntoMemory
bool fitsIntoMemory(State state) const
Ensure enough memory is left-over.
Definition
AbstractLoadBalancing.cpp:82
toolbox::loadbalancing::AbstractLoadBalancing::_log
static tarch::logging::Log _log
Definition
AbstractLoadBalancing.h:131
toolbox::loadbalancing::AbstractLoadBalancing::_state
State _state
Ensure that you invoke.
Definition
AbstractLoadBalancing.h:149
toolbox::loadbalancing::AbstractLoadBalancing::getGlobalNumberOfTrees
virtual int getGlobalNumberOfTrees() const
Delegate to stats.
Definition
AbstractLoadBalancing.cpp:77
toolbox::loadbalancing::AbstractLoadBalancing::getIdOfHeaviestLocalSpacetree
int getIdOfHeaviestLocalSpacetree() const
Determines the maximum spacetree size a tree should have in the optimal case.
Definition
AbstractLoadBalancing.cpp:190
toolbox::loadbalancing::AbstractLoadBalancing::isInterRankBalancingBad
bool isInterRankBalancingBad() const
Is the balancing between the ranks ok.
Definition
AbstractLoadBalancing.cpp:100
toolbox::loadbalancing::AbstractLoadBalancing::setConfigurationAndMetricsNullWithoutDelete
void setConfigurationAndMetricsNullWithoutDelete()
This is only used when you concatenate balancing rules and you want to disable any deletion.
Definition
AbstractLoadBalancing.cpp:32
toolbox::loadbalancing::AbstractLoadBalancing::_configuration
Configuration * _configuration
Definition
AbstractLoadBalancing.h:137
toolbox::loadbalancing::AbstractLoadBalancing::_costMetrics
CostMetrics * _costMetrics
Definition
AbstractLoadBalancing.h:139
toolbox::loadbalancing::AbstractLoadBalancing::enable
virtual void enable(bool)
Switch on/off.
Definition
AbstractLoadBalancing.cpp:53
toolbox::loadbalancing::AbstractLoadBalancing::_blacklist
Blacklist _blacklist
Definition
AbstractLoadBalancing.h:133
toolbox::loadbalancing::AbstractLoadBalancing::hasSplitRecently
virtual bool hasSplitRecently() const
Definition
AbstractLoadBalancing.cpp:48
toolbox::loadbalancing::Blacklist
Blacklisting.
Definition
Blacklist.h:45
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::Statistics
Statistics helper routine for load balancing.
Definition
Statistics.h:30
mpi.h
toolbox::loadbalancing::State
State
State descriptor of load balancing.
Definition
State.h:22
toolbox
Definition
InterpolationRestriction.h:10
Statistics.h
src
toolbox
loadbalancing
AbstractLoadBalancing.h
Generated on Fri Apr 11 2025 10:18:14 for Peano by
1.10.0