Compare Experiment Builds
lib/scripts/diffExperimentBuilds.py
Compare two experiment builds, generated by Spack as part of ramble workspace setup
command.
This script builds the benchmarks that are available for the specified programmming-model
on the target cluster
and compares the differences (leveraging diffSpecs.py
) for two different versions of benchpark.
- Stages that occur during this script:
benchpark experiment init
benchpark system init
benchpark setup
ramble workspace setup
ramble on
(optional)
Note
This script must be ran on the target system and cluster to work correctly.
Example: amg2023~mpi
For example, we can compare the builds for different benchpark branches of amg2023
on the ruby
cluster.
myBranch
is a branch of benchpark where we have configured ~mpi
.
$ benchpark-python diffExperimentBuilds.py -s llnl-cluster -c ruby -p openmp -b amg2023 --commit-hash2 myBranch
# Develop build
==> Streaming details to log:
==> /usr/WS1/mckinsey/benchpark/lib/scripts/benchpark-develop-openmp/wkp/benchpark-develop-openmp/amg2023/benchpark-develop-openmp/ruby/workspace/logs/setup.2025-03-27_13.19.33.out
==> Setting up 1 out of 1 experiments:
==> Experiment #1 (1/1):
==> name: amg2023.problem1.amg2023_problem1_single_node_openmp_caliper_none_2_2_2_80_80_80_8_1
==> root experiment_index: 1
==> log file: /usr/WS1/mckinsey/benchpark/lib/scripts/benchpark-develop-openmp/wkp/benchpark-develop-openmp/amg2023/benchpark-develop-openmp/ruby/workspace/logs/setup.2025-03-27_13.19.33/amg2023.problem1.amg2023_problem1_single_node_openmp_caliper_none_2_2_2_80_80_80_8_1.out
==> Returning to log file: /usr/WS1/mckinsey/benchpark/lib/scripts/benchpark-develop-openmp/wkp/benchpark-develop-openmp/amg2023/benchpark-develop-openmp/ruby/workspace/logs/setup.2025-03-27_13.19.33.out
# myBranch build
==> Streaming details to log:
==> /usr/WS1/mckinsey/benchpark/lib/scripts/benchpark-myBranch-openmp/wkp/benchpark-myBranch-openmp/amg2023/benchpark-myBranch-openmp/ruby/workspace/logs/setup.2025-03-27_13.28.29.out
==> Setting up 1 out of 1 experiments:
==> Experiment #1 (1/1):
==> name: amg2023.problem1.amg2023_problem1_single_node_openmp_caliper_none_2_2_2_80_80_80_8_1
==> root experiment_index: 1
==> log file: /usr/WS1/mckinsey/benchpark/lib/scripts/benchpark-myBranch-openmp/wkp/benchpark-myBranch-openmp/amg2023/benchpark-myBranch-openmp/ruby/workspace/logs/setup.2025-03-27_13.28.29/amg2023.problem1.amg2023_problem1_single_node_openmp_caliper_none_2_2_2_80_80_80_8_1.out
==> Returning to log file: /usr/WS1/mckinsey/benchpark/lib/scripts/benchpark-myBranch-openmp/wkp/benchpark-myBranch-openmp/amg2023/benchpark-myBranch-openmp/ruby/workspace/logs/setup.2025-03-27_13.28.29.out
The specs for amg2023 are different.
amg2023+mpi [develop]
-> [openmpi]
hypre+mpi
openblas
openmpi
amg2023~mpi [myBranch]
hypre~mpi
openblas
DifferentSpecs=True
Optionally the experiments can be run using the --run-experiment
argument.