14#if defined(SharedOMP) || defined(SharedTBB) || defined(SharedCPP) || defined(SharedSYCL)
15#define SharedMemoryParallelisation
203 namespace multicore {
323 std::string
toString(
const std::set<TaskNumber>& taskNumbers );
768 const std::set<TaskNumber>& inDependencies,
Abstract super class for a job.
Interface for any task orchestration.
void spawnTask(Task *task, const std::set< TaskNumber > &inDependencies, const TaskNumber &taskNumber)
Spawn a new task into the tasking backend.
void spawnAndWaitAsTaskLoop(const std::vector< tarch::multicore::Task * > &tasks)
Map onto native tasking.
void waitForAllTasks()
Slightly different than the umbrella version in the general namespace.
void waitForTasks(const std::set< TaskNumber > &inDependencies)
Wait for other task.
const std::set< TaskNumber > NoInDependencies
TaskWaitType
This is a hint type which can be used to accelerate any taskwaits.
const std::string SpawnedTasksStatisticsIdentifier
Statistics identifier for spawned tasks.
tarch::multicore::orchestration::Strategy & getOrchestration()
const std::string SpawnedFusableTasksStatisticsIdentifier
Number of fusable tasks over time Please consult std::string SpawnedTasksStatisticsIdentifier for a d...
const std::string BSPConcurrencyLevelStatisticsIdentifier
Statistics identifier for active BSP sections.
void waitForTasks(const std::set< TaskNumber > &inDependencies, TaskWaitType taskWaitType=TaskWaitType::Mixed)
Wait for set of tasks.
void waitForTask(const int taskNumber, TaskWaitType taskWaitType=TaskWaitType::Mixed)
Wrapper around waitForTasks() with a single-element set.
constexpr TaskNumber NoOutDependencies
void setOrchestration(tarch::multicore::orchestration::Strategy *realisation)
void spawnAndWait(const std::vector< Task * > &tasks)
Fork-join task submission pattern.
void waitForAllTasks()
Wait for all tasks notably has to take fused tasks into account.
tarch::multicore::orchestration::Strategy * swapOrchestration(tarch::multicore::orchestration::Strategy *realisation)
Swap the active orchestration.
void spawnTask(Task *task, const std::set< TaskNumber > &inDependencies=tarch::multicore::NoInDependencies, const TaskNumber &taskNumber=tarch::multicore::NoOutDependencies)
Spawns a single task in a non-blocking fashion.
std::string toString(const std::set< TaskNumber > &taskNumbers)
Construct string representation.
void initSmartMPI()
Switch on SmartMPI.
Have to include this header, as I need access to the SYCL_EXTERNAL keyword.