From 43539af972f757a5653bd1e5b6b48781930f7315 Mon Sep 17 00:00:00 2001 From: Peter Josef Scheibel Date: Fri, 25 Jul 2025 17:37:59 -0700 Subject: [PATCH 01/75] elcap definition: also adding some convenience methods - partial --- checkout-versions.yaml | 2 +- systems/llnl-elcapitan/system.py | 158 +++++++++++++++---------------- 2 files changed, 78 insertions(+), 82 deletions(-) diff --git a/checkout-versions.yaml b/checkout-versions.yaml index 851198578..5c05ab7b0 100644 --- a/checkout-versions.yaml +++ b/checkout-versions.yaml @@ -4,4 +4,4 @@ # SPDX-License-Identifier: Apache-2.0 versions: ramble: 6b4ecac # develop on 5/06/2025 (newer than 0.6.0 release) - spack: 7e4b8aa # develop on 2/22/2025 (pre-breaking changes on 1.0) + spack: 7eeef1f diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 608a288ac..e0ac7c846 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -312,37 +312,50 @@ def compiler_weighting_cfg(self): raise ValueError(f"Unexpected value for compiler: {compiler}") def compute_compilers_section(self): - selections = { - "compilers": [ - { - "compiler": { - "spec": "gcc@12.2.0", - "paths": { - "cc": "/opt/cray/pe/gcc/12.2.0/bin/gcc", - "cxx": "/opt/cray/pe/gcc/12.2.0/bin/g++", - "f77": "/opt/cray/pe/gcc/12.2.0/bin/gfortran", - "fc": "/opt/cray/pe/gcc/12.2.0/bin/gfortran", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + selections = compiler_section_for( + "gcc", + [compiler_def("gcc@12.2.0", "/opt/cray/pe/gcc/12.2.0/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"})] + ) + if self.spec.satisfies("compiler=cce") or self.spec.satisfies( "compiler=rocmcc" ): selections["compilers"] += self.rocm_cce_compiler_cfg()["compilers"] - # Note: this is always included for some low-level dependencies - # that shouldn't build with %cce return selections + def compiler_section_for(name, entries): + return { + "packages": { + name: { + "externals": entries + } + } + } + + def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None): + lang_map = {} + for lang, exe in exes.items(): + if os.path.isabs(exe): + lang_map[lang] = exe + else: + lang_map[lang] = os.path.join(prefix, "bin", exe) + entry = { + "spec": spec, + "prefix": prefix, + "extra_attributes": { + "compilers" lang_map + } + } + if env: + entry["environment"] = env + if extra_rpaths: + entry["extra_rpaths"] = extra_rpaths + if modules: + entry["modules"] = modules + return entry + def mpi_config(self): gtl = self.spec.variants["gtl"][0] @@ -636,68 +649,51 @@ def rocm_cce_compiler_cfg(self): if self.spec.variants["cluster"][0] == "tioga": rpaths.append(f"/opt/cray/pe/cce/{self.cce_version}/cce-clang/x86_64/lib/") + compilers = list() if self.spec.satisfies("compiler=rocmcc"): - return { - "compilers": [ - { - "compiler": { - "spec": f"rocmcc@{self.rocm_version}", - "paths": { - "cc": f"/opt/rocm-{self.rocm_version}/bin/amdclang", - "cxx": f"/opt/rocm-{self.rocm_version}/bin/amdclang++", - "f77": f"/opt/rocm-{self.rocm_version}/bin/amdflang", - "fc": f"/opt/rocm-{self.rocm_version}/bin/amdflang", - }, - "flags": {"cflags": "-g -O2", "cxxflags": "-g -O2"}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [f"cce/{self.cce_version}"], - "environment": { - "set": {"RFE_811452_DISABLE": "1"}, - "append_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs" - }, - "prepend_path": { - "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", - "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", - }, - }, - "extra_rpaths": rpaths, - } - } - ] - } + compilers.sppend(( + "llvm-amdgpu", + compiler_def( + f"rocmcc@{self.rocm_version}", + f"/opt/rocm-{self.rocm_version}/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} + modules=[f"cce/{self.cce_version}"], + flags={"cflags": "-g -O2", "cxxflags": "-g -O2"}, + extra_rpaths=rpaths, + env={ + "set": {"RFE_811452_DISABLE": "1"}, + "append_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs" + }, + "prepend_path": { + "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", + "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", + }, + }, + ) + )) else: - return { - "compilers": [ - { - "compiler": { - "spec": f"cce@{self.cce_version}-rocm{self.rocm_version}", - "paths": { - "cc": f"/opt/cray/pe/cce/{self.cce_version}/bin/craycc", - "cxx": f"/opt/cray/pe/cce/{self.cce_version}/bin/crayCC", - "f77": f"/opt/cray/pe/cce/{self.cce_version}/bin/crayftn", - "fc": f"/opt/cray/pe/cce/{self.cce_version}/bin/crayftn", - }, - "flags": { - "cflags": "-g -O2", - "cxxflags": "-g -O2 -std=c++14", - "fflags": "-g -O2 -hnopattern", - "ldflags": "-ldl", - }, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [f"cce/{self.cce_version}"], - "environment": { - "prepend_path": { - "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" - } - }, - "extra_rpaths": rpaths, + compilers.append(( + "cce", + compiler_def( + f"cce@{self.cce_version}-rocm{self.rocm_version}", + f"/opt/cray/pe/cce/{self.cce_version}/", + {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"} + modules=[f"cce/{self.cce_version}"], + extra_rpaths=rpaths, + env={ + "prepend_path": { + "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" } + }, + flags={ + "cflags": "-g -O2", + "cxxflags": "-g -O2 -std=c++14", + "fflags": "-g -O2 -hnopattern", + "ldflags": "-ldl", } - ] - } + ) + )) def system_specific_variables(self): opts = super().system_specific_variables() From 138657c0412fd5677262b37011d82496b34989fd Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 25 Jul 2025 18:04:28 -0700 Subject: [PATCH 02/75] refactors and bug fixes --- lib/benchpark/system.py | 51 ++++++++++--- systems/llnl-elcapitan/system.py | 123 ++++++++++++------------------- 2 files changed, 88 insertions(+), 86 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index 09b98cdbd..835a88f33 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -144,20 +144,18 @@ def compute_software_section(self): def compute_dict(self): # This can be overridden by any subclass that needs more flexibility - compilers = self.compute_compilers_section() + pkg_cfg = self.compute_packages_section() or {} + compiler_cfg = self.compute_compilers_section() + if compiler_cfg: + pkg_cfg["packages"].update(compiler_cfg["packages"]) return { "system_id": self.compute_system_id(), "variables": self.compute_variables_section(), "software": self.compute_software_section(), "auxiliary_software_files": { - "compilers": ( - # "'compilers:':" syntax is required to enforce spack to use benchpark-defined - # compilers instead of external compilers defined by spack compiler search (from ramble). - {"compilers:": compilers["compilers"]} - if compilers - else None - ), - "packages": self.compute_packages_section(), + # "'packages:':" syntax is required to enforce spack to use benchpark-defined + # compilers instead of external compilers defined by spack compiler search (from ramble). + "packages:": pkg_cfg["packages"], }, } @@ -174,3 +172,38 @@ def _write_key_file(destdir, key, sys_dict): _write_key_file(destdir + "/" + key, k, system_dict[key]) else: _write_key_file(destdir, key, system_dict) + + +def compiler_section_for(name, entries): + return { + "packages": { + name: { + "externals": entries + } + } + } + + +def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None, flags=None): + lang_map = {} + for lang, exe in exes.items(): + if os.path.isabs(exe): + lang_map[lang] = exe + else: + lang_map[lang] = os.path.join(prefix, "bin", exe) + entry = { + "spec": spec, + "prefix": prefix, + "extra_attributes": { + "compilers": lang_map + } + } + if env: + entry["environment"] = env + if extra_rpaths: + entry["extra_rpaths"] = extra_rpaths + if modules: + entry["modules"] = modules + if flags: + entry["flags"] = flags + return entry \ No newline at end of file diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index e0ac7c846..e1f9af988 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -7,7 +7,7 @@ from benchpark.directives import variant, maintainers from benchpark.paths import hardware_descriptions from benchpark.rocmsystem import ROCmSystem -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for from packaging.version import Version @@ -312,49 +312,21 @@ def compiler_weighting_cfg(self): raise ValueError(f"Unexpected value for compiler: {compiler}") def compute_compilers_section(self): - selections = compiler_section_for( + cfg = compiler_section_for( "gcc", - [compiler_def("gcc@12.2.0", "/opt/cray/pe/gcc/12.2.0/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"})] + [compiler_def( + "gcc@12.2.0", + "/opt/cray/pe/gcc/12.2.0/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} + )] ) if self.spec.satisfies("compiler=cce") or self.spec.satisfies( "compiler=rocmcc" ): - selections["compilers"] += self.rocm_cce_compiler_cfg()["compilers"] + cfg["packages"].update(self.rocm_cce_compiler_cfg()["packages"]) - - return selections - - def compiler_section_for(name, entries): - return { - "packages": { - name: { - "externals": entries - } - } - } - - def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None): - lang_map = {} - for lang, exe in exes.items(): - if os.path.isabs(exe): - lang_map[lang] = exe - else: - lang_map[lang] = os.path.join(prefix, "bin", exe) - entry = { - "spec": spec, - "prefix": prefix, - "extra_attributes": { - "compilers" lang_map - } - } - if env: - entry["environment"] = env - if extra_rpaths: - entry["extra_rpaths"] = extra_rpaths - if modules: - entry["modules"] = modules - return entry + return cfg def mpi_config(self): gtl = self.spec.variants["gtl"][0] @@ -651,49 +623,46 @@ def rocm_cce_compiler_cfg(self): compilers = list() if self.spec.satisfies("compiler=rocmcc"): - compilers.sppend(( - "llvm-amdgpu", - compiler_def( - f"rocmcc@{self.rocm_version}", - f"/opt/rocm-{self.rocm_version}/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} - modules=[f"cce/{self.cce_version}"], - flags={"cflags": "-g -O2", "cxxflags": "-g -O2"}, - extra_rpaths=rpaths, - env={ - "set": {"RFE_811452_DISABLE": "1"}, - "append_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs" - }, - "prepend_path": { - "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", - "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", - }, + entry = compiler_def( + f"rocmcc@{self.rocm_version}", + f"/opt/rocm-{self.rocm_version}/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + modules=[f"cce/{self.cce_version}"], + flags={"cflags": "-g -O2", "cxxflags": "-g -O2"}, + extra_rpaths=rpaths, + env={ + "set": {"RFE_811452_DISABLE": "1"}, + "append_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs" }, - ) - )) - else: - compilers.append(( - "cce", - compiler_def( - f"cce@{self.cce_version}-rocm{self.rocm_version}", - f"/opt/cray/pe/cce/{self.cce_version}/", - {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"} - modules=[f"cce/{self.cce_version}"], - extra_rpaths=rpaths, - env={ - "prepend_path": { - "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" - } + "prepend_path": { + "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", + "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", }, - flags={ - "cflags": "-g -O2", - "cxxflags": "-g -O2 -std=c++14", - "fflags": "-g -O2 -hnopattern", - "ldflags": "-ldl", + }, + ) + return compiler_section_for("llvm-amdgpu", [entry]) + else: + entry = compiler_def( + f"cce@{self.cce_version}-rocm{self.rocm_version}", + f"/opt/cray/pe/cce/{self.cce_version}/", + {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, + modules=[f"cce/{self.cce_version}"], + extra_rpaths=rpaths, + env={ + "prepend_path": { + "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" } - ) - )) + }, + flags={ + "cflags": "-g -O2", + "cxxflags": "-g -O2 -std=c++14", + "fflags": "-g -O2 -hnopattern", + "ldflags": "-ldl", + } + ) + return compiler_section_for("cce", [entry]) + def system_specific_variables(self): opts = super().system_specific_variables() From 810964386207b4b8c5879ad2517385435770c6e1 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 25 Jul 2025 18:20:22 -0700 Subject: [PATCH 03/75] messed up with top-level config arrangement --- lib/benchpark/system.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index 835a88f33..f111b17f2 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -148,14 +148,15 @@ def compute_dict(self): compiler_cfg = self.compute_compilers_section() if compiler_cfg: pkg_cfg["packages"].update(compiler_cfg["packages"]) + # "'packages:':" syntax is required to enforce spack to use benchpark-defined + # compilers instead of external compilers defined by spack compiler search (from ramble). + pkg_cfg = {"packages:": pkg_cfg["packages"]} return { "system_id": self.compute_system_id(), "variables": self.compute_variables_section(), "software": self.compute_software_section(), "auxiliary_software_files": { - # "'packages:':" syntax is required to enforce spack to use benchpark-defined - # compilers instead of external compilers defined by spack compiler search (from ramble). - "packages:": pkg_cfg["packages"], + "packages": pkg_cfg, }, } From 958139202b307e9883b82dd58f75ba992b42ce30 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 1 Aug 2025 10:29:50 -0700 Subject: [PATCH 04/75] env/rpaths/flags go under extra_attributes --- lib/benchpark/system.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index f111b17f2..f53ffbcf5 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -200,11 +200,11 @@ def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None, } } if env: - entry["environment"] = env + entry["extra_attributes"]["environment"] = env if extra_rpaths: - entry["extra_rpaths"] = extra_rpaths + entry["extra_attributes"]["extra_rpaths"] = extra_rpaths if modules: entry["modules"] = modules if flags: - entry["flags"] = flags + entry["extra_attributes"]["flags"] = flags return entry \ No newline at end of file From 7b0b2f98c874e7d9e7fabcc150671cc7bd771633 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 1 Aug 2025 10:46:03 -0700 Subject: [PATCH 05/75] llnl-cluster update --- systems/llnl-cluster/system.py | 119 ++++++++++----------------------- 1 file changed, 36 insertions(+), 83 deletions(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index eec50708b..ee4df9feb 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -5,7 +5,7 @@ from benchpark.directives import variant, maintainers -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for from benchpark.openmpsystem import OpenMPSystem from benchpark.paths import hardware_descriptions @@ -226,92 +226,45 @@ def compiler_weighting_cfg(self): return {"packages": {}} def compute_compilers_section(self): - selections = {} if self.spec.satisfies("compiler=gcc"): - selections = { - "compilers": [ - { - "compiler": { - "spec": "gcc@12.1.1", - "paths": { - "cc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gcc", - "cxx": "/usr/tce/packages/gcc/gcc-12.1.1/bin/g++", - "f77": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - "fc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + cfg = compiler_section_for( + "gcc", + [compiler_def( + "gcc@12.1.1", + "/usr/tce/packages/gcc/gcc-12.1.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} + )] + ) elif self.spec.satisfies("compiler=intel"): - selections = { - "compilers": [ - { - "compiler": { - "spec": "intel@2021.6.0-classic", - "paths": { - "cc": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/icc", - "cxx": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/icpc", - "f77": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/ifort", - "fc": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/ifort", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + cfg = compiler_section_for( + "intel-oneapi-compilers-classic", + [compiler_def( + "intel-oneapi-compilers-classic@2021.6.0~envmods", + "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/", + {"c": "icc", "cxx": "icpc", "fortran": "ifort"} + )] + ) elif self.spec.satisfies("compiler=oneapi"): - selections = { - "compilers": [ - { - "compiler": { - "spec": "gcc@12.1.1", - "paths": { - "cc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gcc", - "cxx": "/usr/tce/packages/gcc/gcc-12.1.1/bin/g++", - "f77": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - "fc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - }, - { - "compiler": { - "spec": "oneapi@2023.2.1", - "paths": { - "cc": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/icx", - "cxx": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/icpx", - "f77": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/ifx", - "fc": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/ifx", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - }, - ] - } + cfg1 = compiler_section_for( + "gcc", + [compiler_def( + "gcc@12.1.1", + "/usr/tce/packages/gcc/gcc-12.1.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} + )] + ) + cfg2 = compiler_section_for( + "intel-oneapi-compilers", + [compiler_def( + "intel-oneapi-compilers@2023.2.1~envmods", + "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/", + {"c": "icx", "cxx": "icpx", "fortran": "ifx"} + )] + ) + cfg = cfg1 + cfg["packages"].update(cfg2["packages"]) - return selections + return cfg def compute_software_section(self): return { From 0a99bfc5dd3e8ab9a89f0b7e3550b748f8528557 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 1 Aug 2025 13:17:24 -0700 Subject: [PATCH 06/75] llnl-sierra update (partial) --- systems/llnl-sierra/system.py | 234 ++++++++++++++-------------------- 1 file changed, 94 insertions(+), 140 deletions(-) diff --git a/systems/llnl-sierra/system.py b/systems/llnl-sierra/system.py index 972502f4c..9af0d0d84 100644 --- a/systems/llnl-sierra/system.py +++ b/systems/llnl-sierra/system.py @@ -6,7 +6,7 @@ from benchpark.directives import variant, maintainers from benchpark.cudasystem import CudaSystem from benchpark.paths import hardware_descriptions -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for from packaging.version import Version @@ -413,150 +413,104 @@ def compute_packages_section(self): def compute_compilers_section(self): # values=("clang-ibm", "xl", "xl-gcc", "clang"), + compiler = self.spec.variants["compiler"][0] # values=("11-8-0", "10-1-243"), - compiler_cfgs = { - ( - "clang-ibm", - "11-8-0", - ): [ - { - "compiler": { - "spec": "clang@16.0.6-ibm-cuda-11.8.0-gcc-11.2.1", - "paths": { - "cc": "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/bin/clang", - "cxx": "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/bin/clang++", - "f77": "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/bin/xlf_r", - "fc": "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/bin/xlf_r", - }, - "flags": { - "cflags": "-g -O2", - "cxxflags": "-g -O2", - "fflags": "-g -O2", - }, - "operating_system": "rhel7", - "target": "ppc64le", - "modules": [ - "cuda/11.8.0", - "clang/ibm-16.0.6-cuda-11.8.0-gcc-11.2.1", - ], - "environment": {}, - "extra_rpaths": [], - } - } - ], - ( - "xl-gcc", - "11-8-0", - ): [ - { - "compiler": { - "spec": "xl@16.1.1-2023.06.28-cuda-11.8.0-gcc-11.2.1", - "paths": { - "cc": "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/bin/xlc", - "cxx": "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/bin/xlC", - "f77": "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/bin/xlf", - "fc": "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/bin/xlf", - }, - "flags": { - "cflags": "-g -O2", - "cxxflags": "-g -O2", - "fflags": "-g -O2", - }, - "operating_system": "rhel7", - "target": "ppc64le", - "modules": [ - "cuda/11.8.0", - "xl/2023.06.28-cuda-11.8.0-gcc-11.2.1", - ], - "environment": {}, - "extra_rpaths": [], - } - } - ], - ( + cuda_ver = self.spec.variants["cuda"][0].replace(".", "-") + + cuda_module_map = { + "11-8-0": ["cuda/11.8.0"], + "10-1-243": ["cuda/10.1.243"], + } + cuda_modules = cuda_module_map[cuda_ver] + + flags = { + "cflags": "-g -O2", + "cxxflags": "-g -O2", + "fflags": "-g -O2", + } + + if (compiler, cuda_ver) == ("clang-ibm", "11-8-0"): + cfg1 = compiler_section_for( + "clang", + [compiler_def( + "clang@16.0.6", + "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", + {"c": "clang", "cxx": "clang++"}, + flags=flags, + modules=cuda_modules + ["clang/ibm-16.0.6-cuda-11.8.0-gcc-11.2.1"], + )] + ) + cfg2 = compiler_section_for( "xl", - "10-1-243", - ): [ - { - "compiler": { - "spec": "xl@16.1.1-2022.08.19-cuda10.1.243", - "paths": { - "cc": "/usr/tce/packages/xl/xl-2022.08.19/bin/xlc", - "cxx": "/usr/tce/packages/xl/xl-2022.08.19/bin/xlC", - "f77": "/usr/tce/packages/xl/xl-2022.08.19/bin/xlf", - "fc": "/usr/tce/packages/xl/xl-2022.08.19/bin/xlf", - }, - "flags": { - "cflags": "-g -O2", - "cxxflags": "-g -O2", - "fflags": "-g -O2", - }, - "operating_system": "rhel7", - "target": "ppc64le", - "modules": ["cuda/10.1.243", "xl/2022.08.19"], - "environment": {}, - "extra_rpaths": [], - } - } - ], - ( + [compiler_def( + "xl@2023.06.28", + "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + )] + ) + elif (compiler, cuda_ver) == ("xl-gcc", "11-8-0"): + cfg = compiler_section_for( "xl", - "11-8-0", - ): [ - { - "compiler": { - "spec": "xl@16.1.1-2022.08.19-cuda11.8.0", - "paths": { - "cc": "/usr/tce/packages/xl/xl-2022.08.19-cuda-11.8.0/bin/xlc", - "cxx": "/usr/tce/packages/xl/xl-2022.08.19-cuda-11.8.0/bin/xlC", - "f77": "/usr/tce/packages/xl/xl-2022.08.19-cuda-11.8.0/bin/xlf", - "fc": "/usr/tce/packages/xl/xl-2022.08.19-cuda-11.8.0/bin/xlf", - }, - "flags": { - "cflags": "-g -O2", - "cxxflags": "-g -O2", - "fflags": "-g -O2", - }, - "operating_system": "rhel7", - "target": "ppc64le", - "modules": ["cuda/11.8.0", "xl/2022.08.19-cuda-11.8.0"], - "environment": {}, - "extra_rpaths": [], - } - } - ], - ( + [compiler_def( + "xl@2023.06.28", + "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + modules=cuda_modules + ["xl/2023.06.28-cuda-11.8.0-gcc-11.2.1"], + )] + ) + elif (compiler, cuda_ver) == ("xl", "10-1-243"): + cfg = compiler_section_for( + "xl", + [compiler_def( + "xl@16.1.1-2022.08.19-cuda10.1.243", + "/usr/tce/packages/xl/xl-2022.08.19/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + modules=cuda_modules + ["xl/2022.08.19"], + )] + ) + elif (compiler, cuda_ver) == ("xl", "11-8-0"): + cfg = compiler_section_for( + "xl", + [compiler_def( + "xl@16.1.1-2022.08.19-cuda11.8.0", + "/usr/tce/packages/xl/xl-2022.08.19-cuda-11.8.0/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + modules=cuda_modules + ["xl/2022.08.19-cuda-11.8.0"], + )] + ) + elif (compiler, cuda_ver) == ("clang", "11-8-0"): + custom_flags = { + "cflags": "-g -O2", + "cxxflags": "-g -O2", + } + cfg1 = compiler_section_for( "clang", - "11-8-0", - ): [ - { - "compiler": { - "spec": "clang@16.0.6-cuda11.8.0", - "paths": { - "cc": "/usr/tce/packages/clang/clang-16.0.6-cuda-11.8.0-gcc-11.2.1/bin/clang", - "cxx": "/usr/tce/packages/clang/clang-16.0.6-cuda-11.8.0-gcc-11.2.1/bin/clang++", - "f77": "/usr/tce/packages/gcc/gcc-11.2.1/bin/gfortran", - "fc": "/usr/tce/packages/gcc/gcc-11.2.1/bin/gfortran", - }, - "flags": { - "cflags": "-g -O2", - "cxxflags": "-g -O2", - "fflags": "", - }, - "operating_system": "rhel7", - "target": "ppc64le", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ], - } + [compiler_def( + "clang@16.0.6", + "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", + {"c": "clang", "cxx": "clang++"}, + flags=custom_flags, + )] + ) + cfg2 = compiler_section_for( + "gcc", + [compiler_def( + "gcc-11.2.1 languages:=c,c++,fortran", + "/usr/tce/packages/gcc/gcc-11.2.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + flags=custom_flags, + )] + ) - compiler = self.spec.variants["compiler"][0] - cuda_ver = self.spec.variants["cuda"][0].replace(".", "-") - cfg = compiler_cfgs[(compiler, cuda_ver)] - return {"compilers": cfg} + # fortran: + # require: [xl] + # c: + # require: [clang] + return cfg def compute_software_section(self): """This is somewhat vestigial: for the Tioga config that is committed From 40cc227c5611f2421e447389c1316835d40a5be8 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 1 Aug 2025 17:53:57 -0700 Subject: [PATCH 07/75] create helper function for hybrid compiler requirements --- lib/benchpark/system.py | 46 +++++++++++++++++++++++++++++++++++ systems/llnl-sierra/system.py | 8 +++--- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index f53ffbcf5..e1431041c 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -175,6 +175,52 @@ def _write_key_file(destdir, key, sys_dict): _write_key_file(destdir, key, system_dict) +def merge_dicts(*dicts): + current = {} + for d in dicts: + if not d: + continue + current = _merge_dicts(current, d) + return current + + +def _merge_dicts(d1, d2): + result = dict(d1) + for k, v2 in d2.items(): + if k in result: + v1 = result[k] + if all(isinstance(x, dict) for x in (v1, v2)): + result[k] = merge_dicts(v1, v2) + else: + raise Exception("Bad merge: dict w/non-dict") + else: + result[k] = v2 + return result + + +def hybrid_compiler_requirements(c_cmp, f_cmp): + return { + "packages": { + "all": { + "require": [ + { + "spec": rf"%[virtuals=c] {c_cmp}", + "when": r"%c", + }, + { + "spec": rf"%[virtuals=cxx] {c_cmp}", + "when": r"%cxx" + }, + { + "spec": rf"^[virtuals=fortran] {f_cmp}", + "when": r"^fortran" + } + ] + } + } + } + + def compiler_section_for(name, entries): return { "packages": { diff --git a/systems/llnl-sierra/system.py b/systems/llnl-sierra/system.py index 9af0d0d84..dc0765660 100644 --- a/systems/llnl-sierra/system.py +++ b/systems/llnl-sierra/system.py @@ -6,7 +6,7 @@ from benchpark.directives import variant, maintainers from benchpark.cudasystem import CudaSystem from benchpark.paths import hardware_descriptions -from benchpark.system import System, compiler_def, compiler_section_for +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts, hybrid_compiler_requirements from packaging.version import Version @@ -449,6 +449,7 @@ def compute_compilers_section(self): flags=flags, )] ) + cfg = merge_dicts(cfg1, cfg2, hybrid_compiler_requirements("llvm", "xl")) elif (compiler, cuda_ver) == ("xl-gcc", "11-8-0"): cfg = compiler_section_for( "xl", @@ -505,11 +506,8 @@ def compute_compilers_section(self): flags=custom_flags, )] ) + cfg = merge_dicts(cfg1, cfg2, hybrid_compiler_requirements("llvm", "gcc")) - # fortran: - # require: [xl] - # c: - # require: [clang] return cfg def compute_software_section(self): From 15bca9f378958bc778185394dd1d2fb704456dcd Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 13:11:52 -0700 Subject: [PATCH 08/75] update riken-fugaku --- systems/riken-fugaku/system.py | 137 +++++++++++++-------------------- 1 file changed, 53 insertions(+), 84 deletions(-) diff --git a/systems/riken-fugaku/system.py b/systems/riken-fugaku/system.py index b155aa016..53205a733 100644 --- a/systems/riken-fugaku/system.py +++ b/systems/riken-fugaku/system.py @@ -5,7 +5,7 @@ from benchpark.directives import variant, maintainers -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for from benchpark.openmpsystem import OpenMPSystem from benchpark.paths import hardware_descriptions @@ -552,99 +552,68 @@ def compute_packages_section(self): return selections def compute_compilers_section(self): - compiler = self.spec.variants["compiler"][0] - selections = {"compilers": []} - if compiler == "clang": - selections["compilers"] += [ - { - "compiler": { - "spec": "clang@17.0.2", - "paths": { - "cc": "/vol0004/apps/oss/llvm-v17.0.2/compute_node/bin/clang", - "cxx": "/vol0004/apps/oss/llvm-v17.0.2/compute_node/bin/clang++", - "f77": "/vol0004/apps/oss/llvm-v17.0.2/compute_node/bin/flang", - "fc": "/vol0004/apps/oss/llvm-v17.0.2/compute_node/bin/flang", - }, - # Uncomment and populate these if needed - # "flags": { - # "cflags": {"-msve-vector-bits=scalable"}, - # "cxxflags": {"-msve-vector-bits=scalable"}, - # "fflags": {"-msve-vector-bits=scalable"}, - # "ldflags": {"-fuse-ld=lld"}, - # }, - "environment": { - "append_path": { - "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" - } - }, - "operating_system": "rhel8", - "target": "aarch64", - "modules": [], - "extra_rpaths": [], - } - } - ] + maybe_flags = { + "cflags": {"-msve-vector-bits=scalable"}, + "cxxflags": {"-msve-vector-bits=scalable"}, + "fflags": {"-msve-vector-bits=scalable"}, + "ldflags": {"-fuse-ld=lld"}, + } + cfg = compiler_section_for( + "llvm", + [compiler_def( + "llvm@17.0.2", + "/vol0004/apps/oss/llvm-v17.0.2/compute_node/", + {"c": "clang", "cxx": "clang++", "fortran": "flang"}, + env={ + "append_path": { + "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" + } + }, + #flags = maybe_flags + )] + ) elif compiler == "gcc": - selections["compilers"] += [ - { - "compiler": { - "spec": "gcc@13.2.0", - "paths": { - "cc": "/vol0004/apps/oss/spack-v0.21/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-13.2.0-abihbe7ykvpedq54j6blfvfppy7ojbmd/bin/gcc", - "cxx": "/vol0004/apps/oss/spack-v0.21/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-13.2.0-abihbe7ykvpedq54j6blfvfppy7ojbmd/bin/g++", - "f77": "/vol0004/apps/oss/spack-v0.21/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-13.2.0-abihbe7ykvpedq54j6blfvfppy7ojbmd/bin/gfortran", - "fc": "/vol0004/apps/oss/spack-v0.21/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-13.2.0-abihbe7ykvpedq54j6blfvfppy7ojbmd/bin/gfortran", + cfg = compiler_section_for( + "gcc", + [compiler_def( + "gcc@13.2.0 languages:=c,c++,fortran", + "/vol0004/apps/oss/spack-v0.21/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-13.2.0-abihbe7ykvpedq54j6blfvfppy7ojbmd/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + env={ + "set": { + "OPAL_PREFIX": "/vol0004/apps/oss/mpigcc/fjmpi-gcc12" }, - "flags": {"ldflags": {"-lelf -ldl"}}, - "environment": { - "set": { - "OPAL_PREFIX": "/vol0004/apps/oss/mpigcc/fjmpi-gcc12" - }, - "append_path": { - "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" - }, + "append_path": { + "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" }, - "operating_system": "rhel8", - "target": "aarch64", - "modules": [], - "extra_rpaths": [], - } - } - ] + }, + flags={"ldflags": {"-lelf -ldl"}}, + )] + ) elif compiler == "fj": - selections["compilers"] += [ - { - "compiler": { - "spec": "fj@4.10.0", - "modules": [], - "paths": { - "cc": "/opt/FJSVxtclanga/tcsds-1.2.38/bin/fcc", - "cxx": "/opt/FJSVxtclanga/tcsds-1.2.38/bin/FCC", - "f77": "/opt/FJSVxtclanga/tcsds-1.2.38/bin/frt", - "fc": "/opt/FJSVxtclanga/tcsds-1.2.38/bin/frt", + cfg = compiler_section_for( + "fj", + [compiler_def( + "fj@4.10.0", + "/opt/FJSVxtclanga/tcsds-1.2.38/", + {"c": "fcc", "cxx": "FCC", "fortran": "frt"}, + env={ + "set": { + "fcc_ENV": "-Nclang", + "FCC_ENV": "-Nclang", }, - "flags": {}, - "operating_system": "rhel8", - "target": "aarch64", - "environment": { - "set": { - "fcc_ENV": "-Nclang", - "FCC_ENV": "-Nclang", - }, - "prepend_path": { - "PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/bin", - "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64", - }, + "prepend_path": { + "PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/bin", + "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64", }, - "extra_rpaths": [], - } - } - ] + }, + )] + ) - return selections + return cfg def system_specific_variables(self): return { From 81b57df8ebde7aa63565d5fe5abab5fedfab31f9 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 13:33:30 -0700 Subject: [PATCH 09/75] llnl-matrix update --- systems/llnl-matrix/system.py | 129 +++++++++------------------------- 1 file changed, 34 insertions(+), 95 deletions(-) diff --git a/systems/llnl-matrix/system.py b/systems/llnl-matrix/system.py index 8d2e4f808..9c472d328 100644 --- a/systems/llnl-matrix/system.py +++ b/systems/llnl-matrix/system.py @@ -7,7 +7,7 @@ from benchpark.directives import variant, maintainers from benchpark.cudasystem import CudaSystem from benchpark.paths import hardware_descriptions -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts from packaging.version import Version @@ -205,111 +205,50 @@ def compute_packages_section(self): } } - selections["packages"] |= self.compiler_weighting_cfg()["packages"] - selections["packages"] |= self.cuda_config(self.spec.variants["cuda"][0])[ "packages" ] return selections - def compiler_weighting_cfg(self): - compiler = self.spec.variants["compiler"][0] - - if compiler == "oneapi": - return {"packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}}} - else: - return {"packages": {}} - def compute_compilers_section(self): - selections = {} + gcc_cfg = compiler_section_for( + "gcc", + [compiler_def( + "gcc@12.1.1", + "/usr/tce/packages/gcc/gcc-12.1.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} + )] + ) if self.spec.satisfies("compiler=gcc"): - selections = { - "compilers": [ - { - "compiler": { - "spec": "gcc@12.1.1", - "paths": { - "cc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gcc", - "cxx": "/usr/tce/packages/gcc/gcc-12.1.1/bin/g++", - "f77": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - "fc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + cfg = gcc_cfg elif self.spec.satisfies("compiler=intel"): - selections = { - "compilers": [ - { - "compiler": { - "spec": "intel@2021.6.0-classic", - "paths": { - "cc": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/icc", - "cxx": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/icpc", - "f77": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/ifort", - "fc": "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/bin/ifort", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + cfg = compiler_section_for( + "intel-oneapi-compilers-classic", + [compiler_def( + "intel-oneapi-compilers-classic@2021.6.0 ~envmods", + "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/", + {"c": "icc", "cxx": "icpc", "fortran": "ifort"} + )] + ) elif self.spec.satisfies("compiler=oneapi"): - selections = { - "compilers": [ - { - "compiler": { - "spec": "gcc@12.1.1", - "paths": { - "cc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gcc", - "cxx": "/usr/tce/packages/gcc/gcc-12.1.1/bin/g++", - "f77": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - "fc": "/usr/tce/packages/gcc/gcc-12.1.1/bin/gfortran", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - }, - { - "compiler": { - "spec": "oneapi@2023.2.1", - "paths": { - "cc": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/icx", - "cxx": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/icpx", - "f77": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/ifx", - "fc": "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/ifx", - }, - "flags": {}, - "operating_system": "rhel8", - "target": "x86_64", - "modules": [ - f"cuda/{self.cuda_version}", - ], - "environment": {}, - "extra_rpaths": [], - } - }, - ] - } + oneapi_cfg = compiler_section_for( + "intel-oneapi-compilers", + [compiler_def( + "intel-oneapi-compilers@2023.2.1 ~envmods", + "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/", + {"c": "icx", "cxx": "icpx", "fortran": "ifx"}, + modules=[ + f"cuda/{self.cuda_version}", + ], + )] + ) + # In this case 2 compilers are defined: create a preference for + # oneAPI compiler + weighting_cfg = {"packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}}} + cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) - return selections + return cfg def cuda_config(self, cuda_version): return { From 1b729dedafd305861ff64af8e1fe8c6adbe2227a Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 13:41:44 -0700 Subject: [PATCH 10/75] update lanl-venado --- systems/lanl-venado/system.py | 97 +++++++++++++++-------------------- 1 file changed, 40 insertions(+), 57 deletions(-) diff --git a/systems/lanl-venado/system.py b/systems/lanl-venado/system.py index c04bd7e6e..8359298d2 100644 --- a/systems/lanl-venado/system.py +++ b/systems/lanl-venado/system.py @@ -7,7 +7,7 @@ from benchpark.directives import variant, maintainers from benchpark.cudasystem import CudaSystem from benchpark.openmpsystem import OpenMPSystem -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts from benchpark.paths import hardware_descriptions from packaging.version import Version @@ -167,65 +167,48 @@ def compute_packages_section(self): return selections def compute_compilers_section(self): - selections = { - "compilers": [ - { - "compiler": { - "spec": "gcc@12.3.0", - "paths": { - "cc": "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/bin/gcc", - "cxx": "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/bin/g++", - "f77": "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/bin/gfortran", - "fc": "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/bin/gfortran", - }, - "flags": {}, - "operating_system": "sles15", - "target": "aarch64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + gcc_cfg = compiler_section_for( + "gcc", + [compiler_def( + "gcc@12.3.0", + "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} + )] + ) + # TODO: Construct/extract/customize compiler information from the working set if self.spec.satisfies("compiler=cce"): - selections["compilers"] += [ - { - "compiler": { - "spec": "cce@18.0.0", - "paths": { - "cc": "/opt/cray/pe/cce/18.0.0/bin/craycc", - "cxx": "/opt/cray/pe/cce/18.0.0/bin/crayCC", - "f77": "/opt/cray/pe/cce/18.0.0/bin/crayftn", - "fc": "/opt/cray/pe/cce/18.0.0/bin/crayftn", - }, - "flags": { - "cflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", - "cxxflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", - "fflags": "-g -O2 -hnopattern", - "ldflags": "-ldl", - }, - "operating_system": "sles15", - "target": "aarch64", - "modules": [], - "environment": { - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib:/opt/cray/libfabric/1.20.1/lib64:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64:/opt/cray/pe/gcc-libs" - } - }, - "extra_rpaths": [ - "/opt/cray/pe/gcc-libs", - "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib", - "/opt/cray/libfabric/1.20.1/lib64", - "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib", - "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64", - ], - } - } - ] + cce_cfg = compiler_section_for( + "cce", + [compiler_def( + "cce@18.0.0", + "/opt/cray/pe/cce/18.0.0/", + {"c": "cracc", "cxx": "crayCC", "fortran": "crayftn"}, + flags={ + "cflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", + "cxxflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", + "fflags": "-g -O2 -hnopattern", + "ldflags": "-ldl", + }, + env={ + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib:/opt/cray/libfabric/1.20.1/lib64:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64:/opt/cray/pe/gcc-libs" + } + }, + extra_rpaths=[ + "/opt/cray/pe/gcc-libs", + "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib", + "/opt/cray/libfabric/1.20.1/lib64", + "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib", + "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64", + ], + )] + ) + cfg = merge_dicts(gcc_cfg, cce_cfg) + else: + cfg = gcc_cfg - return selections + return cfg def mpi_config(self): mpi_version = "8.1.30" From b609c9d99af820a0b3668516ad2ef501b90e8ccb Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 16:15:02 -0700 Subject: [PATCH 11/75] update jsc-juwels --- systems/jsc-juwels/system.py | 65 +++++++++++++----------------------- 1 file changed, 24 insertions(+), 41 deletions(-) diff --git a/systems/jsc-juwels/system.py b/systems/jsc-juwels/system.py index ff2773e96..54f7d2a96 100644 --- a/systems/jsc-juwels/system.py +++ b/systems/jsc-juwels/system.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from benchpark.directives import variant, maintainers -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts from benchpark.cudasystem import CudaSystem from packaging.version import Version from benchpark.paths import hardware_descriptions @@ -60,48 +60,31 @@ def __init__(self, spec): setattr(self, k, v) def compute_compilers_section(self): - selections = { - "compilers": [ - { - "compiler": { - "spec": "nvhpc@23.7", - "paths": { - "cc": "/p/software/juwelsbooster/stages/2024/software/NVHPC/23.7-CUDA-12/Linux_aarch64/23.7/compilers/bin/nvc", - "cxx": "/p/software/juwelsbooster/stages/2024/software/NVHPC/23.7-CUDA-12/Linux_aarch64/23.7/compilers/bin/nvc++", - "f77": "/p/software/juwelsbooster/stages/2024/software/NVHPC/23.7-CUDA-12/Linux_aarch64/23.7/compilers/bin/nvfortran", - "fc": "/p/software/juwelsbooster/stages/2024/software/NVHPC/23.7-CUDA-12/Linux_aarch64/23.7/compilers/bin/nvfortran", - }, - "operating_system": "rocky8", - "target": "x86_64", - "modules": ["Stages/2024", "NVHPC/23.7"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + nvhpc_cfg = compiler_section_for( + "nvhpc", + [compiler_def( + "nvhpc@23.7", + "/p/software/juwelsbooster/stages/2024/software/NVHPC/23.7-CUDA-12/Linux_aarch64/23.7/compilers/", + {"c": "nvc", "cxx": "nvc++", "fortran": "nvfortran"}, + modules=["Stages/2024", "NVHPC/23.7"], + )] + ) if self.spec.satisfies("compiler=gcc"): - selections["compilers"] += [ - { - "compiler": { - "spec": "gcc@12.3.0", - "paths": { - "cc": "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/bin/gcc", - "cxx": "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/bin/g++", - "f77": "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/bin/gfortran", - "fc": "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/bin/gfortran", - }, - "operating_system": "rocky9", - "target": "aarch64", - "modules": ["Stages/2024", "GCC/12.3.0"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - - return selections + gcc_cfg = compiler_section_for( + "gcc", + [compiler_def( + "gcc@12.3.0", + "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + modules=["Stages/2024", "GCC/12.3.0"], + )] + ) + cfg = merge_dicts(nvhpc_cfg, gcc_cfg) + else: + cfg = gcc_cfg + + return cfg def compute_packages_section(self): From f1f850df2d095956333db4450d734db16ef08a6b Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 16:18:01 -0700 Subject: [PATCH 12/75] allow merging lists, better error reporting --- lib/benchpark/system.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index e1431041c..e8388c3bc 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -191,8 +191,10 @@ def _merge_dicts(d1, d2): v1 = result[k] if all(isinstance(x, dict) for x in (v1, v2)): result[k] = merge_dicts(v1, v2) + elif all(isinstance(x, list) for x in (v1, v2)): + result[k] = v1 + v2 else: - raise Exception("Bad merge: dict w/non-dict") + raise ValueError(f"{k} merge mismatch: {v1}/{v2}") else: result[k] = v2 return result From 13f41f18d3f841764d306730a644133dcc7e4636 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 16:26:12 -0700 Subject: [PATCH 13/75] cscs-eiger update --- lib/benchpark/system.py | 5 +++-- systems/cscs-eiger/system.py | 28 +++++++++++----------------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index e8388c3bc..efc3d1f47 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -233,10 +233,11 @@ def compiler_section_for(name, entries): } -def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None, flags=None): +def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None, flags=None, + compilers_use_relative_paths=False): lang_map = {} for lang, exe in exes.items(): - if os.path.isabs(exe): + if os.path.isabs(exe) or compilers_use_relative_paths: lang_map[lang] = exe else: lang_map[lang] = os.path.join(prefix, "bin", exe) diff --git a/systems/cscs-eiger/system.py b/systems/cscs-eiger/system.py index 5e3b9b41a..445941f8a 100644 --- a/systems/cscs-eiger/system.py +++ b/systems/cscs-eiger/system.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from benchpark.directives import variant, maintainers -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for from benchpark.openmpsystem import OpenMPSystem from packaging.version import Version from benchpark.paths import hardware_descriptions @@ -42,22 +42,16 @@ def __init__(self, spec): setattr(self, k, v) def compute_compilers_section(self): - return { - "compilers": [ - { - "compiler": { - "spec": "gcc@12.3.0", - "paths": {"cc": "cc", "cxx": "CC", "f77": "ftn", "fc": "ftn"}, - "flags": {}, - "target": "any", - "operating_system": "HPECray", - "modules": ["PrgEnv-gnu", "gcc/12.3.0"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + return compiler_section_for( + "gcc", + [compiler_def( + "gcc@12.3.0", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/12.3.0"], + compilers_use_relative_paths=True, + )] + ) def compute_packages_section(self): From 6786be9c5d62e9bd03c8232cadc4ce093d32f23e Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 16:27:28 -0700 Subject: [PATCH 14/75] handle merging w/merge method vs. manually reaching into dicts --- lib/benchpark/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index efc3d1f47..e2403e3e1 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -147,7 +147,7 @@ def compute_dict(self): pkg_cfg = self.compute_packages_section() or {} compiler_cfg = self.compute_compilers_section() if compiler_cfg: - pkg_cfg["packages"].update(compiler_cfg["packages"]) + pkg_cfg = merge_dicts(pkg_cfg, compiler_cfg) # "'packages:':" syntax is required to enforce spack to use benchpark-defined # compilers instead of external compilers defined by spack compiler search (from ramble). pkg_cfg = {"packages:": pkg_cfg["packages"]} From d5ff2b11762fad525d3a2d52f72a8926e4e5a598 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 16:43:27 -0700 Subject: [PATCH 15/75] update cscs-daint --- systems/cscs-daint/system.py | 231 ++++++++++++----------------------- 1 file changed, 77 insertions(+), 154 deletions(-) diff --git a/systems/cscs-daint/system.py b/systems/cscs-daint/system.py index 5521d3516..b8c0a25f5 100644 --- a/systems/cscs-daint/system.py +++ b/systems/cscs-daint/system.py @@ -5,7 +5,7 @@ from benchpark.directives import variant, maintainers -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts from benchpark.cudasystem import CudaSystem from packaging.version import Version from benchpark.paths import hardware_descriptions @@ -142,163 +142,86 @@ def compute_packages_section(self): } def compute_compilers_section(self): - compiler_map = { - "cce": { - "compilers": [ - { - "compiler": { - "spec": "cce@12.0.3", - "paths": { - "cc": "cc", - "cxx": "CC", - "f77": "ftn", - "fc": "ftn", - }, - "flags": {}, - "operating_system": "cnl7", - "target": "any", - "modules": ["PrgEnv-cray", "cce/12.0.3"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - }, - "gcc9": { - "compilers": [ - { - "compiler": { - "spec": "gcc@9.3.0", - "paths": { - "cc": "cc", - "cxx": "CC", - "f77": "ftn", - "fc": "ftn", - }, - "flags": {}, - "operating_system": "cnl7", - "target": "any", - "modules": ["PrgEnv-gnu", "gcc/9.3.0"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - }, - "gcc10": { - "compilers": [ - { - "compiler": { - "spec": "gcc@10.3.0", - "paths": { - "cc": "cc", - "cxx": "CC", - "f77": "ftn", - "fc": "ftn", - }, - "flags": {}, - "operating_system": "cnl7", - "target": "any", - "modules": ["PrgEnv-gnu", "gcc/10.3.0"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - }, - "gcc11": { - "compilers": [ - { - "compiler": { - "spec": "gcc@11.2.0", - "paths": { - "cc": "cc", - "cxx": "CC", - "f77": "ftn", - "fc": "ftn", - }, - "flags": {}, - "operating_system": "cnl7", - "target": "any", - "modules": ["PrgEnv-gnu", "gcc/11.2.0"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - }, - "intel": { - "compilers": [ - { - "compiler": { - "spec": "intel@2021.3.0", - "paths": { - "cc": "cc", - "cxx": "CC", - "f77": "ftn", - "fc": "ftn", - }, - "flags": {}, - "operating_system": "cnl7", - "target": "any", - "modules": ["PrgEnv-intel", "intel/2021.3.0"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - }, - "pgi": { - "compilers": [ - { - "compiler": { - "spec": "pgi@20.1.1", - "paths": { - "cc": "cc", - "cxx": "CC", - "f77": "ftn", - "fc": "ftn", - }, - "flags": {}, - "operating_system": "cnl7", - "target": "any", - "modules": ["PrgEnv-pgi", "pgi/20.1.1"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - }, - "nvhpc": { - "compilers": [ - { - "compiler": { - "spec": "nvhpc@21.3", - "paths": { - "cc": "cc", - "cxx": "CC", - "f77": "ftn", - "fc": "ftn", - }, - "flags": {}, - "operating_system": "cnl7", - "target": "any", - "modules": ["PrgEnv-nvidia", "nvidia/21.3"], - "environment": {}, - "extra_rpaths": [], - } - } - ] - }, - } + compiler_map = {} + compiler_map["cce"] = compiler_section_for( + "cce", + [compiler_def( + "cce@12.0.3", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-cray", "cce/12.0.3"], + compilers_use_relative_paths=True, + )] + ) + compiler_map["gcc9"] = compiler_section_for( + "gcc", + [compiler_def( + "gcc@9.3.0", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/9.3.0"], + compilers_use_relative_paths=True, + )] + ) + compiler_map["gcc10"] = compiler_section_for( + "gcc", + [compiler_def( + "gcc@10.3.0", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/10.3.0"], + compilers_use_relative_paths=True, + )] + ) + compiler_map["gcc11"] = compiler_section_for( + "gcc", + [compiler_def( + "gcc@11.2.0", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/11.2.0"], + compilers_use_relative_paths=True, + )] + ) + compiler_map["intel"] = compiler_section_for( + "intel-oneapi-compilers", + [compiler_def( + "intel-oneapi-compilers@2021.3.0", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-intel", "intel/2021.3.0"], + compilers_use_relative_paths=True, + )] + ) + compiler_map["pgi"] = compiler_section_for( + "pgi", + [compiler_def( + "pgi@20.1.1", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-pgi", "pgi/20.1.1"], + compilers_use_relative_paths=True, + )] + ) + compiler_map["nvhpc"] = compiler_section_for( + "nvhpc", + [compiler_def( + "nvhpc@21.3", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-nvidia", "nvidia/21.3"], + compilers_use_relative_paths=True, + )] + ) + collected = list() compiler_variant = self.spec.variants["compiler"][0] - selections = {"compilers": []} - for key, config in compiler_map.items(): + for key, cfg in compiler_map.items(): if key in compiler_variant: - selections["compilers"] += config["compilers"] + collected.append(cfg) + return merge_dicts(collected) + - return selections def cuda_config(self, cuda_version): if cuda_version == "10.2.89": From aa254029e1c6da53b6cb64e2ad689c65be4cdadc Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 17:00:26 -0700 Subject: [PATCH 16/75] update csc-lumi and fix rocm config in llnl-elcapitan --- systems/csc-lumi/system.py | 150 ++++++++++++------------------- systems/llnl-elcapitan/system.py | 2 +- 2 files changed, 59 insertions(+), 93 deletions(-) diff --git a/systems/csc-lumi/system.py b/systems/csc-lumi/system.py index 02ff7d5ce..84159eb89 100644 --- a/systems/csc-lumi/system.py +++ b/systems/csc-lumi/system.py @@ -7,7 +7,7 @@ from benchpark.directives import variant, maintainers from benchpark.paths import hardware_descriptions from benchpark.rocmsystem import ROCmSystem -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts from packaging.version import Version @@ -161,107 +161,73 @@ def compute_packages_section(self): return selections def compute_compilers_section(self): - selections = self.rocmcc_cfg() + chosen = [self.rocmcc_cfg()] if "cce" in self.spec.variants["compiler"][0]: - selections["compilers"] += self.cce_compiler_cfg()["compilers"] + chosen.append(self.cce_compiler_cfg()) else: - selections["compilers"] += self.gcc_compiler_cfg()["compilers"] + chosen.append(self.gcc_compiler_cfg()) - return selections + return merge_dicts(*chosen) def rocmcc_cfg(self): - return { - "compilers": [ - { - "compiler": { - "spec": f"rocmcc@{self.rocm_version}", - "paths": { - "cc": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/bin/amdclang", - "cxx": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/bin/amdclang++", - "f77": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/bin/amdflang", - "fc": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/bin/amdflang", - }, - # "flags": " ", # Uncomment if needed - "operating_system": "sles15", - "target": "any", - "modules": [], - "environment": { - "set": {"RFE_811452_DISABLE": "1"}, - "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib", - "LIBRARY_PATH": f"/appl/lumi/SW/CrayEnv/EB/rocm/5.6.1/lib:/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", - }, - }, - "extra_rpaths": [ - f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib", - f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", - "/opt/cray/pe/gcc-libs", - ], - } - } - ] - } + return compiler_section_for( + "llvm-amdgpu", + [compiler_def( + f"rocmcc@{self.rocm_version}", + f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/", + {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, + env={ + "set": {"RFE_811452_DISABLE": "1"}, + "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib", + "LIBRARY_PATH": f"/appl/lumi/SW/CrayEnv/EB/rocm/5.6.1/lib:/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", + }, + }, + extra_rpaths=[ + f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib", + f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", + "/opt/cray/pe/gcc-libs", + ], + )] + ) def cce_compiler_cfg(self): - return { - "compilers": [ - { - "compiler": { - "spec": f"cce@{self.compiler_version}", - "paths": { - "cc": f"/opt/cray/pe/cce/{self.compiler_version}/bin/craycc", - "cxx": f"/opt/cray/pe/cce/{self.compiler_version}/bin/crayCC", - "f77": f"/opt/cray/pe/cce/{self.compiler_version}/bin/crayftn", - "fc": f"/opt/cray/pe/cce/{self.compiler_version}/bin/crayftn", - }, - # "flags": "", # Uncomment if needed - "operating_system": "sles15", - "target": "any", - "modules": [], - "environment": { - "set": {"RFE_811452_DISABLE": "1"}, - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib" - }, - "append_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs", - "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", - }, - }, - "extra_rpaths": ["/opt/cray/pe/gcc-libs"], - } - } - ] - } + return compiler_section_for( + "cce", + [compiler_def( + f"cce@{self.compiler_version}", + f"/opt/cray/pe/cce/{self.compiler_version}/", + {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, + env={ + "set": {"RFE_811452_DISABLE": "1"}, + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib" + }, + "append_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs", + "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", + }, + }, + extra_rpaths=["/opt/cray/pe/gcc-libs"], + )] + ) def gcc_compiler_cfg(self): - return { - "compilers": [ - { - "compiler": { - "spec": f"gcc@{self.compiler_version}", - "paths": { - "cc": f"/opt/cray/pe/gcc/{self.compiler_version}/bin/gcc", - "cxx": f"/opt/cray/pe/gcc/{self.compiler_version}/bin/g++", - "f77": f"/opt/cray/pe/gcc/{self.compiler_version}/bin/gfortran", - "fc": f"/opt/cray/pe/gcc/{self.compiler_version}/bin/gfortran", - }, - # "flags": "", # Uncomment if needed - "operating_system": "sles15", - "target": "any", - "modules": [], - "environment": { - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib:/opt/cray/libfabric/1.15.2.0/lib64", - "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", - } - }, - "extra_rpaths": [], + return compiler_section_for( + "gcc", + [compiler_def( + f"gcc@{self.compiler_version}", + f"/opt/cray/pe/gcc/{self.compiler_version}/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + env={ + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib:/opt/cray/libfabric/1.15.2.0/lib64", + "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", } - } - ] - } + }, + )] + ) def rocm_config(self): return { diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index e1f9af988..73b9d03bd 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -626,7 +626,7 @@ def rocm_cce_compiler_cfg(self): entry = compiler_def( f"rocmcc@{self.rocm_version}", f"/opt/rocm-{self.rocm_version}/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, modules=[f"cce/{self.cce_version}"], flags={"cflags": "-g -O2", "cxxflags": "-g -O2"}, extra_rpaths=rpaths, From b232b53d3885c8ccbe38af8346aefa262891b71c Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 17:19:05 -0700 Subject: [PATCH 17/75] update aws-pcluster; update gcc spec in llnl-elcapitan --- systems/aws-pcluster/system.py | 30 ++++++++---------------------- systems/llnl-elcapitan/system.py | 2 +- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/systems/aws-pcluster/system.py b/systems/aws-pcluster/system.py index cbaaf5e77..edcf144bb 100644 --- a/systems/aws-pcluster/system.py +++ b/systems/aws-pcluster/system.py @@ -101,28 +101,14 @@ def compute_packages_section(self): } def compute_compilers_section(self): - - return { - "compilers": [ - { - "compiler": { - "spec": "gcc@7.3.1", - "paths": { - "cc": "/usr/bin/gcc", - "cxx": "/usr/bin/g++", - "f77": "/usr/bin/gfortran", - "fc": "/usr/bin/gfortran", - }, - "flags": {}, - "operating_system": "alinux2", - "target": "x86_64", - "modules": [], - "environment": {}, - "extra_rpaths": [], - } - } - ] - } + return compiler_section_for( + "gcc", + [compiler_def( + "gcc@7.3.1 languages=c,c++,fortran", + "/usr/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} + )] + ) def compute_software_section(self): return { diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 73b9d03bd..70346db11 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -315,7 +315,7 @@ def compute_compilers_section(self): cfg = compiler_section_for( "gcc", [compiler_def( - "gcc@12.2.0", + "gcc@12.2.0 languages=c,c++,fortran", "/opt/cray/pe/gcc/12.2.0/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} )] From a396bfa29679ae2fc87dd52f4b65d99001253fb2 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 17:37:45 -0700 Subject: [PATCH 18/75] fix some details --- systems/aws-pcluster/system.py | 2 +- systems/csc-lumi/system.py | 2 +- systems/cscs-daint/system.py | 6 +++--- systems/cscs-eiger/system.py | 2 +- systems/jsc-juwels/system.py | 4 ++-- systems/lanl-venado/system.py | 2 +- systems/llnl-cluster/system.py | 20 ++++++-------------- systems/llnl-matrix/system.py | 2 +- systems/llnl-sierra/system.py | 2 +- 9 files changed, 17 insertions(+), 25 deletions(-) diff --git a/systems/aws-pcluster/system.py b/systems/aws-pcluster/system.py index edcf144bb..bed24f431 100644 --- a/systems/aws-pcluster/system.py +++ b/systems/aws-pcluster/system.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 -from benchpark.system import System +from benchpark.system import System, compiler_def, compiler_section_for from benchpark.directives import variant, maintainers from benchpark.openmpsystem import OpenMPSystem from benchpark.paths import hardware_descriptions diff --git a/systems/csc-lumi/system.py b/systems/csc-lumi/system.py index 84159eb89..59ccdbd66 100644 --- a/systems/csc-lumi/system.py +++ b/systems/csc-lumi/system.py @@ -217,7 +217,7 @@ def gcc_compiler_cfg(self): return compiler_section_for( "gcc", [compiler_def( - f"gcc@{self.compiler_version}", + f"gcc@{self.compiler_version} languages:=c,c++,fortran", f"/opt/cray/pe/gcc/{self.compiler_version}/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, env={ diff --git a/systems/cscs-daint/system.py b/systems/cscs-daint/system.py index b8c0a25f5..78cd258a0 100644 --- a/systems/cscs-daint/system.py +++ b/systems/cscs-daint/system.py @@ -156,7 +156,7 @@ def compute_compilers_section(self): compiler_map["gcc9"] = compiler_section_for( "gcc", [compiler_def( - "gcc@9.3.0", + "gcc@9.3.0 languages:=c,c++,fortran", "/path/is/now/needed/", # <-- TODO: this needs to be filled in {"c": "cc", "cxx": "CC", "fortran": "ftn"}, modules=["PrgEnv-gnu", "gcc/9.3.0"], @@ -166,7 +166,7 @@ def compute_compilers_section(self): compiler_map["gcc10"] = compiler_section_for( "gcc", [compiler_def( - "gcc@10.3.0", + "gcc@10.3.0 languages:=c,c++,fortran", "/path/is/now/needed/", # <-- TODO: this needs to be filled in {"c": "cc", "cxx": "CC", "fortran": "ftn"}, modules=["PrgEnv-gnu", "gcc/10.3.0"], @@ -176,7 +176,7 @@ def compute_compilers_section(self): compiler_map["gcc11"] = compiler_section_for( "gcc", [compiler_def( - "gcc@11.2.0", + "gcc@11.2.0 languages:=c,c++,fortran", "/path/is/now/needed/", # <-- TODO: this needs to be filled in {"c": "cc", "cxx": "CC", "fortran": "ftn"}, modules=["PrgEnv-gnu", "gcc/11.2.0"], diff --git a/systems/cscs-eiger/system.py b/systems/cscs-eiger/system.py index 445941f8a..1ea3db5bd 100644 --- a/systems/cscs-eiger/system.py +++ b/systems/cscs-eiger/system.py @@ -45,7 +45,7 @@ def compute_compilers_section(self): return compiler_section_for( "gcc", [compiler_def( - "gcc@12.3.0", + "gcc@12.3.0 languages:=c,c++,fortran", "/path/is/now/needed/", # <-- TODO: this needs to be filled in {"c": "cc", "cxx": "CC", "fortran": "ftn"}, modules=["PrgEnv-gnu", "gcc/12.3.0"], diff --git a/systems/jsc-juwels/system.py b/systems/jsc-juwels/system.py index 54f7d2a96..ac7ea5dd1 100644 --- a/systems/jsc-juwels/system.py +++ b/systems/jsc-juwels/system.py @@ -74,7 +74,7 @@ def compute_compilers_section(self): gcc_cfg = compiler_section_for( "gcc", [compiler_def( - "gcc@12.3.0", + "gcc@12.3.0 languages:=c,c++,fortran", "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, modules=["Stages/2024", "GCC/12.3.0"], @@ -82,7 +82,7 @@ def compute_compilers_section(self): ) cfg = merge_dicts(nvhpc_cfg, gcc_cfg) else: - cfg = gcc_cfg + cfg = nvhpc_cfg return cfg diff --git a/systems/lanl-venado/system.py b/systems/lanl-venado/system.py index 8359298d2..7790f5390 100644 --- a/systems/lanl-venado/system.py +++ b/systems/lanl-venado/system.py @@ -170,7 +170,7 @@ def compute_compilers_section(self): gcc_cfg = compiler_section_for( "gcc", [compiler_def( - "gcc@12.3.0", + "gcc@12.3.0 languages:=c,c++,fortran", "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} )] diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index ee4df9feb..3e74ce93b 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -5,7 +5,7 @@ from benchpark.directives import variant, maintainers -from benchpark.system import System, compiler_def, compiler_section_for +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts from benchpark.openmpsystem import OpenMPSystem from benchpark.paths import hardware_descriptions @@ -215,22 +215,14 @@ def compute_packages_section(self): } } - 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", "%gcc"]}]}}} - else: - return {"packages": {}} - def compute_compilers_section(self): if self.spec.satisfies("compiler=gcc"): cfg = compiler_section_for( "gcc", [compiler_def( - "gcc@12.1.1", + "gcc@12.1.1 languages:=c,c++,fortran", "/usr/tce/packages/gcc/gcc-12.1.1/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} )] @@ -245,7 +237,7 @@ def compute_compilers_section(self): )] ) elif self.spec.satisfies("compiler=oneapi"): - cfg1 = compiler_section_for( + gcc_cfg = compiler_section_for( "gcc", [compiler_def( "gcc@12.1.1", @@ -253,7 +245,7 @@ def compute_compilers_section(self): {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} )] ) - cfg2 = compiler_section_for( + oneapi_cfg = compiler_section_for( "intel-oneapi-compilers", [compiler_def( "intel-oneapi-compilers@2023.2.1~envmods", @@ -261,8 +253,8 @@ def compute_compilers_section(self): {"c": "icx", "cxx": "icpx", "fortran": "ifx"} )] ) - cfg = cfg1 - cfg["packages"].update(cfg2["packages"]) + weighting_cfg = {"packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}}} + cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) return cfg diff --git a/systems/llnl-matrix/system.py b/systems/llnl-matrix/system.py index 9c472d328..24d2418c4 100644 --- a/systems/llnl-matrix/system.py +++ b/systems/llnl-matrix/system.py @@ -215,7 +215,7 @@ def compute_compilers_section(self): gcc_cfg = compiler_section_for( "gcc", [compiler_def( - "gcc@12.1.1", + "gcc@12.1.1 languages:=c,c++,fortran", "/usr/tce/packages/gcc/gcc-12.1.1/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} )] diff --git a/systems/llnl-sierra/system.py b/systems/llnl-sierra/system.py index dc0765660..378ff9253 100644 --- a/systems/llnl-sierra/system.py +++ b/systems/llnl-sierra/system.py @@ -500,7 +500,7 @@ def compute_compilers_section(self): cfg2 = compiler_section_for( "gcc", [compiler_def( - "gcc-11.2.1 languages:=c,c++,fortran", + "gcc@11.2.1 languages:=c,c++,fortran", "/usr/tce/packages/gcc/gcc-11.2.1/", {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, flags=custom_flags, From eaa09df6226dee9a218fbb47b66681fa1b5be9bd Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 17:54:05 -0700 Subject: [PATCH 19/75] use merge helper in llnl-elcapitan --- systems/llnl-elcapitan/system.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 70346db11..e7ccbfdd2 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -7,7 +7,7 @@ from benchpark.directives import variant, maintainers from benchpark.paths import hardware_descriptions from benchpark.rocmsystem import ROCmSystem -from benchpark.system import System, compiler_def, compiler_section_for +from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts from packaging.version import Version @@ -295,8 +295,6 @@ def compute_packages_section(self): } } - selections["packages"] |= self.compiler_weighting_cfg()["packages"] - return selections def compiler_weighting_cfg(self): @@ -324,9 +322,9 @@ def compute_compilers_section(self): if self.spec.satisfies("compiler=cce") or self.spec.satisfies( "compiler=rocmcc" ): - cfg["packages"].update(self.rocm_cce_compiler_cfg()["packages"]) + cfg = merge_dicts(cfg, self.rocm_cce_compiler_cfg()) - return cfg + return merge_dicts(cfg, self.compiler_weighting_cfg()) def mpi_config(self): gtl = self.spec.variants["gtl"][0] From fb20af67ea4f55d5bc1da906d511bf5c1572854d Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 18:33:13 -0700 Subject: [PATCH 20/75] reference error --- lib/benchpark/system.py | 2 +- systems/llnl-elcapitan/system.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index e2403e3e1..4381146fa 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -190,7 +190,7 @@ def _merge_dicts(d1, d2): if k in result: v1 = result[k] if all(isinstance(x, dict) for x in (v1, v2)): - result[k] = merge_dicts(v1, v2) + result[k] = _merge_dicts(v1, v2) elif all(isinstance(x, list) for x in (v1, v2)): result[k] = v1 + v2 else: diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index e7ccbfdd2..8ab98fc1e 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -152,7 +152,7 @@ def __init__(self, spec): def compute_packages_section(self): selections = { "packages": { - "all": {"require": "target=x86_64:"}, + "all": {"require": [{"spec": "target=x86_64:"}]}, "tar": {"externals": [{"spec": "tar@1.30", "prefix": "/usr"}]}, "coreutils": { "externals": [{"spec": "coreutils@8.30", "prefix": "/usr"}] From 4353299e2e334281289aaf8fb1ff5c68b822e6bc Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 23:23:56 -0700 Subject: [PATCH 21/75] llvm-amdgpu exists as both a compiler and a lib dependency, which would cause confusion in its use as an external --- systems/llnl-elcapitan/system.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 8ab98fc1e..ca811e83b 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -579,15 +579,15 @@ def rocm_config(self): ], "buildable": False, }, - "llvm-amdgpu": { - "externals": [ - { - "spec": f"llvm-amdgpu@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/llvm", - } - ], - "buildable": False, - }, + #"llvm-amdgpu": { + # "externals": [ + # { + # "spec": f"llvm-amdgpu@{self.rocm_version}", + # "prefix": f"/opt/rocm-{self.rocm_version}/llvm", + # } + # ], + # "buildable": False, + #}, "rocblas": { "externals": [ { @@ -622,7 +622,7 @@ def rocm_cce_compiler_cfg(self): compilers = list() if self.spec.satisfies("compiler=rocmcc"): entry = compiler_def( - f"rocmcc@{self.rocm_version}", + f"llvm-amdgpu@{self.rocm_version}", f"/opt/rocm-{self.rocm_version}/", {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, modules=[f"cce/{self.cce_version}"], From 2b5772ee45be8d904dd47e888c1eb272a400fdc8 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Sat, 2 Aug 2025 23:26:54 -0700 Subject: [PATCH 22/75] same issue for csc-lumi --- systems/csc-lumi/system.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/systems/csc-lumi/system.py b/systems/csc-lumi/system.py index 59ccdbd66..0f41887f3 100644 --- a/systems/csc-lumi/system.py +++ b/systems/csc-lumi/system.py @@ -173,7 +173,7 @@ def rocmcc_cfg(self): return compiler_section_for( "llvm-amdgpu", [compiler_def( - f"rocmcc@{self.rocm_version}", + f"llvm-amdgpu@{self.rocm_version}", f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/", {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, env={ @@ -331,14 +331,14 @@ def rocm_config(self): } ], }, - "llvm-amdgpu": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/llvm", - "spec": f"llvm-amdgpu@{self.rocm_version}", - } - ], + #"llvm-amdgpu": { + # "buildable": False, + # "externals": [ + # { + # "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/llvm", + # "spec": f"llvm-amdgpu@{self.rocm_version}", + # } + # ], }, "rccl": { "buildable": False, From 9567d4ca67d4d05d28247f4f695f8107ef96f7cb Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 5 Aug 2025 16:01:40 -0700 Subject: [PATCH 23/75] add language dependencies as needed (generally on all of c/c++/fortran, but everything up to gpcnet has been checked) --- repo/ad/package.py | 4 ++++ repo/affinity/package.py | 3 +++ repo/amg2023/package.py | 2 ++ repo/babelstream/package.py | 5 +++++ repo/branson/package.py | 4 ++++ repo/caliper/package.py | 4 ++++ repo/camp/package.py | 2 +- repo/chai/package.py | 2 +- repo/cray-mpich/package.py | 2 +- repo/cuda/package.py | 4 ++-- repo/enzyme/package.py | 4 ++++ repo/essl/package.py | 2 +- repo/genesis/package.py | 5 +++++ repo/gpcnet/package.py | 4 +++- repo/gromacs/package.py | 4 ++++ repo/hipsycl/package.py | 3 +++ repo/hpcg/package.py | 7 +++++-- repo/hpl/package.py | 4 ++++ repo/hypre/package.py | 2 +- repo/kokkos/package.py | 2 +- repo/kripke/package.py | 4 ++++ repo/laghos/package.py | 4 ++++ repo/lammps/package.py | 2 +- repo/mfem/package.py | 2 +- repo/osu-micro-benchmarks/package.py | 2 +- repo/phloem/package.py | 6 +++++- repo/quicksilver/package.py | 4 ++++ repo/qws/package.py | 4 ++++ repo/raja-perf/package.py | 6 ++++-- repo/raja/package.py | 2 +- repo/remhos/package.py | 4 ++++ repo/salmon-tddft/package.py | 4 ++++ repo/saxpy/package.py | 4 ++++ repo/smb/package.py | 6 ++++++ repo/spectrum-mpi/package.py | 2 +- repo/stream/package.py | 4 ++++ repo/umpire/package.py | 2 +- 37 files changed, 111 insertions(+), 20 deletions(-) diff --git a/repo/ad/package.py b/repo/ad/package.py index 87a0ad639..83beb4f1c 100644 --- a/repo/ad/package.py +++ b/repo/ad/package.py @@ -19,6 +19,10 @@ class Ad(CMakePackage): version("main", branch="main") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("enzyme") def cmake_args(self): diff --git a/repo/affinity/package.py b/repo/affinity/package.py index 99cf3deed..fe2ac9d0a 100644 --- a/repo/affinity/package.py +++ b/repo/affinity/package.py @@ -20,6 +20,9 @@ class Affinity(CMakePackage, CudaPackage): variant("mpi", default=False, description="Build MPI support") variant("rocm", default=False, description="Build ROCm Support") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("mpi", when="+mpi") depends_on("hip", when="+rocm") depends_on("cuda", when="+cuda") diff --git a/repo/amg2023/package.py b/repo/amg2023/package.py index 4fd5e7441..602c0959a 100644 --- a/repo/amg2023/package.py +++ b/repo/amg2023/package.py @@ -25,6 +25,8 @@ class Amg2023(CMakePackage, CudaPackage, ROCmPackage): variant("openmp", default=False, description="Enable OpenMP support") variant("caliper", default=False, description="Enable Caliper monitoring") + depends_on("c", type="build") + depends_on("mpi", when="+mpi") depends_on("hypre+mpi", when="+mpi") requires("+mpi", when="^hypre+mpi") diff --git a/repo/babelstream/package.py b/repo/babelstream/package.py index e71f0bf15..b40f4fc85 100644 --- a/repo/babelstream/package.py +++ b/repo/babelstream/package.py @@ -86,6 +86,11 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage): msg="RAJA implementation requires architecture to be specified by dir=", ) + # Confirmed c++ and Fortran + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + # Thrust Conflict # conflicts("~cuda", when="+thrust", msg="Thrust requires +cuda variant") depends_on("thrust", when="+thrust") diff --git a/repo/branson/package.py b/repo/branson/package.py index 14e31c343..8b662e0eb 100644 --- a/repo/branson/package.py +++ b/repo/branson/package.py @@ -30,6 +30,10 @@ class Branson(CMakePackage): ) version("0.81", sha256="493f720904791f06b49ff48c17a681532c6a4d9fa59636522cf3f9700e77efe4") version("0.8", sha256="85ffee110f89be00c37798700508b66b0d15de1d98c54328b6d02a9eb2cf1cb8") + + depends_on("c", type="build") + depends_on("cxx", type="build") + #depends_on("mpi") depends_on("mpi@2:") diff --git a/repo/caliper/package.py b/repo/caliper/package.py index 1b13781bd..94744913a 100644 --- a/repo/caliper/package.py +++ b/repo/caliper/package.py @@ -109,6 +109,10 @@ class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage): variant("tools", default=True, description="Enable tools") variant("python", default=False, when="@v2.12:", description="Build Python bindings") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("adiak@0.1:0", when="@2.2:2.10 +adiak") depends_on("adiak@0.4:0", when="@2.11: +adiak") diff --git a/repo/camp/package.py b/repo/camp/package.py index 7450101ef..c83189138 100644 --- a/repo/camp/package.py +++ b/repo/camp/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.camp import Camp as BuiltinCamp +from spack_repo.builtin.packages.camp.package import Camp as BuiltinCamp class Camp(BuiltinCamp): diff --git a/repo/chai/package.py b/repo/chai/package.py index a2dd28960..9caa2c1bb 100644 --- a/repo/chai/package.py +++ b/repo/chai/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.chai import Chai as BuiltinChai +from spack_repo.builtin.packages.chai.package import Chai as BuiltinChai class Chai(BuiltinChai): diff --git a/repo/cray-mpich/package.py b/repo/cray-mpich/package.py index feb1ad641..241696c84 100644 --- a/repo/cray-mpich/package.py +++ b/repo/cray-mpich/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.cray_mpich import CrayMpich as BuiltinCM +from spack_repo.builtin.packages.cray_mpich.package import CrayMpich as BuiltinCM class CrayMpich(BuiltinCM): diff --git a/repo/cuda/package.py b/repo/cuda/package.py index 2011ea0f1..51945ea5b 100644 --- a/repo/cuda/package.py +++ b/repo/cuda/package.py @@ -7,11 +7,11 @@ import llnl.util.tty as tty from spack.package import * -import spack.pkg.builtin.cuda +import spack_repo.builtin.packages.cuda.package from llnl.util.filesystem import find_headers -class Cuda(spack.pkg.builtin.cuda.Cuda): +class Cuda(spack_repo.builtin.packages.cuda.package.Cuda): # Layout of hpc-sdk puts some headers in sibling directories: # cuda compiler in /opt/nvidia/hpc_sdk/Linux_aarch64/24.7/cuda/12.5 # cufft in /opt/nvidia/hpc_sdk/Linux_aarch64/24.7/math_libs/12.5 diff --git a/repo/enzyme/package.py b/repo/enzyme/package.py index a2a6519fd..f99ee2b55 100644 --- a/repo/enzyme/package.py +++ b/repo/enzyme/package.py @@ -19,6 +19,10 @@ class Enzyme(CMakePackage): version("patch-1", branch="patch-1") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("llvm@18:") root_cmakelists_dir = "enzyme" diff --git a/repo/essl/package.py b/repo/essl/package.py index e8f433180..1394c97b1 100644 --- a/repo/essl/package.py +++ b/repo/essl/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.essl import Essl as BuiltinEssl +from spack_repo.builtin.packages.essl.package import Essl as BuiltinEssl class Essl(BuiltinEssl): diff --git a/repo/genesis/package.py b/repo/genesis/package.py index 62be4a495..b682ce331 100644 --- a/repo/genesis/package.py +++ b/repo/genesis/package.py @@ -39,6 +39,11 @@ class Genesis(AutotoolsPackage): variant("simd", description="Build with SIMD width.", default="auto", values=("auto", "MIC-AVX512", "CORE-AVX512", "CORE-AVX2"), multi=False) variant("debug", description="Set Debug level", default="0", values=("0", "1", "2", "3", "4"), multi=False) + # Has Fortran but I didn't see c/c++ code + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mpi", when="+mpi") depends_on("lapack", when="+lapack") depends_on("cuda", when="+gpu") diff --git a/repo/gpcnet/package.py b/repo/gpcnet/package.py index 62267da9f..9443004cb 100644 --- a/repo/gpcnet/package.py +++ b/repo/gpcnet/package.py @@ -19,7 +19,9 @@ class Gpcnet(MakefilePackage): version("master", branch="master") variant("mpi", default=False, description="Build with MPI support") - + + depends_on("c", type="build") + depends_on("mpi", when="+mpi") @property diff --git a/repo/gromacs/package.py b/repo/gromacs/package.py index 3234686ec..53b0c3ff8 100644 --- a/repo/gromacs/package.py +++ b/repo/gromacs/package.py @@ -203,6 +203,10 @@ class Gromacs(CMakePackage, CudaPackage, ROCmPackage): msg="GROMACS requires oneMKL 2021.3 or later since version 2023", ) + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mpi", when="+mpi") # Plumed 2.9.0 needs Gromacs 2023, 2022.5, 2021.7, 2020.7 diff --git a/repo/hipsycl/package.py b/repo/hipsycl/package.py index 430cbe465..50660cf89 100644 --- a/repo/hipsycl/package.py +++ b/repo/hipsycl/package.py @@ -40,6 +40,9 @@ class Hipsycl(CMakePackage, CudaPackage, ROCmPackage): variant("sscp", default=False, description="Enable SSCP compiler") variant("intel", default=False, description="Enable Intel Level Zero backend for SYCL kernels") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.5:", type="build") depends_on("boost +filesystem", when="@:0.8") depends_on("boost@1.67.0:1.69.0 +filesystem +fiber +context cxxstd=17", when="@0.9.1:") diff --git a/repo/hpcg/package.py b/repo/hpcg/package.py index 34e62c698..33f39cb06 100644 --- a/repo/hpcg/package.py +++ b/repo/hpcg/package.py @@ -24,12 +24,15 @@ class Hpcg(CMakePackage): variant("openmp", default=True, description="Enable OpenMP support") variant("caliper", default=False, description="Enable Caliper support") - + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mpi@1.1:") depends_on("caliper", when="+caliper") depends_on("adiak", when="+caliper") - def cmake_args(self): build_targets = ["all", "docs"] install_targets = ["install", "docs"] diff --git a/repo/hpl/package.py b/repo/hpl/package.py index d6ea7c3c6..3ccd4e074 100644 --- a/repo/hpl/package.py +++ b/repo/hpl/package.py @@ -28,6 +28,10 @@ class Hpl(AutotoolsPackage): variant("openmp", default=False, description="Enable OpenMP support") variant("caliper", default=False, description="Enable Caliper support") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mpi@1.1:") depends_on("blas") diff --git a/repo/hypre/package.py b/repo/hypre/package.py index fd2fa7a94..cc4df4523 100644 --- a/repo/hypre/package.py +++ b/repo/hypre/package.py @@ -6,7 +6,7 @@ import os from spack.package import * -from spack.pkg.builtin.hypre import Hypre as BuiltinHypre +from spack_repo.builtin.packages.hypre.package import Hypre as BuiltinHypre class Hypre(BuiltinHypre): diff --git a/repo/kokkos/package.py b/repo/kokkos/package.py index 9577eca43..fe1054438 100644 --- a/repo/kokkos/package.py +++ b/repo/kokkos/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.kokkos import Kokkos as BuiltinKokkos +from spack_repo.builtin.packages.kokkos.package import Kokkos as BuiltinKokkos class Kokkos(BuiltinKokkos): diff --git a/repo/kripke/package.py b/repo/kripke/package.py index 882260701..9db113b47 100644 --- a/repo/kripke/package.py +++ b/repo/kripke/package.py @@ -53,6 +53,10 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): variant("openmp", default=False, description="Build with OpenMP enabled.") variant("caliper", default=False, description="Build with Caliper support enabled.") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("chai@2024.07.0+raja", when="@develop") depends_on("fmt@9.1", when=f"^chai@2024.07.0") diff --git a/repo/laghos/package.py b/repo/laghos/package.py index 46150fbfd..1fddf215d 100644 --- a/repo/laghos/package.py +++ b/repo/laghos/package.py @@ -28,6 +28,10 @@ class Laghos(MakefilePackage, CudaPackage, ROCmPackage): variant("caliper", default=False, description="Enable/disable Caliper support") variant("ofast", default=False, description="Enable gcc optimization flags") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mfem+mpi+metis", when="+metis") depends_on("mfem+mpi~metis", when="~metis") depends_on("caliper", when="+caliper") diff --git a/repo/lammps/package.py b/repo/lammps/package.py index 40f319a3c..8fd84b707 100644 --- a/repo/lammps/package.py +++ b/repo/lammps/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.lammps import Lammps as BuiltinLammps +from spack_repo.builtin.packages.lammps.package import Lammps as BuiltinLammps class Lammps(BuiltinLammps): diff --git a/repo/mfem/package.py b/repo/mfem/package.py index 86d45558e..ef7a483d5 100644 --- a/repo/mfem/package.py +++ b/repo/mfem/package.py @@ -8,7 +8,7 @@ import sys from spack.package import * -from spack.pkg.builtin.mfem import Mfem as BuiltinMfem +from spack_repo.builtin.packages.mfem.package import Mfem as BuiltinMfem class Mfem(BuiltinMfem): diff --git a/repo/osu-micro-benchmarks/package.py b/repo/osu-micro-benchmarks/package.py index d94fd9731..2196051cb 100644 --- a/repo/osu-micro-benchmarks/package.py +++ b/repo/osu-micro-benchmarks/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.osu_micro_benchmarks import OsuMicroBenchmarks as BuiltinOsu +from spack_repo.builtin.packages.osu_micro_benchmarks.package import OsuMicroBenchmarks as BuiltinOsu class OsuMicroBenchmarks(BuiltinOsu, ROCmPackage): diff --git a/repo/phloem/package.py b/repo/phloem/package.py index 3eab8b3ea..86972315a 100644 --- a/repo/phloem/package.py +++ b/repo/phloem/package.py @@ -16,7 +16,11 @@ class Phloem(MakefilePackage): version("master", branch="master") variant("mpi", default=False, description="Build with MPI support") - + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mpi", when="+mpi") def install(self, spec, prefix): diff --git a/repo/quicksilver/package.py b/repo/quicksilver/package.py index 1a18d1083..7ba38e805 100644 --- a/repo/quicksilver/package.py +++ b/repo/quicksilver/package.py @@ -29,6 +29,10 @@ class Quicksilver(MakefilePackage): variant("cuda", default=False, description="Build with CUDA support") variant("caliper", default=False, description="Build with Caliper support") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mpi", when="+mpi") depends_on("caliper", when="+caliper") depends_on("adiak", when="+caliper") diff --git a/repo/qws/package.py b/repo/qws/package.py index c9403d050..0b7e5d2a8 100644 --- a/repo/qws/package.py +++ b/repo/qws/package.py @@ -19,6 +19,10 @@ class Qws(MakefilePackage): variant("openmp", default=True, description="Build with OpenMP enabled.") variant("caliper", default=False, description="Enable Caliper monitoring") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mpi", when="+mpi") depends_on("caliper", when="+caliper") depends_on("adiak", when="+caliper") diff --git a/repo/raja-perf/package.py b/repo/raja-perf/package.py index d123e15cc..8798ad548 100644 --- a/repo/raja-perf/package.py +++ b/repo/raja-perf/package.py @@ -152,6 +152,10 @@ class RajaPerf(CachedCMakePackage, CudaPackage, ROCmPackage): multi=False, description="Tests to run") variant("caliper",default=False, description="Build with support for Caliper based profiling") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("blt") depends_on("blt@0.5.2:", type="build", when="@2022.10.0:") depends_on("blt@0.5.0:", type="build", when="@0.12.0:") @@ -168,8 +172,6 @@ class RajaPerf(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("rocprim", when="+rocm") - - conflicts("~openmp", when="+openmp_target", msg="OpenMP target requires OpenMP") conflicts("+cuda", when="+openmp_target", msg="Cuda may not be activated when openmp_target is ON") diff --git a/repo/raja/package.py b/repo/raja/package.py index 8243ba748..028b12d30 100644 --- a/repo/raja/package.py +++ b/repo/raja/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.raja import Raja as BuiltinRaja +from spack_repo.builtin.packages.raja.package import Raja as BuiltinRaja class Raja(BuiltinRaja): diff --git a/repo/remhos/package.py b/repo/remhos/package.py index 663c359f8..8120ca172 100644 --- a/repo/remhos/package.py +++ b/repo/remhos/package.py @@ -31,6 +31,10 @@ class Remhos(MakefilePackage, CudaPackage, ROCmPackage): variant("metis", default=True, description="Enable/disable METIS support") variant("caliper", default=False, description="Enable/disable Caliper support") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("mfem+mpi+metis", when="+metis") depends_on("mfem+mpi~metis", when="~metis") depends_on("caliper", when="+caliper") diff --git a/repo/salmon-tddft/package.py b/repo/salmon-tddft/package.py index d0d028ebf..0b0ea57c3 100644 --- a/repo/salmon-tddft/package.py +++ b/repo/salmon-tddft/package.py @@ -22,6 +22,10 @@ class SalmonTddft(CMakePackage): version("2.0.0", sha256="c3bb80bc5d338cba21cd8f345acbf2f2d81ef75af069a0a0ddbdc0acf358456c") version("1.2.1", sha256="a5045149e49abe9dd9edefe00cd1508a1323081bc3d034632176b728effdbaeb") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + variant("mpi", default=False, description="Enable MPI") variant("openmp", default=False, description="Enable OpenMP") variant("libxc", default=False, description="Enable libxc") diff --git a/repo/saxpy/package.py b/repo/saxpy/package.py index 25dc76ce0..5912981ff 100644 --- a/repo/saxpy/package.py +++ b/repo/saxpy/package.py @@ -28,6 +28,10 @@ class Saxpy(CMakePackage, CudaPackage, ROCmPackage): conflicts("+rocm", when="+cuda+openmp") conflicts("+openmp", when="+rocm+cuda") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("cmake") depends_on("mpi") depends_on("caliper", when="+caliper") diff --git a/repo/smb/package.py b/repo/smb/package.py index 8c060f16a..bb73f3537 100644 --- a/repo/smb/package.py +++ b/repo/smb/package.py @@ -5,6 +5,7 @@ from spack.package import * import llnl.util.filesystem as fs import inspect + class Smb(MakefilePackage): tags = [] @@ -17,7 +18,12 @@ class Smb(MakefilePackage): variant("mpi", default=False, description="Build with MPI support") variant("rma", default=False, description="Build RMA-MT variant") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") depends_on("mpi", when="+mpi") + build_directory = ["src/mpi_overhead"] def edit(self, spec, prefix): diff --git a/repo/spectrum-mpi/package.py b/repo/spectrum-mpi/package.py index fba38532a..41c2f3fe2 100644 --- a/repo/spectrum-mpi/package.py +++ b/repo/spectrum-mpi/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.spectrum_mpi import SpectrumMpi as BuiltinSM +from spack_repo.builtin.packages.spectrum_mpi.package import SpectrumMpi as BuiltinSM class SpectrumMpi(BuiltinSM): diff --git a/repo/stream/package.py b/repo/stream/package.py index e047fd80f..74f1cdeb2 100644 --- a/repo/stream/package.py +++ b/repo/stream/package.py @@ -24,6 +24,10 @@ class Stream(CMakePackage): requires("@5.10-caliper", when="+caliper") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("caliper", when="+caliper") depends_on("adiak@0.4:", when="+caliper") diff --git a/repo/umpire/package.py b/repo/umpire/package.py index f9f54f1de..ea3a4f171 100644 --- a/repo/umpire/package.py +++ b/repo/umpire/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.umpire import Umpire as BuiltinUmpire +from spack_repo.builtin.packages.umpire.package import Umpire as BuiltinUmpire class Umpire(BuiltinUmpire): From 60fcf84e288c5965f4d6bbe7ec1cd132cc0d522e Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 6 Aug 2025 17:09:41 -0700 Subject: [PATCH 24/75] style auto format --- lib/benchpark/system.py | 40 ++- systems/aws-pcluster/system.py | 12 +- systems/csc-lumi/system.py | 477 ++++++++++++++++--------------- systems/cscs-daint/system.py | 114 ++++---- systems/cscs-eiger/system.py | 16 +- systems/jsc-juwels/system.py | 28 +- systems/lanl-venado/system.py | 60 ++-- systems/llnl-cluster/system.py | 52 ++-- systems/llnl-elcapitan/system.py | 23 +- systems/llnl-matrix/system.py | 46 +-- systems/llnl-sierra/system.py | 115 +++++--- systems/riken-fugaku/system.py | 82 +++--- 12 files changed, 566 insertions(+), 499 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index 4381146fa..ecbc76b80 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -209,14 +209,8 @@ def hybrid_compiler_requirements(c_cmp, f_cmp): "spec": rf"%[virtuals=c] {c_cmp}", "when": r"%c", }, - { - "spec": rf"%[virtuals=cxx] {c_cmp}", - "when": r"%cxx" - }, - { - "spec": rf"^[virtuals=fortran] {f_cmp}", - "when": r"^fortran" - } + {"spec": rf"%[virtuals=cxx] {c_cmp}", "when": r"%cxx"}, + {"spec": rf"^[virtuals=fortran] {f_cmp}", "when": r"^fortran"}, ] } } @@ -224,17 +218,19 @@ def hybrid_compiler_requirements(c_cmp, f_cmp): def compiler_section_for(name, entries): - return { - "packages": { - name: { - "externals": entries - } - } - } - - -def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None, flags=None, - compilers_use_relative_paths=False): + return {"packages": {name: {"externals": entries}}} + + +def compiler_def( + spec, + prefix, + exes, + env=None, + extra_rpaths=None, + modules=None, + flags=None, + compilers_use_relative_paths=False, +): lang_map = {} for lang, exe in exes.items(): if os.path.isabs(exe) or compilers_use_relative_paths: @@ -244,9 +240,7 @@ def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None, entry = { "spec": spec, "prefix": prefix, - "extra_attributes": { - "compilers": lang_map - } + "extra_attributes": {"compilers": lang_map}, } if env: entry["extra_attributes"]["environment"] = env @@ -256,4 +250,4 @@ def compiler_def(spec, prefix, exes, env=None, extra_rpaths=None, modules=None, entry["modules"] = modules if flags: entry["extra_attributes"]["flags"] = flags - return entry \ No newline at end of file + return entry diff --git a/systems/aws-pcluster/system.py b/systems/aws-pcluster/system.py index bed24f431..458548d2b 100644 --- a/systems/aws-pcluster/system.py +++ b/systems/aws-pcluster/system.py @@ -103,11 +103,13 @@ def compute_packages_section(self): def compute_compilers_section(self): return compiler_section_for( "gcc", - [compiler_def( - "gcc@7.3.1 languages=c,c++,fortran", - "/usr/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} - )] + [ + compiler_def( + "gcc@7.3.1 languages=c,c++,fortran", + "/usr/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + ) + ], ) def compute_software_section(self): diff --git a/systems/csc-lumi/system.py b/systems/csc-lumi/system.py index 0f41887f3..d9e48fbb4 100644 --- a/systems/csc-lumi/system.py +++ b/systems/csc-lumi/system.py @@ -172,61 +172,67 @@ def compute_compilers_section(self): def rocmcc_cfg(self): return compiler_section_for( "llvm-amdgpu", - [compiler_def( - f"llvm-amdgpu@{self.rocm_version}", - f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/", - {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, - env={ - "set": {"RFE_811452_DISABLE": "1"}, - "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib", - "LIBRARY_PATH": f"/appl/lumi/SW/CrayEnv/EB/rocm/5.6.1/lib:/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", + [ + compiler_def( + f"llvm-amdgpu@{self.rocm_version}", + f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/", + {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, + env={ + "set": {"RFE_811452_DISABLE": "1"}, + "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib", + "LIBRARY_PATH": f"/appl/lumi/SW/CrayEnv/EB/rocm/5.6.1/lib:/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", + }, }, - }, - extra_rpaths=[ - f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib", - f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", - "/opt/cray/pe/gcc-libs", - ], - )] + extra_rpaths=[ + f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib", + f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/lib64", + "/opt/cray/pe/gcc-libs", + ], + ) + ], ) def cce_compiler_cfg(self): return compiler_section_for( "cce", - [compiler_def( - f"cce@{self.compiler_version}", - f"/opt/cray/pe/cce/{self.compiler_version}/", - {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, - env={ - "set": {"RFE_811452_DISABLE": "1"}, - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib" - }, - "append_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs", - "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", + [ + compiler_def( + f"cce@{self.compiler_version}", + f"/opt/cray/pe/cce/{self.compiler_version}/", + {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, + env={ + "set": {"RFE_811452_DISABLE": "1"}, + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib" + }, + "append_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs", + "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", + }, }, - }, - extra_rpaths=["/opt/cray/pe/gcc-libs"], - )] + extra_rpaths=["/opt/cray/pe/gcc-libs"], + ) + ], ) def gcc_compiler_cfg(self): return compiler_section_for( "gcc", - [compiler_def( - f"gcc@{self.compiler_version} languages:=c,c++,fortran", - f"/opt/cray/pe/gcc/{self.compiler_version}/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, - env={ - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib:/opt/cray/libfabric/1.15.2.0/lib64", - "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", - } - }, - )] + [ + compiler_def( + f"gcc@{self.compiler_version} languages:=c,c++,fortran", + f"/opt/cray/pe/gcc/{self.compiler_version}/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + env={ + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/pmi/6.1.12/lib:/opt/cray/libfabric/1.15.2.0/lib64", + "PKG_CONFIG_PATH": "/usr/lib64/pkgconfig", + } + }, + ) + ], ) def rocm_config(self): @@ -331,7 +337,7 @@ def rocm_config(self): } ], }, - #"llvm-amdgpu": { + # "llvm-amdgpu": { # "buildable": False, # "externals": [ # { @@ -339,198 +345,197 @@ def rocm_config(self): # "spec": f"llvm-amdgpu@{self.rocm_version}", # } # ], - }, - "rccl": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rccl@{self.rocm_version}", - } - ], - }, - "rocalution": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocalution@{self.rocm_version}", - } - ], - }, - "rocblas": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocblas@{self.rocm_version}", - } - ], - }, - "rocfft": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocfft@{self.rocm_version}", - } - ], - "variants": "amdgpu_target=auto amdgpu_target_sram_ecc=auto", - }, - "rocm-clang-ocl": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocm-clang-ocl@{self.rocm_version}", - } - ], - }, - "rocm-cmake": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocm-cmake@{self.rocm_version}", - } - ], - }, - "rocm-device-libs": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocm-device-libs@{self.rocm_version}", - } - ], - }, - "rocm-gdb": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocm-gdb@{self.rocm_version}", - } - ], - }, - "rocm-opencl": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/opencl", - "spec": f"rocm-opencl@{self.rocm_version}", - } - ], - }, - "rocm-opencl-runtime": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/opencl", - "spec": f"rocm-opencl-runtime@{self.rocm_version}", - } - ], - }, - "rocm-openmp-extras": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/llvm", - "spec": f"rocm-openmp-extras@{self.rocm_version}", - } - ], - }, - "rocm-smi": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/rocm_smi", - "spec": f"rocmsmi@{self.rocm_version}", - } - ], - }, - "rocm-smi-lib": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/rocm_smi", - "spec": f"rocm-smi-lib@{self.rocm_version}", - } - ], - }, - "rocminfo": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocminfo@{self.rocm_version}", - } - ], - }, - "rocprim": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocprim@{self.rocm_version}", - } - ], - }, - "rocprofiler-dev": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocprofiler-dev@{self.rocm_version}", - } - ], - }, - "rocrand": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocrand@{self.rocm_version}", - } - ], - }, - "rocsolver": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocsolver@{self.rocm_version}", - } - ], - }, - "rocsparse": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocsparse@{self.rocm_version}", - } - ], - }, - "rocthrust": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"rocthrust@{self.rocm_version}", - } - ], - }, - "roctracer-dev": { - "buildable": False, - "externals": [ - { - "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", - "spec": f"roctracer-dev@{self.rocm_version}", - } - ], - }, - } + }, + "rccl": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rccl@{self.rocm_version}", + } + ], + }, + "rocalution": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocalution@{self.rocm_version}", + } + ], + }, + "rocblas": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocblas@{self.rocm_version}", + } + ], + }, + "rocfft": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocfft@{self.rocm_version}", + } + ], + "variants": "amdgpu_target=auto amdgpu_target_sram_ecc=auto", + }, + "rocm-clang-ocl": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocm-clang-ocl@{self.rocm_version}", + } + ], + }, + "rocm-cmake": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocm-cmake@{self.rocm_version}", + } + ], + }, + "rocm-device-libs": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocm-device-libs@{self.rocm_version}", + } + ], + }, + "rocm-gdb": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocm-gdb@{self.rocm_version}", + } + ], + }, + "rocm-opencl": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/opencl", + "spec": f"rocm-opencl@{self.rocm_version}", + } + ], + }, + "rocm-opencl-runtime": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/opencl", + "spec": f"rocm-opencl-runtime@{self.rocm_version}", + } + ], + }, + "rocm-openmp-extras": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/llvm", + "spec": f"rocm-openmp-extras@{self.rocm_version}", + } + ], + }, + "rocm-smi": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/rocm_smi", + "spec": f"rocmsmi@{self.rocm_version}", + } + ], + }, + "rocm-smi-lib": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}/rocm_smi", + "spec": f"rocm-smi-lib@{self.rocm_version}", + } + ], + }, + "rocminfo": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocminfo@{self.rocm_version}", + } + ], + }, + "rocprim": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocprim@{self.rocm_version}", + } + ], + }, + "rocprofiler-dev": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocprofiler-dev@{self.rocm_version}", + } + ], + }, + "rocrand": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocrand@{self.rocm_version}", + } + ], + }, + "rocsolver": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocsolver@{self.rocm_version}", + } + ], + }, + "rocsparse": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocsparse@{self.rocm_version}", + } + ], + }, + "rocthrust": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"rocthrust@{self.rocm_version}", + } + ], + }, + "roctracer-dev": { + "buildable": False, + "externals": [ + { + "prefix": f"/appl/lumi/SW/CrayEnv/EB/rocm/{self.rocm_version}", + "spec": f"roctracer-dev@{self.rocm_version}", + } + ], + }, } def compute_software_section(self): diff --git a/systems/cscs-daint/system.py b/systems/cscs-daint/system.py index 78cd258a0..66f681adc 100644 --- a/systems/cscs-daint/system.py +++ b/systems/cscs-daint/system.py @@ -145,73 +145,87 @@ def compute_compilers_section(self): compiler_map = {} compiler_map["cce"] = compiler_section_for( "cce", - [compiler_def( - "cce@12.0.3", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-cray", "cce/12.0.3"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "cce@12.0.3", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-cray", "cce/12.0.3"], + compilers_use_relative_paths=True, + ) + ], ) compiler_map["gcc9"] = compiler_section_for( "gcc", - [compiler_def( - "gcc@9.3.0 languages:=c,c++,fortran", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-gnu", "gcc/9.3.0"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "gcc@9.3.0 languages:=c,c++,fortran", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/9.3.0"], + compilers_use_relative_paths=True, + ) + ], ) compiler_map["gcc10"] = compiler_section_for( "gcc", - [compiler_def( - "gcc@10.3.0 languages:=c,c++,fortran", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-gnu", "gcc/10.3.0"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "gcc@10.3.0 languages:=c,c++,fortran", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/10.3.0"], + compilers_use_relative_paths=True, + ) + ], ) compiler_map["gcc11"] = compiler_section_for( "gcc", - [compiler_def( - "gcc@11.2.0 languages:=c,c++,fortran", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-gnu", "gcc/11.2.0"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "gcc@11.2.0 languages:=c,c++,fortran", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/11.2.0"], + compilers_use_relative_paths=True, + ) + ], ) compiler_map["intel"] = compiler_section_for( "intel-oneapi-compilers", - [compiler_def( - "intel-oneapi-compilers@2021.3.0", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-intel", "intel/2021.3.0"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "intel-oneapi-compilers@2021.3.0", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-intel", "intel/2021.3.0"], + compilers_use_relative_paths=True, + ) + ], ) compiler_map["pgi"] = compiler_section_for( "pgi", - [compiler_def( - "pgi@20.1.1", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-pgi", "pgi/20.1.1"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "pgi@20.1.1", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-pgi", "pgi/20.1.1"], + compilers_use_relative_paths=True, + ) + ], ) compiler_map["nvhpc"] = compiler_section_for( "nvhpc", - [compiler_def( - "nvhpc@21.3", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-nvidia", "nvidia/21.3"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "nvhpc@21.3", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-nvidia", "nvidia/21.3"], + compilers_use_relative_paths=True, + ) + ], ) collected = list() @@ -221,8 +235,6 @@ def compute_compilers_section(self): collected.append(cfg) return merge_dicts(collected) - - def cuda_config(self, cuda_version): if cuda_version == "10.2.89": return { diff --git a/systems/cscs-eiger/system.py b/systems/cscs-eiger/system.py index 1ea3db5bd..69862333c 100644 --- a/systems/cscs-eiger/system.py +++ b/systems/cscs-eiger/system.py @@ -44,13 +44,15 @@ def __init__(self, spec): def compute_compilers_section(self): return compiler_section_for( "gcc", - [compiler_def( - "gcc@12.3.0 languages:=c,c++,fortran", - "/path/is/now/needed/", # <-- TODO: this needs to be filled in - {"c": "cc", "cxx": "CC", "fortran": "ftn"}, - modules=["PrgEnv-gnu", "gcc/12.3.0"], - compilers_use_relative_paths=True, - )] + [ + compiler_def( + "gcc@12.3.0 languages:=c,c++,fortran", + "/path/is/now/needed/", # <-- TODO: this needs to be filled in + {"c": "cc", "cxx": "CC", "fortran": "ftn"}, + modules=["PrgEnv-gnu", "gcc/12.3.0"], + compilers_use_relative_paths=True, + ) + ], ) def compute_packages_section(self): diff --git a/systems/jsc-juwels/system.py b/systems/jsc-juwels/system.py index ac7ea5dd1..2832cb384 100644 --- a/systems/jsc-juwels/system.py +++ b/systems/jsc-juwels/system.py @@ -62,23 +62,27 @@ def __init__(self, spec): def compute_compilers_section(self): nvhpc_cfg = compiler_section_for( "nvhpc", - [compiler_def( - "nvhpc@23.7", - "/p/software/juwelsbooster/stages/2024/software/NVHPC/23.7-CUDA-12/Linux_aarch64/23.7/compilers/", - {"c": "nvc", "cxx": "nvc++", "fortran": "nvfortran"}, - modules=["Stages/2024", "NVHPC/23.7"], - )] + [ + compiler_def( + "nvhpc@23.7", + "/p/software/juwelsbooster/stages/2024/software/NVHPC/23.7-CUDA-12/Linux_aarch64/23.7/compilers/", + {"c": "nvc", "cxx": "nvc++", "fortran": "nvfortran"}, + modules=["Stages/2024", "NVHPC/23.7"], + ) + ], ) if self.spec.satisfies("compiler=gcc"): gcc_cfg = compiler_section_for( "gcc", - [compiler_def( - "gcc@12.3.0 languages:=c,c++,fortran", - "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, - modules=["Stages/2024", "GCC/12.3.0"], - )] + [ + compiler_def( + "gcc@12.3.0 languages:=c,c++,fortran", + "/p/software/juwelsbooster/stages/2024/software/GCCcore/12.3.0/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + modules=["Stages/2024", "GCC/12.3.0"], + ) + ], ) cfg = merge_dicts(nvhpc_cfg, gcc_cfg) else: diff --git a/systems/lanl-venado/system.py b/systems/lanl-venado/system.py index 7790f5390..9e42841b6 100644 --- a/systems/lanl-venado/system.py +++ b/systems/lanl-venado/system.py @@ -169,40 +169,44 @@ def compute_packages_section(self): def compute_compilers_section(self): gcc_cfg = compiler_section_for( "gcc", - [compiler_def( - "gcc@12.3.0 languages:=c,c++,fortran", - "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} - )] + [ + compiler_def( + "gcc@12.3.0 languages:=c,c++,fortran", + "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + ) + ], ) # TODO: Construct/extract/customize compiler information from the working set if self.spec.satisfies("compiler=cce"): cce_cfg = compiler_section_for( "cce", - [compiler_def( - "cce@18.0.0", - "/opt/cray/pe/cce/18.0.0/", - {"c": "cracc", "cxx": "crayCC", "fortran": "crayftn"}, - flags={ - "cflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", - "cxxflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", - "fflags": "-g -O2 -hnopattern", - "ldflags": "-ldl", - }, - env={ - "prepend_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib:/opt/cray/libfabric/1.20.1/lib64:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64:/opt/cray/pe/gcc-libs" - } - }, - extra_rpaths=[ - "/opt/cray/pe/gcc-libs", - "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib", - "/opt/cray/libfabric/1.20.1/lib64", - "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib", - "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64", - ], - )] + [ + compiler_def( + "cce@18.0.0", + "/opt/cray/pe/cce/18.0.0/", + {"c": "cracc", "cxx": "crayCC", "fortran": "crayftn"}, + flags={ + "cflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", + "cxxflags": "-g -O2 --gcc-toolchain=/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0", + "fflags": "-g -O2 -hnopattern", + "ldflags": "-ldl", + }, + env={ + "prepend_path": { + "LD_LIBRARY_PATH": "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib:/opt/cray/libfabric/1.20.1/lib64:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib:/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64:/opt/cray/pe/gcc-libs" + } + }, + extra_rpaths=[ + "/opt/cray/pe/gcc-libs", + "/opt/cray/pe/cce/18.0.0/cce/aarch64/lib", + "/opt/cray/libfabric/1.20.1/lib64", + "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib", + "/usr/projects/hpcsoft/tce/24-07/cos3-aarch64-cc90/compilers/gcc/12.3.0/lib64", + ], + ) + ], ) cfg = merge_dicts(gcc_cfg, cce_cfg) else: diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 3e74ce93b..06d1305fb 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -221,39 +221,49 @@ def compute_compilers_section(self): if self.spec.satisfies("compiler=gcc"): cfg = compiler_section_for( "gcc", - [compiler_def( - "gcc@12.1.1 languages:=c,c++,fortran", - "/usr/tce/packages/gcc/gcc-12.1.1/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} - )] + [ + compiler_def( + "gcc@12.1.1 languages:=c,c++,fortran", + "/usr/tce/packages/gcc/gcc-12.1.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + ) + ], ) elif self.spec.satisfies("compiler=intel"): cfg = compiler_section_for( "intel-oneapi-compilers-classic", - [compiler_def( - "intel-oneapi-compilers-classic@2021.6.0~envmods", - "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/", - {"c": "icc", "cxx": "icpc", "fortran": "ifort"} - )] + [ + compiler_def( + "intel-oneapi-compilers-classic@2021.6.0~envmods", + "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/", + {"c": "icc", "cxx": "icpc", "fortran": "ifort"}, + ) + ], ) elif self.spec.satisfies("compiler=oneapi"): gcc_cfg = compiler_section_for( "gcc", - [compiler_def( - "gcc@12.1.1", - "/usr/tce/packages/gcc/gcc-12.1.1/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} - )] + [ + compiler_def( + "gcc@12.1.1", + "/usr/tce/packages/gcc/gcc-12.1.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + ) + ], ) oneapi_cfg = compiler_section_for( "intel-oneapi-compilers", - [compiler_def( - "intel-oneapi-compilers@2023.2.1~envmods", - "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/", - {"c": "icx", "cxx": "icpx", "fortran": "ifx"} - )] + [ + compiler_def( + "intel-oneapi-compilers@2023.2.1~envmods", + "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/", + {"c": "icx", "cxx": "icpx", "fortran": "ifx"}, + ) + ], ) - weighting_cfg = {"packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}}} + weighting_cfg = { + "packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}} + } cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) return cfg diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index ca811e83b..3de7cf35a 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -312,11 +312,13 @@ def compiler_weighting_cfg(self): def compute_compilers_section(self): cfg = compiler_section_for( "gcc", - [compiler_def( - "gcc@12.2.0 languages=c,c++,fortran", - "/opt/cray/pe/gcc/12.2.0/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} - )] + [ + compiler_def( + "gcc@12.2.0 languages=c,c++,fortran", + "/opt/cray/pe/gcc/12.2.0/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + ) + ], ) if self.spec.satisfies("compiler=cce") or self.spec.satisfies( @@ -579,7 +581,7 @@ def rocm_config(self): ], "buildable": False, }, - #"llvm-amdgpu": { + # "llvm-amdgpu": { # "externals": [ # { # "spec": f"llvm-amdgpu@{self.rocm_version}", @@ -587,7 +589,7 @@ def rocm_config(self): # } # ], # "buildable": False, - #}, + # }, "rocblas": { "externals": [ { @@ -630,9 +632,7 @@ def rocm_cce_compiler_cfg(self): extra_rpaths=rpaths, env={ "set": {"RFE_811452_DISABLE": "1"}, - "append_path": { - "LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs" - }, + "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, "prepend_path": { "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", @@ -657,11 +657,10 @@ def rocm_cce_compiler_cfg(self): "cxxflags": "-g -O2 -std=c++14", "fflags": "-g -O2 -hnopattern", "ldflags": "-ldl", - } + }, ) return compiler_section_for("cce", [entry]) - def system_specific_variables(self): opts = super().system_specific_variables() # MI300A modes diff --git a/systems/llnl-matrix/system.py b/systems/llnl-matrix/system.py index 24d2418c4..206582360 100644 --- a/systems/llnl-matrix/system.py +++ b/systems/llnl-matrix/system.py @@ -214,38 +214,46 @@ def compute_packages_section(self): def compute_compilers_section(self): gcc_cfg = compiler_section_for( "gcc", - [compiler_def( - "gcc@12.1.1 languages:=c,c++,fortran", - "/usr/tce/packages/gcc/gcc-12.1.1/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"} - )] + [ + compiler_def( + "gcc@12.1.1 languages:=c,c++,fortran", + "/usr/tce/packages/gcc/gcc-12.1.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + ) + ], ) if self.spec.satisfies("compiler=gcc"): cfg = gcc_cfg elif self.spec.satisfies("compiler=intel"): cfg = compiler_section_for( "intel-oneapi-compilers-classic", - [compiler_def( - "intel-oneapi-compilers-classic@2021.6.0 ~envmods", - "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/", - {"c": "icc", "cxx": "icpc", "fortran": "ifort"} - )] + [ + compiler_def( + "intel-oneapi-compilers-classic@2021.6.0 ~envmods", + "/usr/tce/packages/intel-classic/intel-classic-2021.6.0/", + {"c": "icc", "cxx": "icpc", "fortran": "ifort"}, + ) + ], ) elif self.spec.satisfies("compiler=oneapi"): oneapi_cfg = compiler_section_for( "intel-oneapi-compilers", - [compiler_def( - "intel-oneapi-compilers@2023.2.1 ~envmods", - "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/", - {"c": "icx", "cxx": "icpx", "fortran": "ifx"}, - modules=[ - f"cuda/{self.cuda_version}", - ], - )] + [ + compiler_def( + "intel-oneapi-compilers@2023.2.1 ~envmods", + "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/", + {"c": "icx", "cxx": "icpx", "fortran": "ifx"}, + modules=[ + f"cuda/{self.cuda_version}", + ], + ) + ], ) # In this case 2 compilers are defined: create a preference for # oneAPI compiler - weighting_cfg = {"packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}}} + weighting_cfg = { + "packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}} + } cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) return cfg diff --git a/systems/llnl-sierra/system.py b/systems/llnl-sierra/system.py index 378ff9253..40eca1d89 100644 --- a/systems/llnl-sierra/system.py +++ b/systems/llnl-sierra/system.py @@ -6,7 +6,13 @@ from benchpark.directives import variant, maintainers from benchpark.cudasystem import CudaSystem from benchpark.paths import hardware_descriptions -from benchpark.system import System, compiler_def, compiler_section_for, merge_dicts, hybrid_compiler_requirements +from benchpark.system import ( + System, + compiler_def, + compiler_section_for, + merge_dicts, + hybrid_compiler_requirements, +) from packaging.version import Version @@ -432,56 +438,67 @@ def compute_compilers_section(self): if (compiler, cuda_ver) == ("clang-ibm", "11-8-0"): cfg1 = compiler_section_for( "clang", - [compiler_def( - "clang@16.0.6", - "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", - {"c": "clang", "cxx": "clang++"}, - flags=flags, - modules=cuda_modules + ["clang/ibm-16.0.6-cuda-11.8.0-gcc-11.2.1"], - )] + [ + compiler_def( + "clang@16.0.6", + "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", + {"c": "clang", "cxx": "clang++"}, + flags=flags, + modules=cuda_modules + + ["clang/ibm-16.0.6-cuda-11.8.0-gcc-11.2.1"], + ) + ], ) cfg2 = compiler_section_for( "xl", - [compiler_def( - "xl@2023.06.28", - "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/", - {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, - flags=flags, - )] + [ + compiler_def( + "xl@2023.06.28", + "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + ) + ], ) cfg = merge_dicts(cfg1, cfg2, hybrid_compiler_requirements("llvm", "xl")) elif (compiler, cuda_ver) == ("xl-gcc", "11-8-0"): cfg = compiler_section_for( "xl", - [compiler_def( - "xl@2023.06.28", - "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/", - {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, - flags=flags, - modules=cuda_modules + ["xl/2023.06.28-cuda-11.8.0-gcc-11.2.1"], - )] + [ + compiler_def( + "xl@2023.06.28", + "/usr/tce/packages/xl/xl-2023.06.28-cuda-11.8.0-gcc-11.2.1/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + modules=cuda_modules + ["xl/2023.06.28-cuda-11.8.0-gcc-11.2.1"], + ) + ], ) elif (compiler, cuda_ver) == ("xl", "10-1-243"): cfg = compiler_section_for( "xl", - [compiler_def( - "xl@16.1.1-2022.08.19-cuda10.1.243", - "/usr/tce/packages/xl/xl-2022.08.19/", - {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, - flags=flags, - modules=cuda_modules + ["xl/2022.08.19"], - )] + [ + compiler_def( + "xl@16.1.1-2022.08.19-cuda10.1.243", + "/usr/tce/packages/xl/xl-2022.08.19/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + modules=cuda_modules + ["xl/2022.08.19"], + ) + ], ) elif (compiler, cuda_ver) == ("xl", "11-8-0"): cfg = compiler_section_for( "xl", - [compiler_def( - "xl@16.1.1-2022.08.19-cuda11.8.0", - "/usr/tce/packages/xl/xl-2022.08.19-cuda-11.8.0/", - {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, - flags=flags, - modules=cuda_modules + ["xl/2022.08.19-cuda-11.8.0"], - )] + [ + compiler_def( + "xl@16.1.1-2022.08.19-cuda11.8.0", + "/usr/tce/packages/xl/xl-2022.08.19-cuda-11.8.0/", + {"c": "xlc", "cxx": "xlC", "fortran": "xlf"}, + flags=flags, + modules=cuda_modules + ["xl/2022.08.19-cuda-11.8.0"], + ) + ], ) elif (compiler, cuda_ver) == ("clang", "11-8-0"): custom_flags = { @@ -490,21 +507,25 @@ def compute_compilers_section(self): } cfg1 = compiler_section_for( "clang", - [compiler_def( - "clang@16.0.6", - "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", - {"c": "clang", "cxx": "clang++"}, - flags=custom_flags, - )] + [ + compiler_def( + "clang@16.0.6", + "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", + {"c": "clang", "cxx": "clang++"}, + flags=custom_flags, + ) + ], ) cfg2 = compiler_section_for( "gcc", - [compiler_def( - "gcc@11.2.1 languages:=c,c++,fortran", - "/usr/tce/packages/gcc/gcc-11.2.1/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, - flags=custom_flags, - )] + [ + compiler_def( + "gcc@11.2.1 languages:=c,c++,fortran", + "/usr/tce/packages/gcc/gcc-11.2.1/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + flags=custom_flags, + ) + ], ) cfg = merge_dicts(cfg1, cfg2, hybrid_compiler_requirements("llvm", "gcc")) diff --git a/systems/riken-fugaku/system.py b/systems/riken-fugaku/system.py index 53205a733..58b2be062 100644 --- a/systems/riken-fugaku/system.py +++ b/systems/riken-fugaku/system.py @@ -563,54 +563,60 @@ def compute_compilers_section(self): } cfg = compiler_section_for( "llvm", - [compiler_def( - "llvm@17.0.2", - "/vol0004/apps/oss/llvm-v17.0.2/compute_node/", - {"c": "clang", "cxx": "clang++", "fortran": "flang"}, - env={ - "append_path": { - "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" - } - }, - #flags = maybe_flags - )] + [ + compiler_def( + "llvm@17.0.2", + "/vol0004/apps/oss/llvm-v17.0.2/compute_node/", + {"c": "clang", "cxx": "clang++", "fortran": "flang"}, + env={ + "append_path": { + "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" + } + }, + # flags = maybe_flags + ) + ], ) elif compiler == "gcc": cfg = compiler_section_for( "gcc", - [compiler_def( - "gcc@13.2.0 languages:=c,c++,fortran", - "/vol0004/apps/oss/spack-v0.21/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-13.2.0-abihbe7ykvpedq54j6blfvfppy7ojbmd/", - {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, - env={ - "set": { - "OPAL_PREFIX": "/vol0004/apps/oss/mpigcc/fjmpi-gcc12" - }, - "append_path": { - "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" + [ + compiler_def( + "gcc@13.2.0 languages:=c,c++,fortran", + "/vol0004/apps/oss/spack-v0.21/opt/spack/linux-rhel8-a64fx/gcc-8.5.0/gcc-13.2.0-abihbe7ykvpedq54j6blfvfppy7ojbmd/", + {"c": "gcc", "cxx": "g++", "fortran": "gfortran"}, + env={ + "set": { + "OPAL_PREFIX": "/vol0004/apps/oss/mpigcc/fjmpi-gcc12" + }, + "append_path": { + "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64" + }, }, - }, - flags={"ldflags": {"-lelf -ldl"}}, - )] + flags={"ldflags": {"-lelf -ldl"}}, + ) + ], ) elif compiler == "fj": cfg = compiler_section_for( "fj", - [compiler_def( - "fj@4.10.0", - "/opt/FJSVxtclanga/tcsds-1.2.38/", - {"c": "fcc", "cxx": "FCC", "fortran": "frt"}, - env={ - "set": { - "fcc_ENV": "-Nclang", - "FCC_ENV": "-Nclang", - }, - "prepend_path": { - "PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/bin", - "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64", + [ + compiler_def( + "fj@4.10.0", + "/opt/FJSVxtclanga/tcsds-1.2.38/", + {"c": "fcc", "cxx": "FCC", "fortran": "frt"}, + env={ + "set": { + "fcc_ENV": "-Nclang", + "FCC_ENV": "-Nclang", + }, + "prepend_path": { + "PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/bin", + "LD_LIBRARY_PATH": "/opt/FJSVxtclanga/tcsds-1.2.38/lib64", + }, }, - }, - )] + ) + ], ) return cfg From ced12fa5d66ebe8b2bdbb54b854c347efb22e8b7 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 6 Aug 2025 17:14:16 -0700 Subject: [PATCH 25/75] non-auto style fix --- systems/llnl-elcapitan/system.py | 1 - systems/riken-fugaku/system.py | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 3de7cf35a..f148345ee 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -621,7 +621,6 @@ def rocm_cce_compiler_cfg(self): if self.spec.variants["cluster"][0] == "tioga": rpaths.append(f"/opt/cray/pe/cce/{self.cce_version}/cce-clang/x86_64/lib/") - compilers = list() if self.spec.satisfies("compiler=rocmcc"): entry = compiler_def( f"llvm-amdgpu@{self.rocm_version}", diff --git a/systems/riken-fugaku/system.py b/systems/riken-fugaku/system.py index 58b2be062..82115bca5 100644 --- a/systems/riken-fugaku/system.py +++ b/systems/riken-fugaku/system.py @@ -555,12 +555,12 @@ def compute_compilers_section(self): compiler = self.spec.variants["compiler"][0] if compiler == "clang": - maybe_flags = { - "cflags": {"-msve-vector-bits=scalable"}, - "cxxflags": {"-msve-vector-bits=scalable"}, - "fflags": {"-msve-vector-bits=scalable"}, - "ldflags": {"-fuse-ld=lld"}, - } + # maybe_flags = { + # "cflags": {"-msve-vector-bits=scalable"}, + # "cxxflags": {"-msve-vector-bits=scalable"}, + # "fflags": {"-msve-vector-bits=scalable"}, + # "ldflags": {"-fuse-ld=lld"}, + # } cfg = compiler_section_for( "llvm", [ From 0b824862a6987ced6cbcf5538e17caac3f36bb3f Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 6 Aug 2025 17:27:07 -0700 Subject: [PATCH 26/75] generix-x86 system generates no package config: fix packages.yaml generation and dont make it override anything --- lib/benchpark/system.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index ecbc76b80..8c122ccdc 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -150,7 +150,10 @@ def compute_dict(self): pkg_cfg = merge_dicts(pkg_cfg, compiler_cfg) # "'packages:':" syntax is required to enforce spack to use benchpark-defined # compilers instead of external compilers defined by spack compiler search (from ramble). - pkg_cfg = {"packages:": pkg_cfg["packages"]} + if pkg_cfg: + pkg_cfg = {"packages:": pkg_cfg["packages"]} + else: + pkg_cfg = {"packages": {}} return { "system_id": self.compute_system_id(), "variables": self.compute_variables_section(), From c31b5fab40d355c5ecc9e18b0dcaffbafc853566 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 6 Aug 2025 17:40:48 -0700 Subject: [PATCH 27/75] fix bad import (make it spack-1.0-compliant) --- repo/gromacs/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/gromacs/package.py b/repo/gromacs/package.py index 53b0c3ff8..42b2c297c 100644 --- a/repo/gromacs/package.py +++ b/repo/gromacs/package.py @@ -7,7 +7,7 @@ import llnl.util.filesystem as fs -import spack.build_systems.cmake +from spack_repo.builtin.build_systems.cmake import CMakePackage, CudaPackage, ROCmPackage from spack.package import * From 83f6d3d38700f8e6af10faa6b470ac6affecc4f2 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 6 Aug 2025 17:46:18 -0700 Subject: [PATCH 28/75] messed up cfg merge for cscs-daint --- systems/cscs-daint/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systems/cscs-daint/system.py b/systems/cscs-daint/system.py index 66f681adc..74df88a5f 100644 --- a/systems/cscs-daint/system.py +++ b/systems/cscs-daint/system.py @@ -233,7 +233,7 @@ def compute_compilers_section(self): for key, cfg in compiler_map.items(): if key in compiler_variant: collected.append(cfg) - return merge_dicts(collected) + return merge_dicts(*collected) def cuda_config(self, cuda_version): if cuda_version == "10.2.89": From 5fb230859eb5a93033a0801a897e4ce670394a48 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 6 Aug 2025 17:51:09 -0700 Subject: [PATCH 29/75] more gromacs import fixing --- repo/gromacs/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repo/gromacs/package.py b/repo/gromacs/package.py index 42b2c297c..a31bdbaf4 100644 --- a/repo/gromacs/package.py +++ b/repo/gromacs/package.py @@ -7,7 +7,9 @@ import llnl.util.filesystem as fs -from spack_repo.builtin.build_systems.cmake import CMakePackage, CudaPackage, ROCmPackage +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * From 0851a59cb852f017a524534253ecd13b47db0552 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 6 Aug 2025 18:13:28 -0700 Subject: [PATCH 30/75] another import issue w/gromacs --- repo/gromacs/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repo/gromacs/package.py b/repo/gromacs/package.py index a31bdbaf4..41c840403 100644 --- a/repo/gromacs/package.py +++ b/repo/gromacs/package.py @@ -7,7 +7,7 @@ import llnl.util.filesystem as fs -from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cmake import CMakePackage, CMakeBuilder from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * @@ -432,7 +432,7 @@ def setup_build_environment(self, env): for rpath in self.compiler.extra_rpaths: env.prepend_path("LD_LIBRARY_PATH", rpath) -class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder): +class CMakeBuilder(CMakeBuilder): @run_after("build") def build_test_binaries(self): """Build the test binaries. From d905c1d43ee4aee45b86951b47b0fd58f99ec8f9 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 7 Aug 2025 11:36:25 -0700 Subject: [PATCH 31/75] branson import issue --- repo/branson/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/branson/package.py b/repo/branson/package.py index 8b662e0eb..b8610b09a 100644 --- a/repo/branson/package.py +++ b/repo/branson/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack.pkg.builtin.boost import Boost +from spack_repo.builtin.packages.boost.package import Boost class Branson(CMakePackage): From 27e28bc3ba6e82788b0209fc97b320e2f504db75 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 7 Aug 2025 16:16:10 -0700 Subject: [PATCH 32/75] need llvm-amdgpu external always; dont force compiler requirement on externals --- lib/benchpark/system.py | 2 +- systems/llnl-elcapitan/system.py | 55 ++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/lib/benchpark/system.py b/lib/benchpark/system.py index 8c122ccdc..9cce1a524 100644 --- a/lib/benchpark/system.py +++ b/lib/benchpark/system.py @@ -221,7 +221,7 @@ def hybrid_compiler_requirements(c_cmp, f_cmp): def compiler_section_for(name, entries): - return {"packages": {name: {"externals": entries}}} + return {"packages": {name: {"externals": entries, "buildable": False}}} def compiler_def( diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index f148345ee..4b87f801e 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -301,11 +301,11 @@ def compiler_weighting_cfg(self): compiler = self.spec.variants["compiler"][0] if compiler == "cce": - return {"packages": {"all": {"require": [{"one_of": ["%cce", "%gcc"]}]}}} + return {"packages": {"all": {"require": [{"one_of": ["%cce", "%gcc", "@:"]}]}}} elif compiler == "gcc": return {"packages": {}} elif compiler == "rocmcc": - return {"packages": {"all": {"require": [{"one_of": ["%rocmcc", "%gcc"]}]}}} + return {"packages": {"all": {"require": [{"one_of": ["%rocmcc", "%gcc", "@:"]}]}}} else: raise ValueError(f"Unexpected value for compiler: {compiler}") @@ -621,8 +621,11 @@ def rocm_cce_compiler_cfg(self): if self.spec.variants["cluster"][0] == "tioga": rpaths.append(f"/opt/cray/pe/cce/{self.cce_version}/cce-clang/x86_64/lib/") - if self.spec.satisfies("compiler=rocmcc"): - entry = compiler_def( + cfgs = [] + # Always need an instance of llvm-gpu as an external. Sometimes as a compiler + # and sometimes just for ROCm support + rocmcc_cfg = compiler_section_for("llvm-amdgpu", + compiler_def( f"llvm-amdgpu@{self.rocm_version}", f"/opt/rocm-{self.rocm_version}/", {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, @@ -638,27 +641,31 @@ def rocm_cce_compiler_cfg(self): }, }, ) - return compiler_section_for("llvm-amdgpu", [entry]) - else: - entry = compiler_def( - f"cce@{self.cce_version}-rocm{self.rocm_version}", - f"/opt/cray/pe/cce/{self.cce_version}/", - {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, - modules=[f"cce/{self.cce_version}"], - extra_rpaths=rpaths, - env={ - "prepend_path": { - "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" - } - }, - flags={ - "cflags": "-g -O2", - "cxxflags": "-g -O2 -std=c++14", - "fflags": "-g -O2 -hnopattern", - "ldflags": "-ldl", - }, + ) + cfgs.append(rocmcc_cfg) + if self.spec.satisfies("compiler=cce"): + cce_cfg = compiler_section_for("cce", + compiler_def( + f"cce@{self.cce_version}-rocm{self.rocm_version}", + f"/opt/cray/pe/cce/{self.cce_version}/", + {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, + modules=[f"cce/{self.cce_version}"], + extra_rpaths=rpaths, + env={ + "prepend_path": { + "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" + } + }, + flags={ + "cflags": "-g -O2", + "cxxflags": "-g -O2 -std=c++14", + "fflags": "-g -O2 -hnopattern", + "ldflags": "-ldl", + }, + ) ) - return compiler_section_for("cce", [entry]) + cfgs.append(cce_cfg) + return merge_dicts(*cfgs) def system_specific_variables(self): opts = super().system_specific_variables() From 3a0a809c6e9a95499b46a22caa92e8e5d37f683f Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 7 Aug 2025 16:18:36 -0700 Subject: [PATCH 33/75] auto format --- systems/llnl-elcapitan/system.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 4b87f801e..52b55c84e 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -301,11 +301,17 @@ def compiler_weighting_cfg(self): compiler = self.spec.variants["compiler"][0] if compiler == "cce": - return {"packages": {"all": {"require": [{"one_of": ["%cce", "%gcc", "@:"]}]}}} + return { + "packages": {"all": {"require": [{"one_of": ["%cce", "%gcc", "@:"]}]}} + } elif compiler == "gcc": return {"packages": {}} elif compiler == "rocmcc": - return {"packages": {"all": {"require": [{"one_of": ["%rocmcc", "%gcc", "@:"]}]}}} + return { + "packages": { + "all": {"require": [{"one_of": ["%rocmcc", "%gcc", "@:"]}]} + } + } else: raise ValueError(f"Unexpected value for compiler: {compiler}") @@ -624,7 +630,8 @@ def rocm_cce_compiler_cfg(self): cfgs = [] # Always need an instance of llvm-gpu as an external. Sometimes as a compiler # and sometimes just for ROCm support - rocmcc_cfg = compiler_section_for("llvm-amdgpu", + rocmcc_cfg = compiler_section_for( + "llvm-amdgpu", compiler_def( f"llvm-amdgpu@{self.rocm_version}", f"/opt/rocm-{self.rocm_version}/", @@ -640,11 +647,12 @@ def rocm_cce_compiler_cfg(self): "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", }, }, - ) + ), ) cfgs.append(rocmcc_cfg) if self.spec.satisfies("compiler=cce"): - cce_cfg = compiler_section_for("cce", + cce_cfg = compiler_section_for( + "cce", compiler_def( f"cce@{self.cce_version}-rocm{self.rocm_version}", f"/opt/cray/pe/cce/{self.cce_version}/", @@ -662,7 +670,7 @@ def rocm_cce_compiler_cfg(self): "fflags": "-g -O2 -hnopattern", "ldflags": "-ldl", }, - ) + ), ) cfgs.append(cce_cfg) return merge_dicts(*cfgs) From 29f176eed624e7ce0079ab0b98b06102a6cd5661 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 7 Aug 2025 16:52:29 -0700 Subject: [PATCH 34/75] using same list object twice causes alias in yaml dump --- systems/llnl-elcapitan/system.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 52b55c84e..5460b4359 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -638,7 +638,7 @@ def rocm_cce_compiler_cfg(self): {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, modules=[f"cce/{self.cce_version}"], flags={"cflags": "-g -O2", "cxxflags": "-g -O2"}, - extra_rpaths=rpaths, + extra_rpaths=list(rpaths), env={ "set": {"RFE_811452_DISABLE": "1"}, "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, @@ -658,7 +658,7 @@ def rocm_cce_compiler_cfg(self): f"/opt/cray/pe/cce/{self.cce_version}/", {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, modules=[f"cce/{self.cce_version}"], - extra_rpaths=rpaths, + extra_rpaths=list(rpaths), env={ "prepend_path": { "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" From f6a5c55575a25d3ce56def535b2874d8b2f41d8a Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 7 Aug 2025 20:58:13 -0700 Subject: [PATCH 35/75] rocm/cce configs need to be lists --- systems/llnl-elcapitan/system.py | 68 +++++++++++++++----------------- 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 5460b4359..b364df14d 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -630,49 +630,43 @@ def rocm_cce_compiler_cfg(self): cfgs = [] # Always need an instance of llvm-gpu as an external. Sometimes as a compiler # and sometimes just for ROCm support - rocmcc_cfg = compiler_section_for( - "llvm-amdgpu", - compiler_def( - f"llvm-amdgpu@{self.rocm_version}", - f"/opt/rocm-{self.rocm_version}/", - {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, + rocmcc_entry = compiler_def( + f"llvm-amdgpu@{self.rocm_version}", + f"/opt/rocm-{self.rocm_version}/", + {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, + modules=[f"cce/{self.cce_version}"], + flags={"cflags": "-g -O2", "cxxflags": "-g -O2"}, + extra_rpaths=list(rpaths), + env={ + "set": {"RFE_811452_DISABLE": "1"}, + "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, + "prepend_path": { + "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", + "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", + }, + }, + ) + cfgs.append(compiler_section_for("llvm-amdgpu", [rocmcc_entry])) + if self.spec.satisfies("compiler=cce"): + cce_entry = compiler_def( + f"cce@{self.cce_version}-rocm{self.rocm_version}", + f"/opt/cray/pe/cce/{self.cce_version}/", + {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, modules=[f"cce/{self.cce_version}"], - flags={"cflags": "-g -O2", "cxxflags": "-g -O2"}, extra_rpaths=list(rpaths), env={ - "set": {"RFE_811452_DISABLE": "1"}, - "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, "prepend_path": { - "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", - "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", - }, + "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" + } + }, + flags={ + "cflags": "-g -O2", + "cxxflags": "-g -O2 -std=c++14", + "fflags": "-g -O2 -hnopattern", + "ldflags": "-ldl", }, - ), - ) - cfgs.append(rocmcc_cfg) - if self.spec.satisfies("compiler=cce"): - cce_cfg = compiler_section_for( - "cce", - compiler_def( - f"cce@{self.cce_version}-rocm{self.rocm_version}", - f"/opt/cray/pe/cce/{self.cce_version}/", - {"c": "craycc", "cxx": "crayCC", "fortran": "crayftn"}, - modules=[f"cce/{self.cce_version}"], - extra_rpaths=list(rpaths), - env={ - "prepend_path": { - "LD_LIBRARY_PATH": f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib:/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" - } - }, - flags={ - "cflags": "-g -O2", - "cxxflags": "-g -O2 -std=c++14", - "fflags": "-g -O2 -hnopattern", - "ldflags": "-ldl", - }, - ), ) - cfgs.append(cce_cfg) + cfgs.append(compiler_section_for("cce", [cce_entry])) return merge_dicts(*cfgs) def system_specific_variables(self): From e0fd5147c0c6f71de3a6a59bc3766a9e118c3ae5 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 7 Aug 2025 22:02:19 -0700 Subject: [PATCH 36/75] kripke rocm arch specification --- repo/kripke/package.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/repo/kripke/package.py b/repo/kripke/package.py index 9db113b47..4b6463e16 100644 --- a/repo/kripke/package.py +++ b/repo/kripke/package.py @@ -126,8 +126,9 @@ def cmake_args(self): args.append("-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix)) rocm_archs = spec.variants["amdgpu_target"].value if "none" not in rocm_archs: - args.append("-DHIP_HIPCC_FLAGS=--amdgpu-target={0}".format(",".join(rocm_archs))) - args.append("-DCMAKE_HIP_ARCHITECTURES={0}".format(rocm_archs)) + arch_str = ",".join(rocm_archs) + args.append("-DHIP_HIPCC_FLAGS=--amdgpu-target={0}".format(arch_str)) + args.append("-DCMAKE_HIP_ARCHITECTURES={0}".format(arch_str)) else: # Ensure build with hip is disabled args.append("-DENABLE_HIP=OFF") From b81a836295ff0dfbf40a4d36c072f84ba845a7b7 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 7 Aug 2025 23:27:07 -0700 Subject: [PATCH 37/75] log all commands that are run to make it easier to replicate issues --- .gitlab/utils/run-experiment.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.gitlab/utils/run-experiment.sh b/.gitlab/utils/run-experiment.sh index 86d645718..8920ea51c 100755 --- a/.gitlab/utils/run-experiment.sh +++ b/.gitlab/utils/run-experiment.sh @@ -4,6 +4,19 @@ set -e # Activate Virtual Environment . /usr/workspace/benchpark-dev/benchpark-venv/$SYS_TYPE/bin/activate + +if [ "$HOST" == "lassen" ]; then + echo "./bin/benchpark system init --dest=${HOST} ${ARCHCONFIG} $SYSTEM_ARGS" +else + echo "./bin/benchpark system init --dest=${HOST} ${ARCHCONFIG} cluster=$HOST $SYSTEM_ARGS" +fi +echo "./bin/benchpark experiment init --dest=${BENCHMARK} ${BENCHMARK} ${VARIANT}" +echo "./bin/benchpark setup ${BENCHMARK} ${HOST} wkp/" +echo ". wkp/setup.sh" +echo "cd ./wkp/${BENCHMARK}/${HOST}/workspace/" +echo "ramble --disable-logger --workspace-dir . workspace setup" +echo "ramble --disable-logger --workspace-dir . on --executor '{execute_experiment}' --where '{n_nodes} == 1'" + # Initialize System if [ "$HOST" == "lassen" ]; then ./bin/benchpark system init --dest=${HOST} ${ARCHCONFIG} $SYSTEM_ARGS From 498ad0bc3cd4382cba2ed3c1f9390223ad2d0742 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 12 Aug 2025 11:15:15 -0700 Subject: [PATCH 38/75] auto style --- systems/llnl-cluster/system.py | 8 +++++++- systems/llnl-elcapitan/system.py | 8 +++++++- systems/llnl-matrix/system.py | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 485862fe4..b714473d5 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -5,7 +5,13 @@ from benchpark.directives import variant, maintainers -from benchpark.system import System, JobQueue, compiler_def, compiler_section_for, merge_dicts +from benchpark.system import ( + System, + JobQueue, + compiler_def, + compiler_section_for, + merge_dicts, +) from benchpark.openmpsystem import OpenMPCPUOnlySystem from benchpark.paths import hardware_descriptions diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 112f65576..5d1b3528d 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -7,7 +7,13 @@ from benchpark.directives import variant, maintainers from benchpark.paths import hardware_descriptions from benchpark.rocmsystem import ROCmSystem -from benchpark.system import System, JobQueue, compiler_def, compiler_section_for, merge_dicts +from benchpark.system import ( + System, + JobQueue, + compiler_def, + compiler_section_for, + merge_dicts, +) from benchpark.openmpsystem import OpenMPCPUOnlySystem from packaging.version import Version diff --git a/systems/llnl-matrix/system.py b/systems/llnl-matrix/system.py index 92cba4868..27a146f67 100644 --- a/systems/llnl-matrix/system.py +++ b/systems/llnl-matrix/system.py @@ -7,7 +7,13 @@ from benchpark.directives import variant, maintainers from benchpark.cudasystem import CudaSystem from benchpark.paths import hardware_descriptions -from benchpark.system import System, JobQueue, compiler_def, compiler_section_for, merge_dicts +from benchpark.system import ( + System, + JobQueue, + compiler_def, + compiler_section_for, + merge_dicts, +) from benchpark.openmpsystem import OpenMPCPUOnlySystem from packaging.version import Version From 5a531e130b2f38832612a1c39818ed6a2b07e9ef Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 12 Aug 2025 11:50:08 -0700 Subject: [PATCH 39/75] kripke should build w/ mpi --- experiments/kripke/experiment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 391e51467..cf008409d 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -132,4 +132,4 @@ def compute_package_section(self): if self.spec.variants["single_memory"][0] else "~single_memory" ) - self.add_package_spec(self.name, [f"kripke@{app_version} {single_memory} "]) + self.add_package_spec(self.name, [f"kripke@{app_version} {single_memory} +mpi"]) From c021299b584d36cdf481a08f0f55a697c5c67b76 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 14 Aug 2025 17:25:15 -0700 Subject: [PATCH 40/75] blt 0.7.0 is setting something that bypasses spack compiler wrappers, set 0.6.2 for llnl-elcap --- systems/llnl-elcapitan/system.py | 1 + 1 file changed, 1 insertion(+) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 5d1b3528d..39979d1fb 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -186,6 +186,7 @@ def compute_packages_section(self): selections = { "packages": { "all": {"require": [{"spec": "target=x86_64:"}]}, + "blt": {"require": "@0.6.2"}, "tar": {"externals": [{"spec": "tar@1.30", "prefix": "/usr"}]}, "coreutils": { "externals": [{"spec": "coreutils@8.30", "prefix": "/usr"}] From 6cae24071b90bbab85999f6d06a1d851a1fbc1dd Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 14 Aug 2025 17:44:53 -0700 Subject: [PATCH 41/75] hypre no longer has cublas variant --- repo/amg2023/package.py | 1 - 1 file changed, 1 deletion(-) diff --git a/repo/amg2023/package.py b/repo/amg2023/package.py index 602c0959a..bb42fa70b 100644 --- a/repo/amg2023/package.py +++ b/repo/amg2023/package.py @@ -37,7 +37,6 @@ class Amg2023(CMakePackage, CudaPackage, ROCmPackage): depends_on("hypre+mixedint~fortran") depends_on("hypre+cuda", when="+cuda") - depends_on("hypre+cublas", when="+cuda") depends_on("hypre+openmp", when="+openmp") requires("+cuda", when="^hypre+cuda") for arch in ("none", "50", "60", "70", "80", "90"): From 6be87af014017d35e747570d13940a53c6fcd6b0 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 14 Aug 2025 21:04:12 -0700 Subject: [PATCH 42/75] hypre fortran logic disabled for now; amg2023 needs cxx; hypre no longer has rocblas variant --- repo/amg2023/package.py | 2 +- repo/hypre/package.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/repo/amg2023/package.py b/repo/amg2023/package.py index bb42fa70b..a84466c4f 100644 --- a/repo/amg2023/package.py +++ b/repo/amg2023/package.py @@ -26,6 +26,7 @@ class Amg2023(CMakePackage, CudaPackage, ROCmPackage): variant("caliper", default=False, description="Enable Caliper monitoring") depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("mpi", when="+mpi") depends_on("hypre+mpi", when="+mpi") @@ -43,7 +44,6 @@ class Amg2023(CMakePackage, CudaPackage, ROCmPackage): depends_on(f"hypre cuda_arch={arch}", when=f"cuda_arch={arch}") depends_on("hypre+rocm", when="+rocm") - depends_on("hypre+rocblas", when="+rocm") requires("+rocm", when="^hypre+rocm") for target in ("none", "gfx803", "gfx900", "gfx906", "gfx908", "gfx90a", "gfx942"): depends_on(f"hypre amdgpu_target={target}", when=f"amdgpu_target={target}") diff --git a/repo/hypre/package.py b/repo/hypre/package.py index cc4df4523..89cf4eae9 100644 --- a/repo/hypre/package.py +++ b/repo/hypre/package.py @@ -21,8 +21,7 @@ class Hypre(BuiltinHypre): def configure_args(self): configure_args = super().configure_args() - if (self.compiler.fc and 'xlf' in self.compiler.fc) or (self.compiler.f77 and 'xlf' in self.compiler.f77): - if not "+fortran" in self.spec: + if False: configure_args.append("--with-fmangle=no-underscores") configure_args.append("--with-fmangle-blas=no-underscores") configure_args.append("--with-fmangle-lapack=no-underscores") From 0fe5b3037b6cddc4e9c650e6e916bde919073037 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 18 Aug 2025 15:37:11 -0700 Subject: [PATCH 43/75] update instructions based on changes to run-experiment script --- .gitlab/utils/run-experiment.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab/utils/run-experiment.sh b/.gitlab/utils/run-experiment.sh index 142ca736e..c87047928 100755 --- a/.gitlab/utils/run-experiment.sh +++ b/.gitlab/utils/run-experiment.sh @@ -10,12 +10,13 @@ if [ "$HOST" == "lassen" ]; then else echo "./bin/benchpark system init --dest=${HOST} ${ARCHCONFIG} cluster=$HOST $SYSTEM_ARGS" fi -echo "./bin/benchpark experiment init --dest=${BENCHMARK} ${BENCHMARK} ${VARIANT}" +echo "./bin/benchpark experiment init --dest=${BENCHMARK} --system=${HOST} ${BENCHMARK} ${VARIANT}" echo "./bin/benchpark setup ${BENCHMARK} ${HOST} wkp/" echo ". wkp/setup.sh" echo "cd ./wkp/${BENCHMARK}/${HOST}/workspace/" echo "ramble --disable-logger --workspace-dir . workspace setup" echo "ramble --disable-logger --workspace-dir . on --executor '{execute_experiment}' --where '{n_nodes} == 1'" +echo "ramble --disable-logger --workspace-dir . workspace analyze --format json yaml text" # Initialize System if [ "$HOST" == "lassen" ]; then From c9903cfd25cb21fd31bb563bd1ea84cf38528454 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 18 Aug 2025 15:40:24 -0700 Subject: [PATCH 44/75] laghos/hypre dependency updates --- repo/laghos/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repo/laghos/package.py b/repo/laghos/package.py index 1fddf215d..2adf767a1 100644 --- a/repo/laghos/package.py +++ b/repo/laghos/package.py @@ -52,7 +52,7 @@ class Laghos(MakefilePackage, CudaPackage, ROCmPackage): depends_on("mpi") depends_on("hypre+mpi") - depends_on("hypre+cuda+cublas+mpi", when="+cuda") + depends_on("hypre+cuda+mpi", when="+cuda") depends_on("hypre+mixedint~fortran", when="@develop") depends_on("hypre+caliper", when="+caliper") @@ -63,7 +63,7 @@ class Laghos(MakefilePackage, CudaPackage, ROCmPackage): depends_on("mfem +cuda+mpi", when="+cuda") depends_on("mfem +rocm+mpi", when="+rocm") - depends_on("hypre +rocm+rocblas +mpi", when="+rocm") + depends_on("hypre +rocm+mpi", when="+rocm") requires("+rocm", when="^hypre+rocm") for target in ("none", "gfx803", "gfx900", "gfx906", "gfx908", "gfx90a", "gfx942"): depends_on(f"hypre amdgpu_target={target}", when=f"amdgpu_target={target}") From 7988cfd6d9778e4cbb20147cfe8537d7e44ebad8 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 18 Aug 2025 16:07:43 -0700 Subject: [PATCH 45/75] llvm-amdgpu is the compiler and the package, need to reach into llvm/ subdir --- repo/raja-perf/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/raja-perf/package.py b/repo/raja-perf/package.py index 8798ad548..ff1e95557 100644 --- a/repo/raja-perf/package.py +++ b/repo/raja-perf/package.py @@ -35,7 +35,7 @@ def hip_repair_cache(options, spec): options.append( cmake_cache_path( "HIP_CLANG_INCLUDE_PATH", - glob.glob("{}/lib/clang/*/include".format(spec["llvm-amdgpu"].prefix))[0], + glob.glob("{}/llvm/lib/clang/*/include".format(spec["llvm-amdgpu"].prefix))[0], ) ) From 45c40c5cabd76e8cbf7aea64a5c62695b3af1ff3 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 19 Aug 2025 15:38:05 -0700 Subject: [PATCH 46/75] control spack-packages builtin repository --- checkout-versions.yaml | 1 + lib/benchpark/cmd/setup.py | 8 +++++++- lib/benchpark/runtime.py | 29 ++++++++++++++++++++++++----- remote-urls.yaml | 1 + 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/checkout-versions.yaml b/checkout-versions.yaml index 5c05ab7b0..f1fb4f775 100644 --- a/checkout-versions.yaml +++ b/checkout-versions.yaml @@ -5,3 +5,4 @@ versions: ramble: 6b4ecac # develop on 5/06/2025 (newer than 0.6.0 release) spack: 7eeef1f + spack-packages: a1941c9 diff --git a/lib/benchpark/cmd/setup.py b/lib/benchpark/cmd/setup.py index 290a516b6..f43b6c98b 100644 --- a/lib/benchpark/cmd/setup.py +++ b/lib/benchpark/cmd/setup.py @@ -175,7 +175,13 @@ def find(d, tag): if pkg_manager == "spack": spack, first_time_spack = per_workspace_setup.spack_first_time_setup() if first_time_spack: - spack("repo", "add", "--scope=site", f"{source_dir}/repo") + site_repos = per_workspace_setup.spack_location / "etc" / "spack" / "repos.yaml" + with open(site_repos, "w") as f: + f.write(f"""\ +repos:: + benchpark: {source_dir}/repo + builtin: {per_workspace_setup.pkgs_location} +""") pkg_str = f"""\ . {per_workspace_setup.spack_location}/share/spack/setup-env.sh diff --git a/lib/benchpark/runtime.py b/lib/benchpark/runtime.py index 39865bb50..54004601d 100644 --- a/lib/benchpark/runtime.py +++ b/lib/benchpark/runtime.py @@ -68,29 +68,31 @@ def __init__(self, dest, upstream=None): self.dest = pathlib.Path(dest) self.upstream = upstream - self.ramble_location, self.spack_location = ( + self.ramble_location, self.spack_location, self.pkgs_location = ( self.dest / "ramble", self.dest / "spack", + self.dest / "spack-packages" ) # Read pinned versions of ramble and spack with open(benchpark.paths.checkout_versions, "r") as yaml_file: data = yaml.safe_load(yaml_file)["versions"] - self.ramble_commit, self.spack_commit = data["ramble"], data["spack"] + self.ramble_commit, self.spack_commit, self.pkgs_commit = data["ramble"], data["spack"], data["spack-packages"] # Read remote urls for ramble and spack with open(benchpark.paths.remote_urls, "r") as yaml_file: data = yaml.safe_load(yaml_file)["urls"] - remote_ramble_url, remote_spack_url = data["ramble"], data["spack"] + remote_ramble_url, remote_spack_url, remote_pkgs_url = data["ramble"], data["spack"], data["spack-packages"] # If this does not have an upstream, then we will be cloning from the URLs indicated in remote-urls.yaml if self.upstream is None: - self.ramble_url, self.spack_url = remote_ramble_url, remote_spack_url + self.ramble_url, self.spack_url, self.pkgs_url = remote_ramble_url, remote_spack_url, remote_pkgs_url else: # Clone from local "upstream" repository - self.ramble_url, self.spack_url = ( + self.ramble_url, self.spack_url, self.pkgs_url = ( self.upstream.ramble_location, self.upstream.spack_location, + self.upstream.pkgs_location ) def _check_and_update_bootstrap(self, desired_commit, location): @@ -117,6 +119,11 @@ def bootstrap(self): if internals not in sys.path: sys.path.insert(1, internals) + if not self.pkgs_location.exists(): + self._install_packages() + else: + self._check_and_update_bootstrap(self.pkgs_commit, self.pkgs_location) + # Spack does not go in sys.path, but we will manually access modules from it # The reason for this oddity is that spack modules will compete with the internal # spack modules from ramble @@ -143,6 +150,15 @@ def _install_spack(self): ) debug_print(f"Done cloning Spack ({self.spack_location})") + def _install_packages(self): + print(f"Cloning packages to {self.pkgs_location}") + git_clone_commit( + self.pkgs_url, + self.pkgs_commit, + self.pkgs_location, + ) + debug_print(f"Done cloning spack-packages ({self.pkgs_location})") + def _ramble(self): first_time = False if not self.ramble_location.exists(): @@ -151,6 +167,9 @@ def _ramble(self): return Command(self.ramble_location / "bin" / "ramble", env={}), first_time def _spack(self): + if not self.pkgs_location.exists(): + self._install_packages() + env = {"SPACK_DISABLE_LOCAL_CONFIG": "1"} spack = Command(self.spack_location / "bin" / "spack", env) spack_cache_location = self.spack_location / "misc-cache" diff --git a/remote-urls.yaml b/remote-urls.yaml index 2dbc1050c..7221ad355 100644 --- a/remote-urls.yaml +++ b/remote-urls.yaml @@ -5,3 +5,4 @@ urls: ramble: https://github.com/GoogleCloudPlatform/ramble.git spack: https://github.com/spack/spack.git + spack-packages: https://github.com/spack/spack-packages.git From 3abc7a432460ed837b61a8a8568bf918b777c195 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 19 Aug 2025 15:39:08 -0700 Subject: [PATCH 47/75] auto-style --- lib/benchpark/cmd/setup.py | 10 +++++++--- lib/benchpark/runtime.py | 22 +++++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/lib/benchpark/cmd/setup.py b/lib/benchpark/cmd/setup.py index f43b6c98b..b3d7177fa 100644 --- a/lib/benchpark/cmd/setup.py +++ b/lib/benchpark/cmd/setup.py @@ -175,13 +175,17 @@ def find(d, tag): if pkg_manager == "spack": spack, first_time_spack = per_workspace_setup.spack_first_time_setup() if first_time_spack: - site_repos = per_workspace_setup.spack_location / "etc" / "spack" / "repos.yaml" + site_repos = ( + per_workspace_setup.spack_location / "etc" / "spack" / "repos.yaml" + ) with open(site_repos, "w") as f: - f.write(f"""\ + f.write( + f"""\ repos:: benchpark: {source_dir}/repo builtin: {per_workspace_setup.pkgs_location} -""") +""" + ) pkg_str = f"""\ . {per_workspace_setup.spack_location}/share/spack/setup-env.sh diff --git a/lib/benchpark/runtime.py b/lib/benchpark/runtime.py index 54004601d..1cca7dec5 100644 --- a/lib/benchpark/runtime.py +++ b/lib/benchpark/runtime.py @@ -71,28 +71,40 @@ def __init__(self, dest, upstream=None): self.ramble_location, self.spack_location, self.pkgs_location = ( self.dest / "ramble", self.dest / "spack", - self.dest / "spack-packages" + self.dest / "spack-packages", ) # Read pinned versions of ramble and spack with open(benchpark.paths.checkout_versions, "r") as yaml_file: data = yaml.safe_load(yaml_file)["versions"] - self.ramble_commit, self.spack_commit, self.pkgs_commit = data["ramble"], data["spack"], data["spack-packages"] + self.ramble_commit, self.spack_commit, self.pkgs_commit = ( + data["ramble"], + data["spack"], + data["spack-packages"], + ) # Read remote urls for ramble and spack with open(benchpark.paths.remote_urls, "r") as yaml_file: data = yaml.safe_load(yaml_file)["urls"] - remote_ramble_url, remote_spack_url, remote_pkgs_url = data["ramble"], data["spack"], data["spack-packages"] + remote_ramble_url, remote_spack_url, remote_pkgs_url = ( + data["ramble"], + data["spack"], + data["spack-packages"], + ) # If this does not have an upstream, then we will be cloning from the URLs indicated in remote-urls.yaml if self.upstream is None: - self.ramble_url, self.spack_url, self.pkgs_url = remote_ramble_url, remote_spack_url, remote_pkgs_url + self.ramble_url, self.spack_url, self.pkgs_url = ( + remote_ramble_url, + remote_spack_url, + remote_pkgs_url, + ) else: # Clone from local "upstream" repository self.ramble_url, self.spack_url, self.pkgs_url = ( self.upstream.ramble_location, self.upstream.spack_location, - self.upstream.pkgs_location + self.upstream.pkgs_location, ) def _check_and_update_bootstrap(self, desired_commit, location): From f2ef5b402456b682a6d9d9bb43d8df2bca082a8f Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 19 Aug 2025 16:00:59 -0700 Subject: [PATCH 48/75] forgot to reference package repo inside of git repo --- lib/benchpark/cmd/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/benchpark/cmd/setup.py b/lib/benchpark/cmd/setup.py index b3d7177fa..c6ae51588 100644 --- a/lib/benchpark/cmd/setup.py +++ b/lib/benchpark/cmd/setup.py @@ -183,7 +183,7 @@ def find(d, tag): f"""\ repos:: benchpark: {source_dir}/repo - builtin: {per_workspace_setup.pkgs_location} + builtin: {per_workspace_setup.pkgs_location}/repos/spack_repo/builtin/ """ ) From 1c73ba282b890eae8570fdb6e75b1fb3e408b64c Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 19 Aug 2025 17:27:01 -0700 Subject: [PATCH 49/75] enforce hypre+lapack --- experiments/amg2023/experiment.py | 1 + 1 file changed, 1 insertion(+) diff --git a/experiments/amg2023/experiment.py b/experiments/amg2023/experiment.py index 130a3e95b..e549aaf12 100644 --- a/experiments/amg2023/experiment.py +++ b/experiments/amg2023/experiment.py @@ -116,3 +116,4 @@ def compute_package_section(self): # get package version app_version = self.spec.variants["version"][0] self.add_package_spec(self.name, [f"amg2023@{app_version} "]) + self.add_package_spec("hypre", ["hypre+lapack"]) From 0a95ce643d895a3459b255819dc0c2f0511168d5 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 21 Aug 2025 11:51:48 -0700 Subject: [PATCH 50/75] llnl-cluster compiler weighting for oneapi: make it compatible with externals that dont specify compiler --- systems/llnl-cluster/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index b428dc0c2..9a1b70fee 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -287,7 +287,7 @@ def compute_compilers_section(self): ], ) weighting_cfg = { - "packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}} + "packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc", "@:"]}]}} } cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) From 851444efe23e22cd726876e24a502fc788354438 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 21 Aug 2025 12:25:47 -0700 Subject: [PATCH 51/75] auto style fix --- systems/llnl-cluster/system.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 9a1b70fee..83c9d1d2a 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -287,7 +287,9 @@ def compute_compilers_section(self): ], ) weighting_cfg = { - "packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc", "@:"]}]}} + "packages": { + "all": {"require": [{"one_of": ["%oneapi", "%gcc", "@:"]}]} + } } cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) From 051fbd53a38cc1487cf6502bf05cda78061743a4 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 26 Aug 2025 14:02:55 -0700 Subject: [PATCH 52/75] try to fix raja-perf/dane; laghos/dane --- experiments/laghos/experiment.py | 1 + experiments/raja-perf/experiment.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/experiments/laghos/experiment.py b/experiments/laghos/experiment.py index 210cd72e6..58aa4f206 100644 --- a/experiments/laghos/experiment.py +++ b/experiments/laghos/experiment.py @@ -75,3 +75,4 @@ def compute_applications_section(self): def compute_package_section(self): self.add_package_spec(self.name, [f"laghos{self.determine_version()} +metis"]) + self.add_package_spec("hypre", ["hypre+lapack"]) diff --git a/experiments/raja-perf/experiment.py b/experiments/raja-perf/experiment.py index eb822d6b1..4ea7474de 100644 --- a/experiments/raja-perf/experiment.py +++ b/experiments/raja-perf/experiment.py @@ -91,4 +91,4 @@ def compute_applications_section(self): self.add_experiment_variable("n_ranks", "{n_resources}", True) def compute_package_section(self): - self.add_package_spec(self.name, [f"raja-perf{self.determine_version()}"]) + self.add_package_spec(self.name, [f"raja-perf{self.determine_version()} +mpi"]) From 2ed96399854799eda82001b8b39636eca63e375b Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 26 Aug 2025 14:40:13 -0700 Subject: [PATCH 53/75] tuolumne/raja-perf/rocm appears to require same libunwind fix as tioga --- systems/llnl-elcapitan/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 37a7ec31b..539088181 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -660,7 +660,7 @@ def rocm_cce_compiler_cfg(self): f"/opt/cray/pe/cce/{self.cce_version}/cce/x86_64/lib", ] # Avoid libunwind.so.1 error on tioga - if self.spec.variants["cluster"][0] == "tioga": + if self.spec.variants["cluster"][0] in ["tioga", "tuolumne"]: rpaths.append(f"/opt/cray/pe/cce/{self.cce_version}/cce-clang/x86_64/lib/") cfgs = [] From f1e72fa802b989bf95cdb96170796d37a17b70ae Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 27 Aug 2025 13:26:30 -0700 Subject: [PATCH 54/75] interface for benchpark setup has changed, print command that omits system --- .gitlab/utils/run-experiment.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/utils/run-experiment.sh b/.gitlab/utils/run-experiment.sh index 6fde53d2a..f5be50942 100755 --- a/.gitlab/utils/run-experiment.sh +++ b/.gitlab/utils/run-experiment.sh @@ -11,7 +11,7 @@ else echo "./bin/benchpark system init --dest=${HOST} ${ARCHCONFIG} cluster=$HOST $SYSTEM_ARGS" fi echo "./bin/benchpark experiment init --dest=${BENCHMARK} --system=${HOST} ${BENCHMARK} ${VARIANT}" -echo "./bin/benchpark setup ${BENCHMARK} ${HOST} wkp/" +echo "./bin/benchpark setup ${BENCHMARK} wkp/" echo ". wkp/setup.sh" echo "cd ./wkp/${BENCHMARK}/${HOST}/workspace/" echo "ramble --disable-logger --workspace-dir . workspace setup" From 213ca360d4767ddc1d2018db1e96d108cea7d30b Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 27 Aug 2025 14:42:06 -0700 Subject: [PATCH 55/75] spack concretization defaults to older hypre dep, which does not seem to work for laghos --- experiments/laghos/experiment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experiments/laghos/experiment.py b/experiments/laghos/experiment.py index 58aa4f206..838339c69 100644 --- a/experiments/laghos/experiment.py +++ b/experiments/laghos/experiment.py @@ -75,4 +75,4 @@ def compute_applications_section(self): def compute_package_section(self): self.add_package_spec(self.name, [f"laghos{self.determine_version()} +metis"]) - self.add_package_spec("hypre", ["hypre+lapack"]) + self.add_package_spec("hypre", ["hypre@2.32.0: +lapack"]) From 614ae343686745d2dac01ff89056e75ba4197910 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 27 Aug 2025 18:13:45 -0700 Subject: [PATCH 56/75] the package is called llvm, not clang (fix for sierra system) --- systems/llnl-sierra/system.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/systems/llnl-sierra/system.py b/systems/llnl-sierra/system.py index e1b4f90dd..9f44acf10 100644 --- a/systems/llnl-sierra/system.py +++ b/systems/llnl-sierra/system.py @@ -452,10 +452,10 @@ def compute_compilers_section(self): if (compiler, cuda_ver) == ("clang-ibm", "11-8-0"): cfg1 = compiler_section_for( - "clang", + "llvm", [ compiler_def( - "clang@16.0.6", + "llvm@16.0.6", "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", {"c": "clang", "cxx": "clang++"}, flags=flags, @@ -521,10 +521,10 @@ def compute_compilers_section(self): "cxxflags": "-g -O2", } cfg1 = compiler_section_for( - "clang", + "llvm", [ compiler_def( - "clang@16.0.6", + "llvm@16.0.6", "/usr/tce/packages/clang/clang-ibm-16.0.6-cuda-11.8.0-gcc-11.2.1/", {"c": "clang", "cxx": "clang++"}, flags=custom_flags, From b0a3f3a194b9e8c3a469e33bf8a2d3f85f67ad4e Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 28 Aug 2025 20:42:02 -0700 Subject: [PATCH 57/75] hpl change: for some reason needs git attribute at package level (not as clean as desired, but should work in this case) --- repo/hpl/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repo/hpl/package.py b/repo/hpl/package.py index 3ccd4e074..993124812 100644 --- a/repo/hpl/package.py +++ b/repo/hpl/package.py @@ -17,13 +17,13 @@ class Hpl(AutotoolsPackage): homepage = "https://www.netlib.org/benchmark/hpl/" url = "https://www.netlib.org/benchmark/hpl/hpl-2.2.tar.gz" + git = "https://github.com/daboehme/HPL-caliper.git" # Note: HPL uses autotools starting with 2.3 version("2.3", sha256="32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830") version("2.2", sha256="ac7534163a09e21a5fa763e4e16dfc119bc84043f6e6a807aba666518f8df440") - version("2.3-caliper", git="https://github.com/daboehme/HPL-caliper.git", branch="master", - preferred=False) + version("2.3-caliper", branch="master", preferred=False) variant("openmp", default=False, description="Enable OpenMP support") variant("caliper", default=False, description="Enable Caliper support") From 6b87a487df77e69429546f40a14e45a62b95a5fb Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 29 Aug 2025 14:12:53 -0700 Subject: [PATCH 58/75] proper definition of oneapi compiler on oneapi cluster (was accidentally appending an extra bin subdir) --- systems/llnl-cluster/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 83c9d1d2a..6218a54fa 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -281,7 +281,7 @@ def compute_compilers_section(self): [ compiler_def( "intel-oneapi-compilers@2023.2.1~envmods", - "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/", + "/usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/", {"c": "icx", "cxx": "icpx", "fortran": "ifx"}, ) ], From 542d03b63ff5acb0af07df78595bd9a19482652f Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 29 Aug 2025 14:36:14 -0700 Subject: [PATCH 59/75] add separate section for mpi implementation --- systems/llnl-cluster/system.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 6218a54fa..012ffd133 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -191,6 +191,8 @@ def compute_packages_section(self): | { "mpi": { "buildable": False, + }, + "mvapich2": { "externals": [ { "spec": "mvapich2@2.3.7-gcc1211", @@ -209,6 +211,8 @@ def compute_packages_section(self): | { "mpi": { "buildable": False, + }, + "mvapich2": { "externals": [ { "spec": "mvapich2@2.3.7-intel202160classic", @@ -227,6 +231,8 @@ def compute_packages_section(self): | { "mpi": { "buildable": False, + }, + "mvapich2": { "externals": [ { "spec": "mvapich2@2.3.7-intel202321", From 69eab827753c4537a987e2312761019e127dabac Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 1 Sep 2025 11:43:40 -0700 Subject: [PATCH 60/75] adjust preference strategy for encouraging use of desired compiler --- systems/llnl-elcapitan/system.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 539088181..5e1df8494 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -337,15 +337,17 @@ def compiler_weighting_cfg(self): compiler = self.spec.variants["compiler"][0] if compiler == "cce": + prefs = {"one_of": ["%cce", "%gcc"], "when": "%c"} return { - "packages": {"all": {"require": [{"one_of": ["%cce", "%gcc", "@:"]}]}} + "packages": {"all": {"require": [prefs]}} } elif compiler == "gcc": return {"packages": {}} elif compiler == "rocmcc": + prefs = {"one_of": ["%rocmcc", "%gcc"], "when": "%c"} return { "packages": { - "all": {"require": [{"one_of": ["%rocmcc", "%gcc", "@:"]}]} + "all": {"require": [prefs]} } } else: From 7a338d7a8e8495da192e49b07dd327f90fd0166b Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 1 Sep 2025 12:18:32 -0700 Subject: [PATCH 61/75] same change for dane --- systems/llnl-cluster/system.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 012ffd133..8be8b5af0 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -292,9 +292,10 @@ def compute_compilers_section(self): ) ], ) + prefs = {"one_of": ["%oneapi", "%gcc"], "when": "%c"} weighting_cfg = { "packages": { - "all": {"require": [{"one_of": ["%oneapi", "%gcc", "@:"]}]} + "all": {"require": [prefs]} } } cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) From 948ebe8e4b137d4a065b14f4f19df8bc52857d0d Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 1 Sep 2025 12:25:41 -0700 Subject: [PATCH 62/75] placeholder default-compiler (our env establishes preferences that make it non-essential for the default-compiler to match what we want, but it has to be a real compiler in spack) --- systems/llnl-elcapitan/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 5e1df8494..04eb82ba5 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -739,7 +739,7 @@ def compute_software_section(self): "software": { "packages": { "default-compiler": { - "pkg_spec": f"{self.spec.variants['compiler'][0]}" + "pkg_spec": f"gcc" }, "default-mpi": {"pkg_spec": "cray-mpich"}, "compiler-rocm": {"pkg_spec": "cce"}, From 8d5a725dec85e576c17a23c4e920e71697af5da4 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 1 Sep 2025 12:25:57 -0700 Subject: [PATCH 63/75] style edit --- systems/llnl-elcapitan/system.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 04eb82ba5..d97598875 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -738,9 +738,7 @@ def compute_software_section(self): return { "software": { "packages": { - "default-compiler": { - "pkg_spec": f"gcc" - }, + "default-compiler": {"pkg_spec": f"gcc"}, "default-mpi": {"pkg_spec": "cray-mpich"}, "compiler-rocm": {"pkg_spec": "cce"}, "compiler-amdclang": {"pkg_spec": "clang"}, From c5fa931d26137b68ccdc8ef9331c707e1d7fb1d6 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 2 Sep 2025 10:39:53 -0700 Subject: [PATCH 64/75] default compiler selection for llnl-cluster (while it shouldn't matter what this is, it has to identify a compiler name spack understands, and there is no longer a oneapi spack package - it is now intel-oneapi-compilers) --- systems/llnl-cluster/system.py | 8 +++++++- systems/llnl-elcapitan/system.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 8be8b5af0..94d22ef4f 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -303,10 +303,16 @@ def compute_compilers_section(self): return cfg def compute_software_section(self): + default_compiler = "gcc" + if self.spec.satisfies("compiler=intel"): + default_compiler = "intel-oneapi-compilers-classic" + elif self.spec.satisfies("compiler=oneapi"): + default_compiler = "intel-oneapi-compilers" + return { "software": { "packages": { - "default-compiler": {"pkg_spec": self.spec.variants["compiler"][0]}, + "default-compiler": {"pkg_spec": default_compiler}, "default-mpi": {"pkg_spec": "mvapich2"}, "compiler-gcc": {"pkg_spec": "gcc"}, "compiler-intel": {"pkg_spec": "intel"}, diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index d97598875..30dd6bd52 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -738,7 +738,7 @@ def compute_software_section(self): return { "software": { "packages": { - "default-compiler": {"pkg_spec": f"gcc"}, + "default-compiler": {"pkg_spec": "gcc"}, "default-mpi": {"pkg_spec": "cray-mpich"}, "compiler-rocm": {"pkg_spec": "cce"}, "compiler-amdclang": {"pkg_spec": "clang"}, From ed3cf29ffb931ff4518ad53e54b7888af63e05f2 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 2 Sep 2025 23:12:36 -0700 Subject: [PATCH 65/75] auto style fix --- systems/llnl-cluster/system.py | 12 ++++-------- systems/llnl-elcapitan/system.py | 10 ++-------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/systems/llnl-cluster/system.py b/systems/llnl-cluster/system.py index 94d22ef4f..51152a1be 100644 --- a/systems/llnl-cluster/system.py +++ b/systems/llnl-cluster/system.py @@ -202,7 +202,7 @@ def compute_packages_section(self): }, } ], - } + }, } } elif self.spec.satisfies("compiler=intel"): @@ -222,7 +222,7 @@ def compute_packages_section(self): }, } ], - } + }, } } elif self.spec.satisfies("compiler=oneapi"): @@ -242,7 +242,7 @@ def compute_packages_section(self): }, } ], - } + }, } } @@ -293,11 +293,7 @@ def compute_compilers_section(self): ], ) prefs = {"one_of": ["%oneapi", "%gcc"], "when": "%c"} - weighting_cfg = { - "packages": { - "all": {"require": [prefs]} - } - } + weighting_cfg = {"packages": {"all": {"require": [prefs]}}} cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) return cfg diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 30dd6bd52..e1ceebd66 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -338,18 +338,12 @@ def compiler_weighting_cfg(self): if compiler == "cce": prefs = {"one_of": ["%cce", "%gcc"], "when": "%c"} - return { - "packages": {"all": {"require": [prefs]}} - } + return {"packages": {"all": {"require": [prefs]}}} elif compiler == "gcc": return {"packages": {}} elif compiler == "rocmcc": prefs = {"one_of": ["%rocmcc", "%gcc"], "when": "%c"} - return { - "packages": { - "all": {"require": [prefs]} - } - } + return {"packages": {"all": {"require": [prefs]}}} else: raise ValueError(f"Unexpected value for compiler: {compiler}") From 709ceda85ac50f62879bb3272a69fb19e9c0e7ce Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 3 Sep 2025 11:14:29 -0700 Subject: [PATCH 66/75] apply fixes from llnl-cluster to llnl-matrix --- systems/llnl-matrix/system.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/systems/llnl-matrix/system.py b/systems/llnl-matrix/system.py index 27a146f67..3f91dd4fa 100644 --- a/systems/llnl-matrix/system.py +++ b/systems/llnl-matrix/system.py @@ -265,11 +265,8 @@ def compute_compilers_section(self): ) ], ) - # In this case 2 compilers are defined: create a preference for - # oneAPI compiler - weighting_cfg = { - "packages": {"all": {"require": [{"one_of": ["%oneapi", "%gcc"]}]}} - } + prefs = {"one_of": ["%oneapi", "%gcc"], "when": "%c"} + weighting_cfg = {"packages": {"all": {"require": [prefs]}}} cfg = merge_dicts(gcc_cfg, oneapi_cfg, weighting_cfg) return cfg @@ -346,10 +343,16 @@ def cuda_config(self, cuda_version): } def compute_software_section(self): + default_compiler = "gcc" + if self.spec.satisfies("compiler=intel"): + default_compiler = "intel-oneapi-compilers-classic" + elif self.spec.satisfies("compiler=oneapi"): + default_compiler = "intel-oneapi-compilers" + return { "software": { "packages": { - "default-compiler": {"pkg_spec": self.spec.variants["compiler"][0]}, + "default-compiler": {"pkg_spec": default_compiler}, "default-mpi": {"pkg_spec": "mvapich2"}, "compiler-gcc": {"pkg_spec": "gcc"}, "compiler-intel": {"pkg_spec": "intel"}, From fbfb1168eead0b3c049380f9b3a1eee0ddb98ca5 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 3 Sep 2025 15:57:44 -0700 Subject: [PATCH 67/75] we agreed to rm kripke/lassen test --- .gitlab/tests/non_shared.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/tests/non_shared.yml b/.gitlab/tests/non_shared.yml index 0689ce7c4..abdb92348 100644 --- a/.gitlab/tests/non_shared.yml +++ b/.gitlab/tests/non_shared.yml @@ -17,7 +17,7 @@ workflow: - HOST: lassen ARCHCONFIG: llnl-sierra SCHEDULER_PARAMETERS: -nnodes 1 -W 40 -q pci - BENCHMARK: [amg2023, kripke] + BENCHMARK: [amg2023] VARIANT: [+cuda, +openmp] run_tests_nonshared: resource_group: $HOST From 844b9007502ba1882c0086b7ef500103faf3aa94 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 3 Sep 2025 16:34:16 -0700 Subject: [PATCH 68/75] relocate spack bootstrap cache (in latest tests it is 129 chars - one over the limit) --- lib/benchpark/runtime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/benchpark/runtime.py b/lib/benchpark/runtime.py index 1cca7dec5..9d601caec 100644 --- a/lib/benchpark/runtime.py +++ b/lib/benchpark/runtime.py @@ -185,7 +185,7 @@ def _spack(self): env = {"SPACK_DISABLE_LOCAL_CONFIG": "1"} spack = Command(self.spack_location / "bin" / "spack", env) spack_cache_location = self.spack_location / "misc-cache" - bootstrap_cache_location = self.spack_location / "b-c" + bootstrap_cache_location = self.dest / "sbc" first_time = False if not self.spack_location.exists(): first_time = True From c00502b76e7d5af6d06e73e17763f02c0a68f87b Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 3 Sep 2025 21:28:51 -0700 Subject: [PATCH 69/75] keep trying to shorten --- lib/benchpark/runtime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/benchpark/runtime.py b/lib/benchpark/runtime.py index 9d601caec..9a033c305 100644 --- a/lib/benchpark/runtime.py +++ b/lib/benchpark/runtime.py @@ -70,7 +70,7 @@ def __init__(self, dest, upstream=None): self.ramble_location, self.spack_location, self.pkgs_location = ( self.dest / "ramble", - self.dest / "spack", + self.dest / "spk", self.dest / "spack-packages", ) From 65c60543f77c1ed5fa755896e4fbbf9e620e3407 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 8 Sep 2025 13:07:38 -0700 Subject: [PATCH 70/75] rm override now that subclass doesnt actually add any logic --- repo/hypre/package.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/repo/hypre/package.py b/repo/hypre/package.py index 89cf4eae9..b38c99efd 100644 --- a/repo/hypre/package.py +++ b/repo/hypre/package.py @@ -18,16 +18,6 @@ class Hypre(BuiltinHypre): "gcc": "gnu", } - def configure_args(self): - configure_args = super().configure_args() - - if False: - configure_args.append("--with-fmangle=no-underscores") - configure_args.append("--with-fmangle-blas=no-underscores") - configure_args.append("--with-fmangle-lapack=no-underscores") - - return configure_args - def setup_build_environment(self, env): if self.spec.satisfies('%oneapi'): compiler_version = self.spec.compiler.version From 649ea9f39f6fb7bdb3a71cabc37cc492b524e959 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Mon, 8 Sep 2025 13:15:27 -0700 Subject: [PATCH 71/75] rm commented-out config (llvm-amdgpu package was merged with the compiler, so it is now handled in the compiler method) --- systems/llnl-elcapitan/system.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index e1ceebd66..06f9481d5 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -619,15 +619,6 @@ def rocm_config(self): ], "buildable": False, }, - # "llvm-amdgpu": { - # "externals": [ - # { - # "spec": f"llvm-amdgpu@{self.rocm_version}", - # "prefix": f"/opt/rocm-{self.rocm_version}/llvm", - # } - # ], - # "buildable": False, - # }, "rocblas": { "externals": [ { From 7d26c1fd8f49f8e8a9e6205cd2ded8ef849af817 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 9 Sep 2025 09:51:20 -0700 Subject: [PATCH 72/75] rm unused lang dependencies --- repo/gromacs/package.py | 2 -- repo/quicksilver/package.py | 2 -- repo/saxpy/package.py | 2 -- repo/smb/package.py | 3 +-- repo/stream/package.py | 1 - 5 files changed, 1 insertion(+), 9 deletions(-) diff --git a/repo/gromacs/package.py b/repo/gromacs/package.py index 41c840403..abd6feeec 100644 --- a/repo/gromacs/package.py +++ b/repo/gromacs/package.py @@ -206,8 +206,6 @@ class Gromacs(CMakePackage, CudaPackage, ROCmPackage): ) depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", type="build") depends_on("mpi", when="+mpi") diff --git a/repo/quicksilver/package.py b/repo/quicksilver/package.py index 7ba38e805..e797ae5cc 100644 --- a/repo/quicksilver/package.py +++ b/repo/quicksilver/package.py @@ -30,8 +30,6 @@ class Quicksilver(MakefilePackage): variant("caliper", default=False, description="Build with Caliper support") depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", type="build") depends_on("mpi", when="+mpi") depends_on("caliper", when="+caliper") diff --git a/repo/saxpy/package.py b/repo/saxpy/package.py index 5912981ff..59d78e6ce 100644 --- a/repo/saxpy/package.py +++ b/repo/saxpy/package.py @@ -29,8 +29,6 @@ class Saxpy(CMakePackage, CudaPackage, ROCmPackage): conflicts("+openmp", when="+rocm+cuda") depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", type="build") depends_on("cmake") depends_on("mpi") diff --git a/repo/smb/package.py b/repo/smb/package.py index bdf598031..656d3ab53 100644 --- a/repo/smb/package.py +++ b/repo/smb/package.py @@ -21,8 +21,7 @@ class Smb(MakefilePackage): variant("rma", default=False, description="Build RMA-MT variant") depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", type="build") + depends_on("mpi", when="+mpi") build_directory = ["src/mpi_overhead"] diff --git a/repo/stream/package.py b/repo/stream/package.py index 74f1cdeb2..d57a3069e 100644 --- a/repo/stream/package.py +++ b/repo/stream/package.py @@ -25,7 +25,6 @@ class Stream(CMakePackage): requires("@5.10-caliper", when="+caliper") depends_on("c", type="build") - depends_on("cxx", type="build") depends_on("fortran", type="build") depends_on("caliper", when="+caliper") From 12d7390d08c00aabcda1bff8416c82265769fa42 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 9 Sep 2025 21:03:05 -0700 Subject: [PATCH 73/75] update blt import to make it spack-1.0-compat --- repo/blt/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repo/blt/package.py b/repo/blt/package.py index 5c396a714..0a9c0d2e4 100644 --- a/repo/blt/package.py +++ b/repo/blt/package.py @@ -7,7 +7,8 @@ import re from spack.package import * -from spack.pkg.builtin.blt import Blt as BuiltinBlt +from spack_repo.builtin.packages.blt.package import Blt as BuiltinBlt + class Blt(BuiltinBlt): From 1f75eda6c1dd20755a1f21abf77569c6afc828ee Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Tue, 9 Sep 2025 22:45:18 -0700 Subject: [PATCH 74/75] universal requirement for blt 0.6.2 no longer works with merged in updates to raja-perf; however I think this constraint may no longer be needed because I see kripke added a conflict w/blt 0.7.0 --- systems/llnl-elcapitan/system.py | 1 - 1 file changed, 1 deletion(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 06f9481d5..730fa6a95 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -188,7 +188,6 @@ def compute_packages_section(self): selections = { "packages": { "all": {"require": [{"spec": "target=x86_64:"}]}, - "blt": {"require": "@0.6.2"}, "tar": {"externals": [{"spec": "tar@1.30", "prefix": "/usr"}]}, "coreutils": { "externals": [{"spec": "coreutils@8.30", "prefix": "/usr"}] From cae0603f0f16909204ff0d1a5f31b276c1f04120 Mon Sep 17 00:00:00 2001 From: pearce8 Date: Wed, 10 Sep 2025 14:05:06 -0500 Subject: [PATCH 75/75] Revert name shortening. --- lib/benchpark/runtime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/benchpark/runtime.py b/lib/benchpark/runtime.py index 9a033c305..9d601caec 100644 --- a/lib/benchpark/runtime.py +++ b/lib/benchpark/runtime.py @@ -70,7 +70,7 @@ def __init__(self, dest, upstream=None): self.ramble_location, self.spack_location, self.pkgs_location = ( self.dest / "ramble", - self.dest / "spk", + self.dest / "spack", self.dest / "spack-packages", )