Peano
Loading...
Searching...
No Matches
taskfusion.h File Reference
Include dependency graph for taskfusion.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tarch
 Have to include this header, as I need access to the SYCL_EXTERNAL keyword.
 
namespace  tarch::multicore
 This page describes Peano 4's multithreading namespace.
 
namespace  tarch::multicore::taskfusion
 Task fusion means that a set of tasks are grabbed and mapped onto one large physical tasks instead of being processed one by one.
 

Functions

void tarch::multicore::taskfusion::handleFusableTask (Task *task, std::set< TaskNumber > inDependencies, const TaskNumber &taskNumber)
 Handle one fusable task.
 
void tarch::multicore::taskfusion::processAllReadyTasks ()
 Run over all known queues and invoke drainReadyTasks() on each one.
 
void tarch::multicore::taskfusion::processAndFuseAllReadyTasks ()
 Drain the queues but use task fusion where possible.
 
void tarch::multicore::taskfusion::handleFusableTask_ProducerConsumerTaskSequence (Task *task, FusableTasksQueue &taskQueue, std::set< TaskNumber > inDependencies, const TaskNumber &taskNumber, const tarch::multicore::orchestration::Strategy::FuseInstruction &fuseInstruction)
 Realisation for handleFusableTask() for ProducerConsumerTaskSequence.
 
void tarch::multicore::taskfusion::handleFusableTask_LazyEvaluation (Task *task, FusableTasksQueue &taskQueue, std::set< TaskNumber > inDependencies, const TaskNumber &taskNumber, const tarch::multicore::orchestration::Strategy::FuseInstruction &fuseInstruction)
 Implementation of handleFusableTask() if we use LazyEvaluation.
 
void tarch::multicore::taskfusion::handleFusableTask_EagerConsumerTasks (Task *task, FusableTasksQueue &taskQueue, std::set< TaskNumber > inDependencies, const TaskNumber &taskNumber, const tarch::multicore::orchestration::Strategy::FuseInstruction &fuseInstruction)
 Handle a task in the eager consumer pattern.
 
bool tarch::multicore::taskfusion::ensureHeldBackTasksAreMappedOntoNativeTasks (const std::set< TaskNumber > &taskNumbers)
 Ensure that a certain set of tasks is mapped onto native tasks already.
 
bool tarch::multicore::taskfusion::ensureHeldBackTasksAreMappedOntoNativeTasks_LazyEvaluation (const std::set< TaskNumber > &inDependencies)
 Preamble of waitForTasks() and task spawns if we use LazyEvaluation.
 
bool tarch::multicore::taskfusion::ensureHeldBackTasksAreMappedOntoNativeTasks_EagerConsumerTasks (const std::set< TaskNumber > &inDependencies)
 Preamble of waitForTasks() if we use EagerEvaluation.
 

Variables

const std::string tarch::multicore::taskfusion::DirectlyInsertFusedTaskIntoReadyQueueStatisticsIdentifier
 Track how many tasks are directly inserted into ready queue.
 
const std::string tarch::multicore::taskfusion::MapFusedTaskOntoNativeTaskStatisticsIdentifier
 Track number of fused tasks that are mapped directly onto native tasks.
 
const std::string tarch::multicore::taskfusion::ProcessFusedTaskDirectlyStatisticsIdentifier
 Track number of tasks that are executed directly.