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
27
class
toolbox::loadbalancing::AbstractLoadBalancing
{
28
public
:
34
static
constexpr
int
NoHeaviestTreeAvailable
= -1;
35
47
static
constexpr
int
NumberOfMeshSweepsAfterSplitToMakeMeshConsistentAgain
= 3;
48
75
AbstractLoadBalancing
(
Configuration
* configuration,
CostMetrics
* costMetrics);
76
84
virtual
~AbstractLoadBalancing
();
85
86
98
virtual
std::string
toString
()
const
;
99
100
104
virtual
void
enable
(
bool
);
105
106
126
virtual
bool
hasSplitRecently
()
const
;
127
128
136
bool
isEnabled
(
bool
globally)
const
;
137
138
142
virtual
int
getGlobalNumberOfTrees
()
const
;
143
144
149
virtual
bool
hasStagnated
()
const
;
150
151
152
virtual
void
finishSimulation
();
153
154
169
virtual
void
finishStep
() = 0;
170
176
void
setConfigurationAndMetricsNullWithoutDelete
();
177
178
protected
:
179
static
tarch::logging::Log
_log
;
180
181
Blacklist
_blacklist
;
182
183
Statistics
_statistics
;
184
185
Configuration
*
_configuration
;
186
187
CostMetrics
*
_costMetrics
;
188
197
State
_state
;
198
202
bool
fitsIntoMemory
(
State
state)
const
;
203
204
221
bool
isInterRankBalancingBad
()
const
;
222
223
238
bool
isIntraRankBalancingBad
()
const
;
239
240
241
bool
areRanksUnemployed
()
const
;
242
246
double
getWeightOfHeaviestLocalSpacetree
()
const
;
247
270
int
getIdOfHeaviestLocalSpacetree
()
const
;
271
272
289
int
getIdOfHeaviestLocalSpacetree
(
double
tolerance)
const
;
290
};
291
292
std::ostream&
operator<<
(std::ostream& out,
const
toolbox::loadbalancing::AbstractLoadBalancing
& balancing);
operator<<
std::ostream & operator<<(std::ostream &out, const toolbox::loadbalancing::AbstractLoadBalancing &balancing)
Blacklist.h
Configuration.h
CostMetrics.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::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:34
toolbox::loadbalancing::AbstractLoadBalancing::AbstractLoadBalancing
AbstractLoadBalancing(Configuration *configuration, CostMetrics *costMetrics)
Constructor.
toolbox::loadbalancing::AbstractLoadBalancing::areRanksUnemployed
bool areRanksUnemployed() const
toolbox::loadbalancing::AbstractLoadBalancing::_statistics
Statistics _statistics
Definition
AbstractLoadBalancing.h:183
toolbox::loadbalancing::AbstractLoadBalancing::isEnabled
bool isEnabled(bool globally) const
Is load balancing enabled.
toolbox::loadbalancing::AbstractLoadBalancing::getWeightOfHeaviestLocalSpacetree
double getWeightOfHeaviestLocalSpacetree() const
toolbox::loadbalancing::AbstractLoadBalancing::finishSimulation
virtual void finishSimulation()
toolbox::loadbalancing::AbstractLoadBalancing::isIntraRankBalancingBad
bool isIntraRankBalancingBad() const
Is the balancing on the rank ok.
toolbox::loadbalancing::AbstractLoadBalancing::fitsIntoMemory
bool fitsIntoMemory(State state) const
Ensure enough memory is left-over.
toolbox::loadbalancing::AbstractLoadBalancing::_log
static tarch::logging::Log _log
Definition
AbstractLoadBalancing.h:179
toolbox::loadbalancing::AbstractLoadBalancing::_state
State _state
Ensure that you invoke.
Definition
AbstractLoadBalancing.h:197
toolbox::loadbalancing::AbstractLoadBalancing::getIdOfHeaviestLocalSpacetree
int getIdOfHeaviestLocalSpacetree() const
Determines the maximum spacetree size a tree should have in the optimal case.
toolbox::loadbalancing::AbstractLoadBalancing::isInterRankBalancingBad
bool isInterRankBalancingBad() const
Is the balancing between the ranks ok.
toolbox::loadbalancing::AbstractLoadBalancing::NumberOfMeshSweepsAfterSplitToMakeMeshConsistentAgain
static constexpr int NumberOfMeshSweepsAfterSplitToMakeMeshConsistentAgain
Number of mesh sweeps a split needs until the mesh is consistent again.
Definition
AbstractLoadBalancing.h:47
toolbox::loadbalancing::AbstractLoadBalancing::setConfigurationAndMetricsNullWithoutDelete
void setConfigurationAndMetricsNullWithoutDelete()
This is only used when you concatenate balancing rules and you want to disable any deletion.
toolbox::loadbalancing::AbstractLoadBalancing::hasStagnated
virtual bool hasStagnated() const
A load balancing can either be stagnating or be switched off for this predicate to hold.
toolbox::loadbalancing::AbstractLoadBalancing::_configuration
Configuration * _configuration
Definition
AbstractLoadBalancing.h:185
toolbox::loadbalancing::AbstractLoadBalancing::_costMetrics
CostMetrics * _costMetrics
Definition
AbstractLoadBalancing.h:187
toolbox::loadbalancing::AbstractLoadBalancing::getGlobalNumberOfTrees
virtual int getGlobalNumberOfTrees() const
Delegate to stats.
toolbox::loadbalancing::AbstractLoadBalancing::hasSplitRecently
virtual bool hasSplitRecently() const
Has mesh split recently.
toolbox::loadbalancing::AbstractLoadBalancing::toString
virtual std::string toString() const
Create a string representation of load balancing object.
toolbox::loadbalancing::AbstractLoadBalancing::enable
virtual void enable(bool)
Switch on/off.
toolbox::loadbalancing::AbstractLoadBalancing::~AbstractLoadBalancing
virtual ~AbstractLoadBalancing()
Destructor.
toolbox::loadbalancing::AbstractLoadBalancing::_blacklist
Blacklist _blacklist
Definition
AbstractLoadBalancing.h:181
toolbox::loadbalancing::AbstractLoadBalancing::getIdOfHeaviestLocalSpacetree
int getIdOfHeaviestLocalSpacetree(double tolerance) const
Similar to getIdOfHeaviestLocalSpacetree() but you might get one of the trees back that is close to t...
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:37
toolbox::loadbalancing::Statistics
Statistics helper routine for load balancing.
Definition
Statistics.h:39
mpi.h
toolbox::loadbalancing::State
State
State descriptor of load balancing.
Definition
State.h:22
toolbox
Definition
InterpolationRestriction.h:10
Node.h
Statistics.h
src
toolbox
loadbalancing
AbstractLoadBalancing.h
Generated on Tue Nov 3 2026 16:05:42 for Peano by
1.9.8