From a4613edf9e7310910d5d1240a0628e3740fdeaf6 Mon Sep 17 00:00:00 2001 From: Sriram Swaminarayan Date: Tue, 2 Sep 2025 11:51:18 -0600 Subject: [PATCH 1/2] First cut at LANL-Rocinante (CTS2) configuration. --- .../hardware_description.yaml | 32 +++ systems/lanl-rocinante/system.py | 220 ++++++++++++++++++ 2 files changed, 252 insertions(+) create mode 100644 systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml create mode 100644 systems/lanl-rocinante/system.py diff --git a/systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml b/systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml new file mode 100644 index 000000000..70aea38b9 --- /dev/null +++ b/systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml @@ -0,0 +1,32 @@ +# Copyright 2023 Lawrence Livermore National Security, LLC and other +# Benchpark Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: Apache-2.0 +system_definition: + name: HPECray-sapphirerapids-Slingshot + integrator: + vendor: HPECray + name: + processor: + vendor: Intel + name: XeonPlatinum8480+ + ISA: x86_64 + uArch: sapphirerapids + accelerator: + vendor: + name: + ISA: + uArch: + interconnect: + vendor: HPECray + name: Slingshot11 + systems-tested: + lanl-rocinante-oneapi: + os: HPECrayOS + scheduler: slurm + compiler: oneapi + runtime: + mpi: cray-mpich + installation-year: 2022 + top500-system-instances: + diff --git a/systems/lanl-rocinante/system.py b/systems/lanl-rocinante/system.py new file mode 100644 index 000000000..242fede04 --- /dev/null +++ b/systems/lanl-rocinante/system.py @@ -0,0 +1,220 @@ +# Copyright 2023 Lawrence Livermore National Security, LLC and other +# Benchpark Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: Apache-2.0 + + +from benchpark.directives import variant, maintainers +from benchpark.system import System, JobQueue +from benchpark.openmpsystem import OpenMPCPUOnlySystem +from benchpark.paths import hardware_descriptions + + +class LanlCTS2(System): + + maintainers("sriram") + + id_to_resources = { + "rocinante": { + "sys_cores_per_node": 112, + "sys_cores_os_reserved_per_node": 0, # No core or thread reservation + "sys_cores_os_reserved_per_node_list": None, + "system_site": "lanl", + "hardware_key": str(hardware_descriptions) + + "HPECray-sapphirerapids-Slingshot/hardware_description.yaml", + }, + } + + variant( + "cluster", + default="rocinante", + values=("rocinante", "tycho", "crossroads"), + description="Which cluster to run on", + ) + + variant( + "compiler", + default="oneapi", + values=("oneapi"), + description="Which compiler to use", + ) + + variant( + "queue", + default="dev", + values=("standard", "dev", "debug"), + multi=False, + description="Submit to queue other than the default queue (e.g. dev)", + ) + + def __init__(self, spec): + super().__init__(spec) + self.programming_models = [OpenMPCPUOnlySystem()] + + self.scheduler = "slurm" + attrs = self.id_to_resources.get(self.spec.variants["cluster"][0]) + for k, v in attrs.items(): + setattr(self, k, v) + + def compute_packages_section(self): + selections = { + "packages": { + "elfutils": { + "externals": [{"spec": "elfutils@0.185", "prefix": "/usr"}], + "buildable": False, + }, + "papi": { + "buildable": False, + "externals": [ + { + "spec": "papi@7.0.1.2", + "prefix": "/cpe/23.12/papi/7.0.1.2", + } + ], + }, + "unwind": { + "externals": [{"spec": "unwind@8.0.1", "prefix": "/usr"}], + "buildable": False, + }, + "blas": { + "buildable": False, + "externals": [ + { + "spec": "intel-oneapi-mkl@2023.2.0", + "prefix": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/mkl/2023.2.0" + } + ], + }, + "lapack": { + "buildable": False, + "externals": [ + { + "spec": "intel-oneapi-mkl@2023.2.0", + "prefix": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/mkl/2023.2.0" + } + ], + }, + "fftw": { + "buildable": False, + "externals": [ + { + "spec": "fftw@3.3.10.6", + "prefix": "/cpe/23.12/fftw/3.3.10.6/x86_spr" + } + ], + }, + "diffutils": { + "externals": [{"spec": "diffutils@3.6", "prefix": "/usr"}], + "buildable": False, + }, + "cmake": { + "externals": [ + {"spec": "cmake@3.20.4", "prefix": "/usr"}, + {"spec": "cmake@3.29.6", "prefix": "/usr/projects/hpcsoft/tce/23.12/cos3-x86_64/packages/cmake/cmake-3.29.6"}, + ], + "buildable": False, + }, + "tar": { + "externals": [{"spec": "tar@1.34", "prefix": "/usr"}], + "buildable": False, + }, + "autoconf": { + "externals": [{"spec": "autoconf@2.69", "prefix": "/usr"}], + "buildable": False, + }, + "python": { + "externals": [ + { + "spec": "python@3.6.15", + "prefix": "/usr", + }, + { + "spec": "python@3.11.5", + "prefix": "/cpe/23.12/python/3.11.5", + }, + ], + "buildable": False, + }, + "hwloc": { + "externals": [ + {"spec": "hwloc@2.9.0", "prefix": "/usr"}, + {"spec": "hwloc@2.12.2", "prefix": "/users/sriram/software/hwloc-i23-mpich8"} + ], + "buildable": False, + }, + "gmake": { + "externals": [{"spec": "gmake@4.2.1", "prefix": "/usr"}], + "buildable": False, + }, + } + } + + if self.spec.satisfies("compiler=oneapi"): + selections |= { + "packages": selections["packages"] + | { + "mpi": { + "buildable": False, + "externals": [ + { + "spec": "cray-mpich@8.1.28" + "prefix": "/cpe/23.12/mpich/8.1.28/ofi/intel/2022.1" + "extra_attributes": { + "ldflags": "-L/cpe/23.12/mpich/8.1.28/ofi/intel/2022.1/lib -lmpi" + }, + } + ], + } + } + } + + selections["packages"] |= self.compiler_weighting_cfg()["packages"] + + return selections + + def compiler_weighting_cfg(self): + if self.spec.satisfies("compiler=oneapi"): + return {"packages": {"all": {"require": [{"one_of": ["%oneapi"]}]}}} + else: + return {"packages": {}} + + def compute_compilers_section(self): + selections = {} + if self.spec.satisfies("compiler=oneapi"): + selections = { + "compilers": [ + { + "compiler": { + "spec": "gcc@12.1.1", + "paths": { + "cxx": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/compiler/2023.2.0/linux/bin/icpx", + "cc": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/compiler/2023.2.0/linux/bin/icx", + "f77": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/compiler/2023.2.0/linux/bin/ifx", + "fc": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/compiler/2023.2.0/linux/bin/ifx", + }, + "flags": {}, + "operating_system": "sles15", + "target": "x86_64", + "modules": [], + "environment": {}, + "extra_rpaths": [], + } + }, + ] + } + + return selections + + def compute_software_section(self): + return { + "software": { + "packages": { + "default-compiler": {"pkg_spec": self.spec.variants["compiler"][0]}, + "default-mpi": {"pkg_spec": "cray-mpich"}, + "compiler-oneapi": {"pkg_spec": "oneapi"}, + "blas": {"pkg_spec": "intel-oneapi-mkl"}, + "lapack": {"pkg_spec": "intel-oneapi-mkl"}, + "mpi-intel": {"pkg_spec": "cray-mpich"}, + } + } + } From c16e116e4e34d6a52e73af3b3de4856ab4843e4f Mon Sep 17 00:00:00 2001 From: Sriram Swaminarayan Date: Tue, 2 Sep 2025 14:44:13 -0600 Subject: [PATCH 2/2] Added gcc as compiler and renamed class to LanlRocinante --- .../hardware_description.yaml | 3 +- systems/lanl-rocinante/system.py | 44 +++++++++++++------ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml b/systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml index 70aea38b9..24ef004da 100644 --- a/systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml +++ b/systems/all_hardware_descriptions/HPECray-sapphirerapids-Slingshot/hardware_description.yaml @@ -21,12 +21,11 @@ system_definition: vendor: HPECray name: Slingshot11 systems-tested: - lanl-rocinante-oneapi: + lanl-rocinante: os: HPECrayOS scheduler: slurm compiler: oneapi runtime: mpi: cray-mpich installation-year: 2022 - top500-system-instances: diff --git a/systems/lanl-rocinante/system.py b/systems/lanl-rocinante/system.py index 242fede04..2622d1588 100644 --- a/systems/lanl-rocinante/system.py +++ b/systems/lanl-rocinante/system.py @@ -10,7 +10,7 @@ from benchpark.paths import hardware_descriptions -class LanlCTS2(System): +class LanlRocinante(System): maintainers("sriram") @@ -35,16 +35,16 @@ class LanlCTS2(System): variant( "compiler", default="oneapi", - values=("oneapi"), + values=("oneapi", "gcc"), description="Which compiler to use", ) variant( - "queue", - default="dev", - values=("standard", "dev", "debug"), + "queues", + default="standard", + values=("standard", "hbm", "debug"), multi=False, - description="Submit to queue other than the default queue (e.g. dev)", + description="Submit to queue other than the default queue (e.g. hbm)", ) def __init__(self, spec): @@ -157,8 +157,8 @@ def compute_packages_section(self): "buildable": False, "externals": [ { - "spec": "cray-mpich@8.1.28" - "prefix": "/cpe/23.12/mpich/8.1.28/ofi/intel/2022.1" + "spec": "cray-mpich@8.1.28", + "prefix": "/cpe/23.12/mpich/8.1.28/ofi/intel/2022.1", "extra_attributes": { "ldflags": "-L/cpe/23.12/mpich/8.1.28/ofi/intel/2022.1/lib -lmpi" }, @@ -179,13 +179,32 @@ def compiler_weighting_cfg(self): return {"packages": {}} def compute_compilers_section(self): - selections = {} + selections = { + "compilers": [ + { + "compiler": { + "spec": "gcc@12.3.0", + "paths": { + "cc": "/usr/projects/hpcsoft/tce/23.12/cos3-x86_64/compilers/gcc/12.3.0/bin/gcc", + "cxx": "/usr/projects/hpcsoft/tce/23.12/cos3-x86_64/compilers/gcc/12.3.0/bin/g++", + "f77": "/usr/projects/hpcsoft/tce/23.12/cos3-x86_64/compilers/gcc/12.3.0/bin/gfortran", + "fc": "/usr/projects/hpcsoft/tce/23.12/cos3-x86_64/compilers/gcc/12.3.0/bin/gfortran", + }, + "flags": {}, + "operating_system": "sles15", + "target": "x86_64", + "modules": [], + "environment": {}, + "extra_rpaths": [], + } + } + ] + } if self.spec.satisfies("compiler=oneapi"): - selections = { - "compilers": [ + selections["compilers"] += [ { "compiler": { - "spec": "gcc@12.1.1", + "spec": "oneapi@2023.2.0", "paths": { "cxx": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/compiler/2023.2.0/linux/bin/icpx", "cc": "/usr/projects/hpcsoft/pe/installs/cos3-x86_64/oneapi/2023.2.0.49397/compiler/2023.2.0/linux/bin/icx", @@ -201,7 +220,6 @@ def compute_compilers_section(self): } }, ] - } return selections