diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8a6bfdbdb..ec87e3056 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,7 +10,7 @@ jobs: uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - name: Setup Python - uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 with: python-version: '3.11' cache: 'pip' diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml index 1b0c49c2e..f52c54d6e 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/license.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - name: Set up Python 3.11 - uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 with: python-version: '3.11' cache: 'pip' diff --git a/.github/workflows/run.yml b/.github/workflows/run.yml index 638121283..43312adb5 100644 --- a/.github/workflows/run.yml +++ b/.github/workflows/run.yml @@ -152,10 +152,11 @@ jobs: - name: Dry run kripke/rocm on Tioga with allocation modifier run: | - ./bin/benchpark setup kripke/rocm LLNL-Tioga-HPECray-zen3-MI250X-Slingshot workspace/ + ./bin/benchpark system init --dest=tioga-system tioga rocm=551 compiler=cce ~gtl + ./bin/benchpark setup kripke/rocm ./tioga-system workspace/ . workspace/setup.sh ramble \ - --workspace-dir workspace/kripke/rocm/LLNL-Tioga-HPECray-zen3-MI250X-Slingshot/workspace \ + --workspace-dir workspace/kripke/rocm/Tioga/workspace \ --disable-progress-bar \ --disable-logger \ workspace setup --dry-run diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index 424daef5f..726d183dc 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - name: Set up Python 3.11 - uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 with: python-version: '3.11' cache: 'pip' diff --git a/docs/4-benchpark-setup.rst b/docs/4-benchpark-setup.rst index 270633c67..47ad2a956 100644 --- a/docs/4-benchpark-setup.rst +++ b/docs/4-benchpark-setup.rst @@ -15,7 +15,7 @@ Also choose a directory for your experiment:: where: - ````: amg2023/openmp | amg2023/cuda | saxpy/openmp (available choices in ``benchpark/experiments``) -- ````: nosite-x86_64 | LLNL-Sierra-IBM-power9-V100-Infiniband | RCCS-Fugaku-Fujitsu-A64FX-TofuD | nosite-AWS_PCluster_Hpc7a-zen4-EFA (available choices in :doc:`available-system-specs`) +- ````: use ``benchpark system init``, or a predefined system in :doc:`available-system-specs`) This command will assemble a Ramble workspace per experiment with a configuration for the specified benchmark and system diff --git a/docs/add-a-system-config.rst b/docs/add-a-system-config.rst index 9efa6438b..5a6aacea9 100644 --- a/docs/add-a-system-config.rst +++ b/docs/add-a-system-config.rst @@ -7,9 +7,45 @@ Adding a System Specification ============================= -``benchpark/configs`` contains a directory for each system specified in Benchpark. -If your system is unlike the available configurations, -you can add a new directory with a name which identifies the system. +System specifications include details like + +- How many CPUs are there per node on the system +- What pre-installed MPI/GPU libraries are available + +A system description is a set of YAML files collected into a directory. +You can generate these files directly, but Benchpark also provides an API +where you can represent systems as objects and customize their description +with command line arguments. + +Using System API to Generate a System Description +------------------------------------------------- + +System classes are defined in ``var/sys_repo``; once the class has been +defined, you can invoke ``benchpark system init`` to generate a system +configuration directory that can then be passed to ``benchpark setup``:: + + benchpark system init --dest=tioga-system tioga rocm=551 compiler=cce ~gtl + +where "tioga rocm=551 compiler=cce ~gtl" describes a config for Tioga that +uses ROCm 5.5.1 components, a CCE compiler, and MPI without GTL support. + +If you want to add support for a new system you can add a class definition +for that system in a separate directory in ``var/sys_repo/systems/``. For +example the Tioga system is defined in:: + + $benchpark + ├── var + ├── sys_repo + ├── systems + ├── tioga + ├── system.py + +Static System Configurations +---------------------------- + +``benchpark/configs`` contains a number of static, manually-generated system +definitions. As an alternative to implementing a new ``System`` class, you +can add a new directory with a name which identifies the system. The naming convention for the systems is as following:: diff --git a/modifiers/caliper-mpi/modifier.py b/modifiers/caliper-mpi/modifier.py index 6d48e6983..444a7436b 100644 --- a/modifiers/caliper-mpi/modifier.py +++ b/modifiers/caliper-mpi/modifier.py @@ -21,7 +21,7 @@ class CaliperMpi(CaliperBase): env_var_modification( "CALI_CONFIG", - "spot(output={}, profile.mpi)".format(_cali_datafile), + "spot(output={},profile.mpi,mpi.message.size,mpi.message.count)".format(_cali_datafile), method="set", modes=["mpi"], )