Peano
benchmarks::exahype2::kernelbenchmarks Namespace Reference

Data Structures

class  DataRepository
 A singleton repository to manage and provide access to grid cell and face data. More...
 

Functions

void initInputData (SolverPrecision *Q, const tarch::la::Vector< DIMENSIONS, double > CellCenter, const tarch::la::Vector< DIMENSIONS, double > CellSize)
 Set input data. More...
 
void reportRuntime (const std::string &kernelIdentificator, const tarch::timing::Measurement &timingComputeKernel, const tarch::timing::Measurement &timingKernelLaunch, int numberOfCells, int numberOfThreads, tarch::logging::Log _log)
 Reports the runtime and throughput of the benchmarks. More...
 

Variables

constexpr int NumberOfInputEntriesPerCell
 
constexpr int NumberOfOutputEntriesPerCell = 0
 

Function Documentation

◆ initInputData()

void benchmarks::exahype2::kernelbenchmarks::initInputData ( SolverPrecision *  Q,
const tarch::la::Vector< DIMENSIONS, double >  CellCenter,
const tarch::la::Vector< DIMENSIONS, double >  CellSize 
)

Set input data.

We use the values from the centralMost Cell in the domain with an arbitrary cell size of 1/81 of the domain size.

TODO: should we update this to actual initial conditions?

Definition at line 30 of file Utils.h.

References CellCenter, and CellSize.

Referenced by runBenchmarks(), variant1::runBenchmarks(), variant2::runBenchmarks(), variant3::runBenchmarks(), variant4::runBenchmarks(), variant5::runBenchmarks(), and variant6::runBenchmarks().

Here is the caller graph for this function:

◆ reportRuntime()

void benchmarks::exahype2::kernelbenchmarks::reportRuntime ( const std::string &  kernelIdentificator,
const tarch::timing::Measurement &  timingComputeKernel,
const tarch::timing::Measurement &  timingKernelLaunch,
int  numberOfCells,
int  numberOfThreads,
tarch::logging::Log  _log 
)

Reports the runtime and throughput of the benchmarks.

First set of outputs refers to the time of the compute kernel itself. Second set of outputs refers to the time including the kernel launch overhead. The throughput is measured in the updates of volumes per second (dof/s).

In the second part, this also writes the information about the runtime to a csv file

Definition at line 68 of file Utils.h.

References convergence-study::name, and timingComputeKernel.

Referenced by main(), runBenchmarks(), variant1::runBenchmarks(), variant2::runBenchmarks(), variant3::runBenchmarks(), variant4::runBenchmarks(), variant5::runBenchmarks(), and variant6::runBenchmarks().

Here is the caller graph for this function:

Variable Documentation

◆ NumberOfInputEntriesPerCell

constexpr int benchmarks::exahype2::kernelbenchmarks::NumberOfInputEntriesPerCell
constexpr
Initial value:
= (AderSolver::Order + 1) * (AderSolver::Order + 1)
#if DIMENSIONS == 3
* (AderSolver::Order + 1)
#endif
* (AderSolver::NumberOfUnknowns + AderSolver::NumberOfAuxiliaryVariables)

Definition at line 13 of file Utils.h.

Referenced by runBenchmarks(), variant1::runBenchmarks(), variant2::runBenchmarks(), variant3::runBenchmarks(), variant4::runBenchmarks(), variant5::runBenchmarks(), and variant6::runBenchmarks().

◆ NumberOfOutputEntriesPerCell

constexpr int benchmarks::exahype2::kernelbenchmarks::NumberOfOutputEntriesPerCell = 0
constexpr