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
57
int
_previousNumberOfCells
;
58
int
_numberOfStableGridIterations
;
59
64
int
getNumberOfTreesPerRank
()
const
;
65
66
void
updateLoadBalancing
();
67
68
void
triggerSplit
(
int
numberOfCells,
int
targetRank );
69
};
70
AbstractLoadBalancing.h
CellCount.h
Log.h
Node.h
tarch::logging::Log
Log Device.
Definition
Log.h:516
toolbox::loadbalancing::AbstractLoadBalancing
Definition
AbstractLoadBalancing.h:24
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::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::_numberOfStableGridIterations
int _numberOfStableGridIterations
Definition
SpreadOut.h:58
toolbox::loadbalancing::strategies::SpreadOut::_log
static tarch::logging::Log _log
Definition
SpreadOut.h:55
toolbox::loadbalancing::strategies::SpreadOut::~SpreadOut
virtual ~SpreadOut()
Definition
SpreadOut.cpp:23
toolbox::loadbalancing::strategies::SpreadOut::updateLoadBalancing
void updateLoadBalancing()
Definition
SpreadOut.cpp:69
toolbox::loadbalancing::strategies::SpreadOut::triggerSplit
void triggerSplit(int numberOfCells, int targetRank)
Definition
SpreadOut.cpp:130
toolbox::loadbalancing::strategies::SpreadOut::finishStep
virtual void finishStep() override
Finish the step.
Definition
SpreadOut.cpp:118
toolbox::loadbalancing::strategies::SpreadOut::_previousNumberOfCells
int _previousNumberOfCells
Definition
SpreadOut.h:57
toolbox::loadbalancing::strategies::SpreadOut::SpreadOut
SpreadOut(Configuration *configuration=new DefaultConfiguration(), CostMetrics *costMetrics=new toolbox::loadbalancing::metrics::CellCount())
Definition
SpreadOut.cpp:12
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.
Definition
SpreadOut.cpp:26
peano4::utils::LoopPlacement::SpreadOut
@ SpreadOut
toolbox
Definition
InterpolationRestriction.h:10
src
toolbox
loadbalancing
strategies
SpreadOut.h
Generated on Fri Apr 11 2025 10:18:15 for Peano by
1.10.0