20 _enumerator.releaseNumber(number);
25 return _enumerator.getNumber();
30 int enclaveTaskTypeId,
31 const ::peano4::datamanagement::CellMarker& marker,
34 double* __restrict__ inputValues,
35 double* __restrict__ outputValues,
36 int numberOfInputValues,
37 int numberOfResultValues,
40 tarch::multicore::Task(enclaveTaskTypeId,
tarch::multicore::Task::DefaultPriority),
41 _taskNumber(reserveTaskNumber()),
45 _inputValues(inputValues),
46 _outputValues(outputValues),
47 _numberOfInputValues(numberOfInputValues),
48 _numberOfResultValues(numberOfResultValues),
50 _maxEigenvalue(-1.0) {
68 if (_outputValues==
nullptr) {
72 logDebug(
"computeTask()",
"enclave task " << _taskNumber <<
" writes directly into mesh data structure at " << _outputValues <<
" (uses data from " << _inputValues <<
")" );
75 logDebug(
"computeTask()",
"lambda=" << _maxEigenvalue);
#define logDebug(methodName, logMacroMessageStream)
#define logTraceOut(methodName)
#define logTraceIn(methodName)
#define logTraceInWith1Argument(methodName, argument0)
static EnclaveBookkeeping & getInstance()
void finishedTask(int taskNumber, int numberOfResultValues, double *data, double maxEigenvalue)
Usually called directly by EnclaveTask.
std::function< void()> Functor
virtual void run() override
Computes a task and bookmarks the outcome.
static tarch::logging::Log _log
static int getNumberOfActiveTasks()
static int reserveTaskNumber()
Reserve a new enclave task number.
static tarch::Enumerator _enumerator
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.
static void releaseTaskNumber(int number)
int getTaskId() const
Return _taskNumber.
Simple rank-global enumerator.
int size() const
Number of numbers handed out so far.
Have to include this header, as I need access to the SYCL_EXTERNAL keyword.
@ ManagedSharedAcceleratorDeviceMemory
To be used on host only.