|
Template Numerical Library version\ main:0b2c40f
|
Container for benchmark measurement results. More...
#include <TNL/Benchmarks/BenchmarkResult.h>
Public Types | |
| using | HeaderElements = Logging::HeaderElements |
| using | RowElements = Logging::RowElements |
Public Member Functions | |
| virtual RowElements | getRowElements () const |
| Returns formatted row data for logging. | |
| virtual HeaderElements | getTableHeader () const |
| Returns table header column names. | |
| virtual void | setDerivedResults (double datasetSize, double baseTime, std::size_t operationsPerLoop) |
| Computes derived metrics from raw timing data. | |
| virtual void | setTimeResults (std::size_t loops_, double time_, double time_median_, double time_stddev_, double cpu_cycles_, double cpu_cycles_median_, double cpu_cycles_stddev_) |
| Stores raw timing results. | |
Public Attributes | |
| double | bandwidth = std::numeric_limits< double >::quiet_NaN() |
| double | cpu_cycles = std::numeric_limits< double >::quiet_NaN() |
| double | cpu_cycles_median = std::numeric_limits< double >::quiet_NaN() |
| double | cpu_cycles_per_operation = 0 |
| double | cpu_cycles_stddev = std::numeric_limits< double >::quiet_NaN() |
| std::size_t | loops = 0 |
| std::size_t | operations_per_loop = 0 |
| double | speedup = std::numeric_limits< double >::quiet_NaN() |
| double | time = std::numeric_limits< double >::quiet_NaN() |
| double | time_median = std::numeric_limits< double >::quiet_NaN() |
| double | time_stddev = std::numeric_limits< double >::quiet_NaN() |
Container for benchmark measurement results.
Stores timing data and derived metrics from benchmark runs. The class supports virtual methods to allow derived classes to customize result storage and formatting.
Measured values:
Derived values (computed by setDerivedResults):
|
inlinenodiscardvirtual |
Returns formatted row data for logging.
Formats all result values as strings using scientific notation for floating-point values. Missing or invalid values are shown as "N/A".
|
inlinenodiscardvirtual |
Returns table header column names.
|
inlinevirtual |
Computes derived metrics from raw timing data.
Must be called after setTimeResults. Calculates bandwidth, speedup, and cycles per operation based on dataset size, baseline time, and operation count.
| datasetSize | Dataset size in gigabytes |
| baseTime | Baseline time for speedup calculation |
| operationsPerLoop | Number of operations performed per iteration |
|
inlinevirtual |
Stores raw timing results.
Called by timeFunction after completing all iterations. Derived classes can override to customize how timing data is stored.
| loops_ | Number of iterations executed |
| time_ | Mean execution time per iteration |
| time_median_ | Median execution time per iteration |
| time_stddev_ | Standard deviation of execution time |
| cpu_cycles_ | Mean CPU cycles per iteration |
| cpu_cycles_median_ | Median CPU cycles per iteration |
| cpu_cycles_stddev_ | Standard deviation of CPU cycles |