Skip to content

Commit

Permalink
Merge branch 'develop' into features/setup-cmd
Browse files Browse the repository at this point in the history
  • Loading branch information
scheibelp committed Aug 31, 2024
2 parents 9c70879 + cb8cd0a commit 5037e77
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 10 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/license.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/style.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion docs/4-benchpark-setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Also choose a directory for your experiment::
where:

- ``<Benchmark/ProgrammingModel>``: amg2023/openmp | amg2023/cuda | saxpy/openmp (available choices in ``benchpark/experiments``)
- ``<System>``: 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`)
- ``<System>``: 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
Expand Down
42 changes: 39 additions & 3 deletions docs/add-a-system-config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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::

Expand Down
2 changes: 1 addition & 1 deletion modifiers/caliper-mpi/modifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"],
)

0 comments on commit 5037e77

Please sign in to comment.