Skip to content

Commit cd0f42e

Browse files
authored
Matching hardware and software stack distinction in the docs (#561)
1 parent d338fe9 commit cd0f42e

File tree

1 file changed

+38
-16
lines changed

1 file changed

+38
-16
lines changed

docs/add-a-system-config.rst

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,17 @@ This guide is intended for those wanting to run a benchmark on a new system,
1111
such as vendors, system administrators, or application developers. It assumes
1212
a system specification does not already exist.
1313

14-
System specifications include details like:
14+
System specifications include two types of information:
1515

16-
- How many CPUs are there per node on the system
17-
- What pre-installed MPI/GPU libraries are available
18-
19-
A system description is a ``system.py`` file, where Benchpark provides the API
20-
where you can represent a systems as an object and customize the description with command line arguments.
16+
- Hardware description (e.g., how many CPU cores the node has)
17+
- Software stack details (e.g., locations of available compilers and libraries)
2118

2219
------------------------------
2320
Identifying a Similar System
2421
------------------------------
2522

26-
The easiest place to start when configuring a new system is to find the closest similar
27-
one that has an existing configuration already. Existing system configurations are listed
28-
in the table in :doc:`system-list`.
23+
To specify a new system, we recommend to identify a system in Benchpark with the most similar
24+
hardware. We list specified Benchpark Systems in the System Specifications Catalogue in :doc:`system-list`.
2925

3026
If you are running on a system with an accelerator, find an existing system with the same accelerator vendor,
3127
and then secondarily, if you can, match the actual accererator.
@@ -43,18 +39,44 @@ match the following processor specs as closely as you can.
4339
For example, if your system has an NVIDIA A100 GPU and an Intel x86 Icelake CPUs, a similar config would share the A100 GPU, and CPU architecture may or may not match.
4440
Or, if I do not have GPUs and instead have SapphireRapids CPUs, the closest match would be another system with x86_64, Xeon Platinum, SapphireRapids.
4541

46-
If there is not an exact match that is okay, steps for customizing are provided below.
42+
If there is not an exact match, you may add a new directory in the `systems/all_system_definitions` where you will describe the hardware on your system. Please name it following the naming convention::
43+
44+
[INTEGRATOR]-MICROARCHITECTURE[-GPU][-NETWORK]
45+
46+
where::
47+
48+
INTEGRATOR = COMPANY[_PRODUCTNAME][...]
49+
50+
MICROARCHITECTURE = CPU Microarchitecture
51+
52+
GPU = GPU Product Name
53+
54+
NETWORK = Network Product Name
55+
56+
Please follow the yaml format from existing system specifications in `systems/all_system_definitions`.
57+
58+
------------------------------
59+
New System software stack definition
60+
------------------------------
61+
``system.py`` in Benchpark provides an API to represent a system software stack as a
62+
command line parameterizable object.
63+
If none of the available software stack specifications match your system,
64+
you may add a new directory in the `systems` directory following the naming convention::
65+
66+
SITE-SYSTEMNAME
67+
68+
where::
69+
70+
SITE = nosite | DATACENTERNAME
4771

48-
-------------------------------------------------
49-
Editing an Existing System to Match
50-
-------------------------------------------------
72+
SYSTEMNAME = the name of the specific system
73+
5174

5275
.. note:
5376
make all these x86 example. Automate the directory structure?
5477
55-
If you want to add support for a new system you can add a class definition
56-
for that system in a separate directory in ``systems/``.
57-
The best way is to copy the system.py for the most similar system identified above, and then paste it in a new directory and update it.
78+
Next, copy the system.py for the most similar system identified above into this new directory,
79+
and update it to match your system.
5880
For example the genericx86 system is defined in::
5981

6082
$benchpark

0 commit comments

Comments
 (0)