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
82
virtual
std::string
toString
()
const
;
83
84
88
virtual
void
enable
(
bool
);
89
90
104
virtual
bool
hasSplitRecently
()
const
;
105
106
114
bool
isEnabled
(
bool
globally)
const
;
115
116
120
virtual
int
getGlobalNumberOfTrees
()
const
;
121
122
127
virtual
bool
hasStagnated
()
const
;
128
129
130
virtual
void
finishSimulation
();
131
132
143
virtual
void
finishStep
() = 0;
144
150
void
setConfigurationAndMetricsNullWithoutDelete
();
151
152
protected
:
153
static
tarch::logging::Log
_log
;
154
155
Blacklist
_blacklist
;
156
157
Statistics
_statistics
;
158
159
Configuration
*
_configuration
;
160
161
CostMetrics
*
_costMetrics
;
162
171
State
_state
;
172
176
bool
fitsIntoMemory
(
State
state)
const
;
177
178
195
bool
isInterRankBalancingBad
()
const
;
196
197
212
bool
isIntraRankBalancingBad
()
const
;
213
214
215
bool
areRanksUnemployed
()
const
;
216
220
double
getWeightOfHeaviestLocalSpacetree
()
const
;
221
247
int
getIdOfHeaviestLocalSpacetree
()
const
;
248
249
265
int
getIdOfHeaviestLocalSpacetree
(
double
tolerance)
const
;
266
};
267
268
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: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.
toolbox::loadbalancing::AbstractLoadBalancing::areRanksUnemployed
bool areRanksUnemployed() const
toolbox::loadbalancing::AbstractLoadBalancing::_statistics
Statistics _statistics
Definition
AbstractLoadBalancing.h:157
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:153
toolbox::loadbalancing::AbstractLoadBalancing::_state
State _state
Ensure that you invoke.
Definition
AbstractLoadBalancing.h:171
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::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:159
toolbox::loadbalancing::AbstractLoadBalancing::_costMetrics
CostMetrics * _costMetrics
Definition
AbstractLoadBalancing.h:161
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:155
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: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
Node.h
Statistics.h
src
toolbox
loadbalancing
AbstractLoadBalancing.h
Generated on Sat Mar 7 2026 07:25:07 for Peano by
1.10.0