Updating the System Software Specification
These steps show how to use benchpark system external to compare and update the
external packages defined by a Benchpark system against packages detected on the current
machine. For adding a new system, please see Adding a System.
Note
You must run the following commands on the target system. Software is detected for the current environment.
Compare the Existing Software Specification to the Current Environment
Benchpark can collect the current system software specification and detects external
packages available on the current system. The detected packages are then compared
against the current specification defined in Benchpark. The command to do this is
benchpark system external with the same system variants that would normally be
passed to benchpark system init. For example, to check the external packages of the
Tioga system:
benchpark system external llnl-elcapitan cluster=tioga
To generate proposals for any version updates in the system definition, use
--propose:
benchpark system external llnl-elcapitan cluster=tioga --propose
Additional system variants can be specified in the same way. For example, we can propose updating the ROCm version to 7.2.0 as follows:
benchpark system external llnl-elcapitan cluster=tioga rocm=7.2.0 --propose
The proposed changes are written to standard output. Changes that cannot be updated cleanly are reported for manual review.
Apply Local Changes to the System
After reviewing the proposed updates, use --apply to apply eligible changes directly
to the system’s system.py:
benchpark system external llnl-elcapitan cluster=tioga --apply
Benchpark validates the detected changes before updating the system definition. Only changes that can be matched and applied unambiguously are written automatically. Updates that require manual review are reported without being applied.
The resulting changes can be inspected with Git before committing:
git diff -- systems/llnl-elcapitan/system.py
The updated system definition can then be committed and upstreamed through the standard Benchpark Git contribution workflow.