You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/add-a-system-config.rst
+38-16Lines changed: 38 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,21 +11,17 @@ This guide is intended for those wanting to run a benchmark on a new system,
11
11
such as vendors, system administrators, or application developers. It assumes
12
12
a system specification does not already exist.
13
13
14
-
System specifications include details like:
14
+
System specifications include two types of information:
15
15
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)
21
18
22
19
------------------------------
23
20
Identifying a Similar System
24
21
------------------------------
25
22
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`.
29
25
30
26
If you are running on a system with an accelerator, find an existing system with the same accelerator vendor,
31
27
and then secondarily, if you can, match the actual accererator.
@@ -43,18 +39,44 @@ match the following processor specs as closely as you can.
43
39
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.
44
40
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.
45
41
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
47
71
48
-
-------------------------------------------------
49
-
Editing an Existing System to Match
50
-
-------------------------------------------------
72
+
SYSTEMNAME = the name of the specific system
73
+
51
74
52
75
.. note:
53
76
make all these x86 example. Automate the directory structure?
54
77
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,
0 commit comments