Open
Description
For automated performance reports in CI, benchmark applications should provide an option to print performance measurements in a unified format.
For this, utility types/concepts dash::bench::BenchmarkResult
, dash::bench::BenchmarkResultPrinter
should be introduced to decouple benchmark parameters and performance metrics from output.
Illustrating example:
$ mpirun -n 32 -genv DASH_MAX_THREADS_PER_UNIT=4 \
./bin/bench.12.time-dilatation.mpi --nd=11 --self-aware
$ # output:
$ [bench.12.time-dilatation.mpi] [n:32;tpu:4] [nd:11;self-aware] [iteration:0] [123.4]
$ [bench.12.time-dilatation.mpi] [n:32;tpu:4] [nd:11;self-aware] [iteration:1] [226.6]
$ [bench.12.time-dilatation.mpi] [n:32;tpu:4] [nd:11;self-aware] [iteration:2] [559.0]
... with 123.4
, 226.6
, 559.0
as measures in a "unified" performance metric (higher is better) specific to
the benchmark.
The overall goal is to emit warnings if these values decrease in a nightly build.