5#include "tarch/multicore/Task.h"
6#include "tarch/accelerator/Device.h"
10#include "tasks/CCZ4SBH_FD4EnclaveTask.h"
15#include "tasks/CCZ4SBH_FVEnclaveTask.h"
40 if ( taskType == tasks::CCZ4SBH_FVEnclaveTask::getEnclaveTaskTypeId() ) {
47 tarch::accelerator::Device::getInstance().getNumberOfDevices()>0
49 taskType == tasks::CCZ4SBH_FVEnclaveTask::getEnclaveTaskTypeId()
62 taskType == tasks::CCZ4SBH_FVEnclaveTask::getEnclaveTaskTypeId()
64 return benchmarks::exahype2::ccz4::MulticoreOrchestration::FuseInstruction(
69 return benchmarks::exahype2::ccz4::MulticoreOrchestration::FuseInstruction(
70 0, 16, std::numeric_limits<int>::max()
80 int nestedParallelismLevel,
int numberOfTasks,
int codeLocationIdentifier
82 if (nestedParallelismLevel > 1) {
83 return tarch::multicore::orchestration::Strategy::ExecutionPolicy::RunSerially;
86 return tarch::multicore::orchestration::Strategy::ExecutionPolicy::RunParallel;
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.