Configuration Parameters

This document describes all configuration parameters available. Parameters are organized by section, they are specified in TOML format.


[general]

General settings that control the overall behavior of the package.

ParameterTypeDefaultDescription
autoflopsBooltrueWhether the autoflop counter is enabled and accessible during testing.
numasString | Integer | Float64"single"Amount of NUMAS to use when pinning threads.
threads_per_numaString | Integer | Float64"single"Amount of threads to pin per NUMA.
save_resultsBooltrueWhether to record the results of executing the performance suite.
logs_enabledBooltrueEnable or disable the log subsystem. If false, this will prevent PerfTest from creating a log folder and log files.
save_folderString".perftests"Folder where performance suite results shall be stored.
max_saved_resultsInt20Maximum amount of performance test suite execution results to be saved in the result file for each suite.
plottingBooltrueWhether to have plots in the test output of methodologies that support it.
verboseInt0Whether to output the collected logs in the standard output.
recursiveBooltrueIf enabled, whenever a file is included inside a recipe that is being transformed, it will be transformed as well.
safe_formulasBoolfalseDeprecated.
suppress_outputBooltrueWhether to hide the output of the test targets. If false the output of each execution will be shown, which will be probably a long output.

[regression]

Settings for regression testing.

ParameterTypeDefaultDescription
enabledBooltrueWhether to use regression testing in this suite.
dedicated_reference_fileString""If not an empty string, a succesful suite execution will be saved into this file, as well as in the (result file see [general] save_folder). The last saved execution will be used as reference for regression testing. If empty the package will look at the result file instead, and find the latest sucessful execution as reference.
default_thresholdNumber1.1The default threshold of the @regression macro if no threshold is specified.
use_bencherBoolfalseWhether to enable Bencher to upload results to an online CI/CD performance benchmark platform. THIS FEATURE IS EXPERIMENTAL and likely unstable.

[roofline]

Settings for roofline analysis.

ParameterTypeDefaultDescription
enabledBooltrueWhether to use roofline methodologies in this suite.
default_thresholdNumber0.5Default threshold of the @roofline macro if no threshold is specified.

[memory_bandwidth]

Settings for memory bandwidth analysis.

ParameterTypeDefaultDescription
enabledBooltrueWhether to use effective memory throughput methodology in this suite.
default_thresholdNumber0.5Default thresholds of the @define_eff_mem_throughput macro if no threshold is specified.

[perfcompare]

Settings for performance comparison.

ParameterTypeDefaultDescription
enabledBooltrueWhether to use the @perfcompare macro in this suite.

[machine_benchmarking]

Settings for benchmarking the underlying machine.

ParameterTypeDefaultDescription
memory_bandwidth_test_buffer_sizeInt0If 0 a buffer size for bandwith benchmarks is used so its at least 4 times bigger than the biggest cache level of the machine. If non-zero this value is used to set the buffer size instead.

[MPI]

Settings for MPI-based execution.

ParameterTypeDefaultDescription
enabledBoolfalseWhether to enable the MPI aware performance suite generation, this will mainly make sure tests are measured in all ranks but evaluated on the main rank only, and that machine benchmarks take into account all ranks.
modeString"reduce"This has no function as of now, but it will be used in future versions of perftest.

[bencher]

Settings for Bencher integration. This feature is experimental, and likely prone to bugs.

ParameterTypeDefaultDescription
api_keyString""The Bencher platform key to use to connect to bencher.
api_urlString"https://api.bencher.dev"The API url.
project_nameString""The name of the project where metrics and testbeds shall be posted.
organizationString""The organization that holds the project.
custom_testbed_nameString""The customized identification of this machine (a.k.a testbed for Bencher) when uploading posting suite execution results.