Skip to content

Commit

Permalink
Test benchpark system init (#358)
Browse files Browse the repository at this point in the history
* demonstrate integration of 'system init' into 'benchpark setup' workflow

* update ramble workspace dir reference

* docs update for 'system init'

* dir structure

* reorg

* mention possibility of 'benchpark system init' in the 'benchpark setup' docs
  • Loading branch information
scheibelp authored Aug 30, 2024
1 parent ae22659 commit 6146c35
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 6 deletions.
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 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

0 comments on commit 6146c35

Please sign in to comment.