20 logDebug(
"releaseTaskNumber(int)",
"enclave task number " << number <<
" has been released and should be recycled later" );
31 int enclaveTaskTypeId,
32 const ::peano4::datamanagement::CellMarker& marker,
35 double* __restrict__ inputValues,
36 double* __restrict__ outputValues,
37 int numberOfInputValues,
38 int numberOfResultValues,
#define assertion1(expr, param)
#define logDebug(methodName, logMacroMessageStream)
#define logTraceOut(methodName)
#define logTraceIn(methodName)
#define logTraceInWith1Argument(methodName, argument0)
static EnclaveBookkeeping & getInstance()
void registerTask(int taskNumber, const ::peano4::datamanagement::CellMarker &marker)
This one is only there for debugging purposes.
void finishedTask(int taskNumber, int numberOfResultValues, double *data, double maxEigenvalue, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h)
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()
int _numberOfResultValues
double *__restrict__ _inputValues
static int reserveTaskNumber()
Reserve a new enclave task number.
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.
static tarch::multicore::TaskEnumerator _enumerator
Rank-global enumerator for tasks.
virtual std::string toString() const
Task(int taskType, int priority)
Construct task.
static constexpr int DefaultPriority
Have to include this header, as I need access to the SYCL_EXTERNAL keyword.
@ ManagedSharedAcceleratorDeviceMemory
To be used on host only.
T * allocateMemory(std::size_t count, MemoryLocation location, int device=accelerator::Device::HostDevice)
Allocates memory on the specified memory location.