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.