Just a filter for space separated value file.
cmake -S . -B build
cmake --build buildRemove all generated build and benchmark artifacts:
cmake -E rm -rf build build-coverageRun the executable from the project root with: paretoMe <dim> <file>
./build/src/paretoMe 2 ./path/to/data.ssvInstall to the default prefix:
cmake --install buildInstall to a custom prefix:
cmake --install build --prefix /usr/localThe suite covers list operations, Pareto archive behavior, and CLI integration cases (usage failure, missing input file, valid input, empty input, and output file generation).
cmake --build build --target testCoverage reports are generated with gcovr.
cmake -S . -B build-coverage -DENABLE_COVERAGE=ON
cmake --build build-coverage
cmake --build build-coverage --target test
cmake --build build-coverage --target coverageReports are generated in:
build-coverage/coverage.xmlbuild-coverage/coverage.html
Use hyperfine through CMake targets to benchmark the CLI.
Prerequisites:
hyperfineforbenchmark_mainpython3andgnuplotforbenchmark_graph
Quick start:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target benchmark_mainFor best local performance numbers, you can also enable native tuning and LTO:
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS_RELEASE="-O3 -march=native -flto"
cmake --build build --target benchmark_mainThis is often the easiest 1.5x to 3x speedup before algorithmic changes.
You can customize benchmark size and runtime at configure time:
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DPARETOME_BENCHMARK_DIMS=10,200,300,400,500 \
-DPARETOME_BENCHMARK_ROWS=10000 \
-DPARETOME_BENCHMARK_ROW_MULTIPLIERS=1,2,3,4,5 \
-DPARETOME_BENCHMARK_REPETITIONS=10 \
-DPARETOME_BENCHMARK_WARMUP=3
cmake --build build --target benchmark_mainTo generate the benchmark chart:
cmake --build build --target benchmark_main
cmake --build build --target benchmark_graphGenerated artifacts:
build/benchmarks/main/results.jsonbuild/benchmarks/main/summary.txtbuild/benchmarks/main/summary.mdbuild/benchmarks/main/benchmark_data.txtbuild/benchmarks/main/benchmark_results.png