Peano
Loading...
Searching...
No Matches
Tasks.cpp
Go to the documentation of this file.
2#include "tarch/Assertions.h"
3#include "tarch/mpi/Rank.h"
10
11#if defined(SharedSYCL)
12
13namespace {
14 tarch::multicore::BooleanSemaphore suspensionPointSemaphore;
15} // namespace
16
23void tarch::multicore::native::spawnAndWaitAsTaskLoop(const std::vector<tarch::multicore::Task*>& tasks) {
24 assertion(not tasks.empty());
25
26 for (auto& p : tasks) {
27 tarch::multicore::getHostSYCLQueue().submit([&](auto& h) {
28 while (p->run()) {
29 }
30 delete p;
31 });
32 }
33
34 tarch::multicore::getHostSYCLQueue().wait();
35}
36
37
38void tarch::multicore::native::spawnTask(Task* job, int in, int out) { tarch::multicore::native::spawnTask(job); }
39
40
57void tarch::multicore::native::spawnTask(Task* job) {
58 sycl::event e = tarch::multicore::getHostSYCLQueue().submit([&](auto& h) {
59 h.host_task([=]() {
60 while (job->run()) {
61 }
62 delete job;
63 });
64 });
65}
66
67
68// void tarch::multicore::native::drainTaskQueues() { tarch::multicore::getHostSYCLQueue().wait(); }
69
70
71void tarch::multicore::native::spawnTaskWithDependencies(Task* job, int inDependency, int taskNumber) {
72 tarch::multicore::native::spawnTask(job);
73}
74
75
76void tarch::multicore::native::spawnTaskWithDependencies(
77 Task* job, const std::vector<int>& inDependencies, int taskNumber
78) {
79 tarch::multicore::native::spawnTask(job);
80}
81
82
83void tarch::multicore::native::waitForTasks(const std::vector<int>& inDependencies) {}
84
85void tarch::multicore::native::waitForTask(int taskNumber) {}
86#endif
#define assertion(expr)
void spawnAndWaitAsTaskLoop(const std::vector< tarch::multicore::Task * > &tasks)
Map onto native tasking.
Definition Tasks.cpp:111