16 class EnclaveBookkeeping;
89 const ::peano4::datamanagement::CellMarker
_marker;
131 int enclaveTaskTypeId,
132 const ::peano4::datamanagement::CellMarker& marker,
135 double* __restrict__ inputValues,
136 double* __restrict__ outputValues,
137 int numberOfInputValues,
138 int numberOfResultValues,
150 virtual void run()
override;
Base class for all enclave tasks.
EnclaveTask(const EnclaveTask &other)=delete
std::function< void()> Functor
virtual void run() override
Computes a task and bookmarks the outcome.
static tarch::logging::Log _log
EnclaveTask(const EnclaveTask &&other)=delete
static int getNumberOfActiveTasks()
virtual ~EnclaveTask()=default
int _numberOfResultValues
double *__restrict__ _inputValues
static int reserveTaskNumber()
Reserve a new enclave task number.
static tarch::Enumerator _enumerator
const int _taskNumber
Each task needs a unique number, so we can look up its output.
EnclaveTask(int enclaveTaskTypeId, const ::peano4::datamanagement::CellMarker &marker, double t, double dt, double *__restrict__ inputValues, double *__restrict__ outputValues, int numberOfInputValues, int numberOfResultValues, Functor functor)
Create plain enclave task.
void computeTask()
Compute the task.
double *__restrict__ _outputValues
static void releaseTaskNumber(int number)
const double _t
These are the reconstructed values in the Finite Volume sense and the linear combination in the DG so...
const ::peano4::datamanagement::CellMarker _marker
int getTaskId() const
Return _taskNumber.
Simple rank-global enumerator.
Abstract super class for a job.
For the generic kernels that I use here most of the time.