Peano
Loading...
Searching...
No Matches
SpreadOut.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
namespace
toolbox
{
18
namespace
loadbalancing {
19
namespace
strategies {
20
class
SpreadOut
;
21
}
22
}
23
}
24
25
26
27
28
44
class
toolbox::loadbalancing::strategies::SpreadOut
:
public
toolbox::loadbalancing::AbstractLoadBalancing
{
45
public
:
46
SpreadOut
(
47
Configuration
* configuration =
new
DefaultConfiguration
(),
48
CostMetrics
* costMetrics =
new
toolbox::loadbalancing::metrics::CellCount
()
49
);
50
virtual
~SpreadOut
();
51
52
virtual
void
finishStep
()
override
;
53
54
private
:
55
static
tarch::logging::Log
_log
;
56
73
int
getNumberOfTreesPerRank
()
const
;
74
75
void
updateLoadBalancing
();
76
77
void
triggerSplit
(
int
numberOfCells,
int
targetRank );
78
};
79
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::SpreadOut
Spread out.
Definition
SpreadOut.h:44
toolbox::loadbalancing::strategies::SpreadOut::_log
static tarch::logging::Log _log
Definition
SpreadOut.h:55
toolbox::loadbalancing::strategies::SpreadOut::updateLoadBalancing
void updateLoadBalancing()
toolbox::loadbalancing::strategies::SpreadOut::triggerSplit
void triggerSplit(int numberOfCells, int targetRank)
toolbox::loadbalancing::strategies::SpreadOut::SpreadOut
SpreadOut(Configuration *configuration=new DefaultConfiguration(), CostMetrics *costMetrics=new toolbox::loadbalancing::metrics::CellCount())
toolbox::loadbalancing::strategies::SpreadOut::~SpreadOut
virtual ~SpreadOut()
toolbox::loadbalancing::strategies::SpreadOut::finishStep
virtual void finishStep() override
Finish the step.
toolbox::loadbalancing::strategies::SpreadOut::getNumberOfTreesPerRank
int getNumberOfTreesPerRank() const
Return 0 if the load balancing should not split (yet) and otherwise return number of splits required.
peano4::utils::LoopPlacement::SpreadOut
@ SpreadOut
toolbox
Definition
InterpolationRestriction.h:10
Node.h
src
toolbox
loadbalancing
strategies
SpreadOut.h
Generated on Tue Nov 3 2026 16:05:42 for Peano by
1.9.8