Peano
MulticoreOrchestration.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 #include "tarch/multicore/orchestration/Strategy.h"
6 
7 namespace benchmarks {
8  namespace exahype2 {
9  namespace ccz4 {
10  class MulticoreOrchestration;
11  }
12  }
13 }
14 
55 class benchmarks::exahype2::ccz4::MulticoreOrchestration: public tarch::multicore::orchestration::Strategy {
56  private:
63 
71 
76 
77  public:
79  virtual ~MulticoreOrchestration() = default;
80 
90  virtual void startBSPSection(int nestedParallelismLevel) override;
91 
101  virtual void endBSPSection(int nestedParallelismLevel) override;
102 
115  virtual int getNumberOfTasksToHoldBack(int taskType) override;
116 
124  virtual FuseInstruction getNumberOfTasksToFuseAndTargetDevice(int taskType) override;
125 
133  virtual bool fuseTasksImmediatelyWhenSpawned(int taskType) override;
134 
143  virtual ExecutionPolicy paralleliseForkJoinSection(int nestedParallelismLevel, int numberOfTasks, int taskType) override;
144 };
Hard coded strategy for the single black hole setup.
int _finiteVolumeTasksInThisBSPSection
Current number of finite volume tasks that already have been spawned.
virtual bool fuseTasksImmediatelyWhenSpawned(int taskType) override
Ensure Finite Volume tasks end up on GPU asap.
int _nestedBSPLevels
Number of nested fork/join levels.
virtual void startBSPSection(int nestedParallelismLevel) override
Start a fork/join section.
virtual void endBSPSection(int nestedParallelismLevel) override
End fork/join section.
virtual FuseInstruction getNumberOfTasksToFuseAndTargetDevice(int taskType) override
Ensure right cardinality ends up on GPU.
int _maxFiniteVolumeTasks
Maximum number of finite volume tasks in the system.
virtual ExecutionPolicy paralleliseForkJoinSection(int nestedParallelismLevel, int numberOfTasks, int taskType) override
Determine how to parallelise a fork/join section.
virtual int getNumberOfTasksToHoldBack(int taskType) override
How many tasks should be held back.
Definition: ccz4.py:1