28 static constexpr int Host = -1;
90 Task(
int taskType,
int priority);
148 virtual void fuse(
const std::vector<Task*>& otherTasks,
int targetDevice =
Host);
219 std::string _taskDescription;
284 const std::function<
void()>& taskFunctor
286 ,
const std::string& taskDescription =
""
290 virtual void run()
override;
312 virtual void run()
override;
346 virtual void run()
override;
bool operator<(const tarch::multicore::Task &lhs, const tarch::multicore::Task &rhs)
virtual void run() override
Run the task.
EmptyTask(int priority)
Create empty task.
virtual std::string toString() const override
Helper class if you wanna administer tasks with in a queue.
bool operator()(Task *lhs, Task *rhs) const
bool operator()(const Task &lhs, const Task &rhs) const
Frequently used implementation for job with a functor.
std::function< void()> _taskFunctor
See the outer class description for an explanation why this is an attribute, i.e.
virtual void run() override
Run the task.
virtual std::string toString() const override
TaskWithCopyOfFunctor()=delete
TaskWithCopyOfFunctor(const TaskWithCopyOfFunctor &)=delete
TaskWithCopyOfFunctor(int taskType, int priority, const std::function< void()> &taskFunctor)
Create new task from a functor.
Frequently used implementation for job with a functor.
TaskWithoutCopyOfFunctor(const TaskWithoutCopyOfFunctor &)=delete
std::function< void()> & _taskFunctor
See the outer class description for an explanation why this is an attribute, i.e.
virtual void run() override
Run the task.
TaskWithoutCopyOfFunctor()=delete
TaskWithoutCopyOfFunctor(int taskType, int priority, std::function< void()> &taskFunctor)
Abstract super class for a job.
virtual void run()=0
Run the task.
virtual bool canFuse() const
static constexpr int Host
virtual std::string toString() const
Task(int taskType, int priority)
Construct task.
virtual void fuse(const std::vector< Task * > &otherTasks, int targetDevice=Host)
Fuse multiple tasks.
static constexpr int DontFuse
static constexpr int DefaultPriority
void setPriority(int priority)
Set priority.
Have to include this header, as I need access to the SYCL_EXTERNAL keyword.