14#if defined(SharedOMP) || defined(SharedTBB) || defined(SharedCPP) || defined(SharedSYCL)
15#define SharedMemoryParallelisation
151 namespace multicore {
264 void waitForTasks(
const std::set<TaskNumber>& inDependencies);
423 void processFusedTask(
Task* myTask,
const std::list<tarch::multicore::Task*>& tasksOfSameType,
int device);
553 const std::set<TaskNumber>& inDependencies,
584 void waitForTasks(
const std::set<TaskNumber>& inDependencies);
Abstract super class for a job.
Interface for any task orchestration.
void spawnAndWaitAsTaskLoop(const std::vector< tarch::multicore::Task * > &tasks)
Map onto native tasking.
void processFusedTask(Task *myTask, const std::list< tarch::multicore::Task * > &tasksOfSameType, int device)
Process a fused task.
const std::set< TaskNumber > NoInDependencies
tarch::multicore::orchestration::Strategy & getOrchestration()
void waitForTask(const int taskNumber)
Wrapper around waitForTasks() with a single-element set.
void waitForTasks(const std::set< TaskNumber > &inDependencies)
Wait for set of tasks.
constexpr TaskNumber NoOutDependencies
void setOrchestration(tarch::multicore::orchestration::Strategy *realisation)
void spawnAndWait(const std::vector< Task * > &tasks)
Fork-join task submission pattern.
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.
void initSmartMPI()
Switch on SmartMPI.
Have to include this header, as I need access to the SYCL_EXTERNAL keyword.