Peano
Loading...
Searching...
No Matches
Hardcoded.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 "tarch/logging/Log.h"
8
9#include <initializer_list>
10#include <list>
11
12
13namespace toolbox {
14 namespace loadbalancing {
15 namespace strategies {
16 class Hardcoded;
17 } // namespace strategies
18 } // namespace loadbalancing
19} // namespace toolbox
20
21
190public:
229 std::initializer_list<int> splittingTrees,
230 std::initializer_list<int> numberOfCells,
231 std::initializer_list<int> destinationRanks,
232 std::initializer_list<peano4::SplitInstruction::Mode> modes
233 );
234
242 std::initializer_list<int> splittingTrees,
243 std::initializer_list<int> numberOfCells,
244 std::initializer_list<int> destinationRanks,
246 BottomUp
247 );
248
276 virtual void finishStep() override;
277
278 virtual void finishSimulation() override;
279
280private:
282
283 struct Split {
289 int splittingTree_,
290 int numberOfCells_,
291 int destinationRank_,
293 );
294
295 std::string toString() const;
296
314 };
315
323
331
332 std::list<Split> _splits;
333
335};
Log Device.
Definition Log.h:517
Abstract superclass of any load balancing.
Hardcoded domain decomposition strategy.
Definition Hardcoded.h:189
virtual void finishStep() override
Finish the current sweep.
Hardcoded(std::initializer_list< int > splittingTrees, std::initializer_list< int > numberOfCells, std::initializer_list< int > destinationRanks, std::initializer_list< peano4::SplitInstruction::Mode > modes)
Construct hard-coded load balancing strategy.
void issueSplits()
Hand out the splits that are due.
void keepAndValidateLocalSplits()
Drop the splits of other ranks and validate the remaining ones.
Hardcoded(std::initializer_list< int > splittingTrees, std::initializer_list< int > numberOfCells, std::initializer_list< int > destinationRanks, peano4::SplitInstruction::Mode mode=peano4::SplitInstruction::Mode::BottomUp)
Shortcut around other constructor.
Split(int splittingTree_, int numberOfCells_, int destinationRank_, peano4::SplitInstruction::Mode mode_)
void validateAndAmend()
Validate a split instruction.