12#include <nlohmann/json.hpp>
93 int n = 0,
p = 0,
g = 0;
115 std::string
name =
"ppforest2 benchmark";
154 using ProgressCallback = std::function<void(
int scenario_index,
int total, std::string
const& name)>;
169 std::string
const& binary_path,
CLI argument parsing, validation, and configuration for ppforest2.
Definition Benchmark.hpp:18
Command-line interface: argument parsing, subcommands, and benchmark/evaluation orchestration.
Definition Benchmark.hpp:22
CLI::App * setup_benchmark(CLI::App &app, CLIOptions ¶ms)
Register benchmark subcommand options on app.
BenchmarkSuite parse_suite(std::string const &path)
Parse a BenchmarkSuite from a JSON file path.
ScenarioResult run_scenario(Scenario const &scenario, std::string const &binary_path, bool quiet=false)
Run a single scenario as a subprocess.
SuiteResult parse_results(std::string const &path)
Parse a SuiteResult from a JSON file (for baseline comparison).
int run_benchmark(CLIOptions ¶ms, std::string const &binary_path)
Run the benchmark subcommand.
SuiteResult run_suite(BenchmarkSuite const &suite, std::string const &binary_path, bool quiet=false, ProgressCallback progress=nullptr)
Run all scenarios in a suite via subprocess invocations.
std::function< void(int scenario_index, int total, std::string const &name)> ProgressCallback
Callback for progress reporting during benchmark execution.
Definition Benchmark.hpp:154
A suite of scenarios with shared defaults.
Definition Benchmark.hpp:114
std::vector< Scenario > scenarios
Definition Benchmark.hpp:116
std::string name
Definition Benchmark.hpp:115
All CLI options and runtime parameters.
Definition CLIOptions.hpp:32
Convergence criteria for adaptive stopping in benchmarks.
Definition Benchmark.hpp:42
int max
Definition Benchmark.hpp:50
int min
Definition Benchmark.hpp:48
float cv
Definition Benchmark.hpp:44
int window
Definition Benchmark.hpp:46
Result of running a single benchmark scenario.
Definition Benchmark.hpp:88
double scenario_time_ms
Definition Benchmark.hpp:108
double std_time_ms
Definition Benchmark.hpp:101
int n
Definition Benchmark.hpp:93
int runs
Definition Benchmark.hpp:99
long peak_rss_bytes
Definition Benchmark.hpp:104
std::string name
Definition Benchmark.hpp:89
double mean_te_error
Definition Benchmark.hpp:103
std::string data
Definition Benchmark.hpp:90
float train_ratio
Definition Benchmark.hpp:96
int size
Definition Benchmark.hpp:94
float vars
Definition Benchmark.hpp:95
double mean_time_ms
Definition Benchmark.hpp:100
int p
Definition Benchmark.hpp:93
double mean_tr_error
Definition Benchmark.hpp:102
double peak_rss_mb
Definition Benchmark.hpp:105
int g
Definition Benchmark.hpp:93
A single benchmark scenario: data shape + model config.
Definition Benchmark.hpp:56
int iterations
Definition Benchmark.hpp:79
float lambda
Definition Benchmark.hpp:70
int warmup
Definition Benchmark.hpp:76
std::string data
Definition Benchmark.hpp:60
ConvergenceCriteria convergence
Definition Benchmark.hpp:80
int threads
Definition Benchmark.hpp:71
std::string name
Definition Benchmark.hpp:57
int size
Definition Benchmark.hpp:68
int n
Definition Benchmark.hpp:63
int g
Definition Benchmark.hpp:65
int p
Definition Benchmark.hpp:64
float train_ratio
Definition Benchmark.hpp:74
float vars
Definition Benchmark.hpp:69
int seed
Definition Benchmark.hpp:75
Aggregated results for an entire suite run.
Definition Benchmark.hpp:122
nlohmann::json to_json() const
std::string timestamp
Definition Benchmark.hpp:124
double total_time_ms
Definition Benchmark.hpp:126
std::vector< ScenarioResult > results
Definition Benchmark.hpp:125
std::string suite_name
Definition Benchmark.hpp:123