From 06cd89637d59b13225d46b7b3c9bd2e9f3e92d23 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Wed, 27 Nov 2024 18:42:27 +0100 Subject: [PATCH] Add prgenv-gnu/24.11 (#159) --- config.yaml | 26 +++++++---- docs/uenv-prgenv-gnu.md | 24 ++++++++++ recipes/prgenv-gnu/23.11/a100/compilers.yaml | 5 -- .../prgenv-gnu/23.11/a100/environments.yaml | 25 ---------- recipes/prgenv-gnu/23.11/mc/environments.yaml | 22 --------- recipes/prgenv-gnu/24.11/a100/compilers.yaml | 5 ++ .../{23.11/mc => 24.11/a100}/config.yaml | 2 +- .../prgenv-gnu/24.11/a100/environments.yaml | 46 +++++++++++++++++++ .../{23.11 => 24.11}/a100/extra/reframe.yaml | 2 +- .../{23.11 => 24.11}/a100/modules.yaml | 0 recipes/prgenv-gnu/24.11/gh200/compilers.yaml | 5 ++ .../{23.11/a100 => 24.11/gh200}/config.yaml | 2 +- .../prgenv-gnu/24.11/gh200/environments.yaml | 46 +++++++++++++++++++ .../prgenv-gnu/24.11/gh200/extra/reframe.yaml | 11 +++++ .../{23.11/mc => 24.11/gh200}/modules.yaml | 0 .../{23.11 => 24.11}/mc/compilers.yaml | 2 +- recipes/prgenv-gnu/24.11/mc/config.yaml | 7 +++ recipes/prgenv-gnu/24.11/mc/environments.yaml | 38 +++++++++++++++ .../{23.11 => 24.11}/mc/extra/reframe.yaml | 2 +- recipes/prgenv-gnu/24.11/mc/modules.yaml | 23 ++++++++++ 20 files changed, 226 insertions(+), 67 deletions(-) delete mode 100644 recipes/prgenv-gnu/23.11/a100/compilers.yaml delete mode 100644 recipes/prgenv-gnu/23.11/a100/environments.yaml delete mode 100644 recipes/prgenv-gnu/23.11/mc/environments.yaml create mode 100644 recipes/prgenv-gnu/24.11/a100/compilers.yaml rename recipes/prgenv-gnu/{23.11/mc => 24.11/a100}/config.yaml (88%) create mode 100644 recipes/prgenv-gnu/24.11/a100/environments.yaml rename recipes/prgenv-gnu/{23.11 => 24.11}/a100/extra/reframe.yaml (70%) rename recipes/prgenv-gnu/{23.11 => 24.11}/a100/modules.yaml (100%) create mode 100644 recipes/prgenv-gnu/24.11/gh200/compilers.yaml rename recipes/prgenv-gnu/{23.11/a100 => 24.11/gh200}/config.yaml (88%) create mode 100644 recipes/prgenv-gnu/24.11/gh200/environments.yaml create mode 100644 recipes/prgenv-gnu/24.11/gh200/extra/reframe.yaml rename recipes/prgenv-gnu/{23.11/mc => 24.11/gh200}/modules.yaml (100%) rename recipes/prgenv-gnu/{23.11 => 24.11}/mc/compilers.yaml (78%) create mode 100644 recipes/prgenv-gnu/24.11/mc/config.yaml create mode 100644 recipes/prgenv-gnu/24.11/mc/environments.yaml rename recipes/prgenv-gnu/{23.11 => 24.11}/mc/extra/reframe.yaml (65%) create mode 100644 recipes/prgenv-gnu/24.11/mc/modules.yaml diff --git a/config.yaml b/config.yaml index 948a333a..427b8337 100644 --- a/config.yaml +++ b/config.yaml @@ -18,7 +18,8 @@ clusters: uarch: 'a100' partition: 'normal' variables: - F7T_URL: "https://api.cscs.ch/ml/firecrest/v1" + F7T_URL: 'https://api.cscs.ch/ml/firecrest/v1' + SLURM_ACCOUNT: '' runner: f7t daint: targets: @@ -59,6 +60,7 @@ clusters: uarch: 'gh200' partition: 'normal' variables: + #SLURM_RESERVATION: 'icon' F7T_URL: "https://api.cscs.ch/hpc/firecrest/v1" runner: f7t uenvs: @@ -219,15 +221,6 @@ uenvs: deploy: eiger: [zen2] prgenv-gnu: - "23.11": - recipes: - # zen2 and zen3 targets use the same recipe - zen2: 23.11/mc - zen3: 23.11/mc - a100: 23.11/a100 - deploy: - # deploy to both the production and test clusters - eiger: [zen2] "24.2": recipes: gh200: 24.2/gh200 @@ -244,6 +237,19 @@ uenvs: daint: [gh200] eiger: [zen2] todi: [gh200] + "24.11": + recipes: + # zen2 and zen3 targets use the same recipe + zen2: 24.11/mc + zen3: 24.11/mc + gh200: 24.11/gh200 + a100: 24.11/a100 + deploy: + daint: [gh200] + eiger: [zen2] + todi: [gh200] + bristen: [a100] + develop: True quantumespresso: "v7.1": recipes: diff --git a/docs/uenv-prgenv-gnu.md b/docs/uenv-prgenv-gnu.md index 26abf7be..c44a0ccd 100644 --- a/docs/uenv-prgenv-gnu.md +++ b/docs/uenv-prgenv-gnu.md @@ -7,6 +7,7 @@ It provides the GCC compilers (gcc, g++ and gfortran), MPI (cray-mpich), Python, The following packages are provided: * `aws-ofi-nccl` +* `boost` * `cmake` * `cray-mpich` * built with `cuda` support on systems with NVIDIA GPUs @@ -15,7 +16,11 @@ The following packages are provided: * `fftw` * `fmt` * `gcc` +* `gsl` * `hdf5` +* `kokkos` +* `kokkos-kernels` +* `kokkos-tools` * `libtree` * `meson` * `nccl-tests` @@ -27,6 +32,25 @@ The following packages are provided: * `python` * a recent version of python 3 +## Changelog + +### 24.11 + +- Added GSL +- Added Boost with Chrono, Filesystem, Iostreams, MPI, Python, Regex, Serialization, System, Timer +- Added Kokkos with the CUDA, OpenMP, and Serial execution spaces +- Added Kokkos Kernels with explicit template instantiations and support for the most commonly used third party libraries +- Added Kokkos Tools +- Added PAPI +- Added SuperLU +- Added netlib-scalapack +- Added Lua +- Added lz4 +- Added zlib-ng +- Added C++ and Fortran support to HDF5 +- Updated CUDA to 12.6 +- Changed aws-ofi-nccl to 1.9.2 + ## How to use The environment is designed as a fairly minimal set of diff --git a/recipes/prgenv-gnu/23.11/a100/compilers.yaml b/recipes/prgenv-gnu/23.11/a100/compilers.yaml deleted file mode 100644 index f0ca0519..00000000 --- a/recipes/prgenv-gnu/23.11/a100/compilers.yaml +++ /dev/null @@ -1,5 +0,0 @@ -bootstrap: - spec: gcc@11 -gcc: - specs: - - gcc@11.3 diff --git a/recipes/prgenv-gnu/23.11/a100/environments.yaml b/recipes/prgenv-gnu/23.11/a100/environments.yaml deleted file mode 100644 index 39035bef..00000000 --- a/recipes/prgenv-gnu/23.11/a100/environments.yaml +++ /dev/null @@ -1,25 +0,0 @@ -gcc-env: - compiler: - - toolchain: gcc - spec: gcc@11 - mpi: - spec: cray-mpich@8.1.26 - gpu: cuda - unify: true - specs: - - cmake - - fftw - - fmt - - hdf5 - - ninja@1.11 - - openblas - - python@3.11 - - py-pybind11 - - osu-micro-benchmarks@5.9 - - cuda@11.8 - variants: - - +mpi - - +cuda - - cuda_arch=80 - views: - default: diff --git a/recipes/prgenv-gnu/23.11/mc/environments.yaml b/recipes/prgenv-gnu/23.11/mc/environments.yaml deleted file mode 100644 index aeebb4cf..00000000 --- a/recipes/prgenv-gnu/23.11/mc/environments.yaml +++ /dev/null @@ -1,22 +0,0 @@ -gcc-env: - compiler: - - toolchain: gcc - spec: gcc@12 - mpi: - spec: cray-mpich - gpu: Null - unify: true - specs: - - cmake - - fftw - - fmt - - hdf5 - - ninja@1.11 - - openblas - - python@3.11 - - py-pybind11 - - osu-micro-benchmarks@5.9 - variants: - - +mpi - views: - default: diff --git a/recipes/prgenv-gnu/24.11/a100/compilers.yaml b/recipes/prgenv-gnu/24.11/a100/compilers.yaml new file mode 100644 index 00000000..281fae8b --- /dev/null +++ b/recipes/prgenv-gnu/24.11/a100/compilers.yaml @@ -0,0 +1,5 @@ +bootstrap: + spec: gcc@12.3 +gcc: + specs: + - gcc@13 diff --git a/recipes/prgenv-gnu/23.11/mc/config.yaml b/recipes/prgenv-gnu/24.11/a100/config.yaml similarity index 88% rename from recipes/prgenv-gnu/23.11/mc/config.yaml rename to recipes/prgenv-gnu/24.11/a100/config.yaml index 735da1e2..8bc722cc 100644 --- a/recipes/prgenv-gnu/23.11/mc/config.yaml +++ b/recipes/prgenv-gnu/24.11/a100/config.yaml @@ -1,6 +1,6 @@ name: prgenv-gnu spack: - commit: releases/v0.20 + commit: releases/v0.23 repo: https://github.com/spack/spack.git store: /user-environment description: GNU Compiler toolchain with cray-mpich, Python, CMake and other development tools. diff --git a/recipes/prgenv-gnu/24.11/a100/environments.yaml b/recipes/prgenv-gnu/24.11/a100/environments.yaml new file mode 100644 index 00000000..d51d7ff3 --- /dev/null +++ b/recipes/prgenv-gnu/24.11/a100/environments.yaml @@ -0,0 +1,46 @@ +gcc-env: + compiler: + - toolchain: gcc + spec: gcc + mpi: + spec: cray-mpich@8.1.30 + gpu: cuda + unify: true + specs: + - boost +chrono +filesystem +iostreams +mpi +python +regex +serialization +shared +system +timer + - cmake + - fftw + - fmt + - gsl + - hdf5+cxx+hl+fortran + - kokkos +aggressive_vectorization ~alloc_async +cuda_constexpr +cuda_lambda ~cuda_relocatable_device_code ~cuda_uvm cxxstd=17 +openmp +pic +serial +shared +tuning +wrapper + - kokkos-kernels +blas +cublas +cusparse +cusolver +execspace_cuda +execspace_openmp +execspace_serial +lapack +memspace_cudaspace +openmp scalars=float,double,complex_float,complex_double +serial +shared +superlu + - kokkos-tools +mpi +papi + - netlib-scalapack + - lua + - libtree + - lz4 + - meson + - ninja + - openblas threads=openmp + - osu-micro-benchmarks@5.9 + - papi ~cuda + - python@3.12 + - zlib-ng + # add GPU-specific packages here, for easier comparison with mc version + - nccl + - nccl-tests + - cuda@12.6 + - aws-ofi-nccl + - superlu + variants: + - +mpi + - +cuda + - cuda_arch=80 + views: + default: + link: roots + uenv: + add_compilers: true + prefix_paths: + LD_LIBRARY_PATH: [lib, lib64] diff --git a/recipes/prgenv-gnu/23.11/a100/extra/reframe.yaml b/recipes/prgenv-gnu/24.11/a100/extra/reframe.yaml similarity index 70% rename from recipes/prgenv-gnu/23.11/a100/extra/reframe.yaml rename to recipes/prgenv-gnu/24.11/a100/extra/reframe.yaml index b71f2797..1c0e6611 100644 --- a/recipes/prgenv-gnu/23.11/a100/extra/reframe.yaml +++ b/recipes/prgenv-gnu/24.11/a100/extra/reframe.yaml @@ -8,4 +8,4 @@ default: cc: mpicc cxx: mpic++ ftn: mpifort - activation: /user-environment/env/default/activate.sh + activation: uenv view develop diff --git a/recipes/prgenv-gnu/23.11/a100/modules.yaml b/recipes/prgenv-gnu/24.11/a100/modules.yaml similarity index 100% rename from recipes/prgenv-gnu/23.11/a100/modules.yaml rename to recipes/prgenv-gnu/24.11/a100/modules.yaml diff --git a/recipes/prgenv-gnu/24.11/gh200/compilers.yaml b/recipes/prgenv-gnu/24.11/gh200/compilers.yaml new file mode 100644 index 00000000..281fae8b --- /dev/null +++ b/recipes/prgenv-gnu/24.11/gh200/compilers.yaml @@ -0,0 +1,5 @@ +bootstrap: + spec: gcc@12.3 +gcc: + specs: + - gcc@13 diff --git a/recipes/prgenv-gnu/23.11/a100/config.yaml b/recipes/prgenv-gnu/24.11/gh200/config.yaml similarity index 88% rename from recipes/prgenv-gnu/23.11/a100/config.yaml rename to recipes/prgenv-gnu/24.11/gh200/config.yaml index 735da1e2..8bc722cc 100644 --- a/recipes/prgenv-gnu/23.11/a100/config.yaml +++ b/recipes/prgenv-gnu/24.11/gh200/config.yaml @@ -1,6 +1,6 @@ name: prgenv-gnu spack: - commit: releases/v0.20 + commit: releases/v0.23 repo: https://github.com/spack/spack.git store: /user-environment description: GNU Compiler toolchain with cray-mpich, Python, CMake and other development tools. diff --git a/recipes/prgenv-gnu/24.11/gh200/environments.yaml b/recipes/prgenv-gnu/24.11/gh200/environments.yaml new file mode 100644 index 00000000..ef2d304e --- /dev/null +++ b/recipes/prgenv-gnu/24.11/gh200/environments.yaml @@ -0,0 +1,46 @@ +gcc-env: + compiler: + - toolchain: gcc + spec: gcc + mpi: + spec: cray-mpich@8.1.30 + gpu: cuda + unify: true + specs: + - boost +chrono +filesystem +iostreams +mpi +python +regex +serialization +shared +system +timer + - cmake + - fftw + - fmt + - gsl + - hdf5+cxx+hl+fortran + - kokkos +aggressive_vectorization ~alloc_async +cuda_constexpr +cuda_lambda ~cuda_relocatable_device_code ~cuda_uvm cxxstd=17 +openmp +pic +serial +shared +tuning +wrapper + - kokkos-kernels +blas +cublas +cusparse +cusolver +execspace_cuda +execspace_openmp +execspace_serial +lapack +memspace_cudaspace +openmp scalars=float,double,complex_float,complex_double +serial +shared +superlu + - kokkos-tools +mpi +papi + - netlib-scalapack + - lua + - libtree + - lz4 + - meson + - ninja + - openblas threads=openmp + - osu-micro-benchmarks@5.9 + - papi ~cuda + - python@3.12 + - zlib-ng + # add GPU-specific packages here, for easier comparison with mc version + - nccl + - nccl-tests + - cuda@12.6 + - aws-ofi-nccl + - superlu + variants: + - +mpi + - +cuda + - cuda_arch=90 + views: + default: + link: roots + uenv: + add_compilers: true + prefix_paths: + LD_LIBRARY_PATH: [lib, lib64] diff --git a/recipes/prgenv-gnu/24.11/gh200/extra/reframe.yaml b/recipes/prgenv-gnu/24.11/gh200/extra/reframe.yaml new file mode 100644 index 00000000..1c0e6611 --- /dev/null +++ b/recipes/prgenv-gnu/24.11/gh200/extra/reframe.yaml @@ -0,0 +1,11 @@ +default: + features: + - cuda + - mpi + - osu-micro-benchmarks + - openmp + - serial + cc: mpicc + cxx: mpic++ + ftn: mpifort + activation: uenv view develop diff --git a/recipes/prgenv-gnu/23.11/mc/modules.yaml b/recipes/prgenv-gnu/24.11/gh200/modules.yaml similarity index 100% rename from recipes/prgenv-gnu/23.11/mc/modules.yaml rename to recipes/prgenv-gnu/24.11/gh200/modules.yaml diff --git a/recipes/prgenv-gnu/23.11/mc/compilers.yaml b/recipes/prgenv-gnu/24.11/mc/compilers.yaml similarity index 78% rename from recipes/prgenv-gnu/23.11/mc/compilers.yaml rename to recipes/prgenv-gnu/24.11/mc/compilers.yaml index 73a18ffd..bbe4e268 100644 --- a/recipes/prgenv-gnu/23.11/mc/compilers.yaml +++ b/recipes/prgenv-gnu/24.11/mc/compilers.yaml @@ -2,4 +2,4 @@ bootstrap: spec: gcc@11 gcc: specs: - - gcc@12 + - gcc@13 diff --git a/recipes/prgenv-gnu/24.11/mc/config.yaml b/recipes/prgenv-gnu/24.11/mc/config.yaml new file mode 100644 index 00000000..8bc722cc --- /dev/null +++ b/recipes/prgenv-gnu/24.11/mc/config.yaml @@ -0,0 +1,7 @@ +name: prgenv-gnu +spack: + commit: releases/v0.23 + repo: https://github.com/spack/spack.git +store: /user-environment +description: GNU Compiler toolchain with cray-mpich, Python, CMake and other development tools. + diff --git a/recipes/prgenv-gnu/24.11/mc/environments.yaml b/recipes/prgenv-gnu/24.11/mc/environments.yaml new file mode 100644 index 00000000..338df4a6 --- /dev/null +++ b/recipes/prgenv-gnu/24.11/mc/environments.yaml @@ -0,0 +1,38 @@ +gcc-env: + compiler: + - toolchain: gcc + spec: gcc@13 + mpi: + spec: cray-mpich@8.1.30 + gpu: Null + unify: true + specs: + - boost +chrono +filesystem +iostreams +mpi +python +regex +serialization +shared +system +timer + - cmake + - fftw + - fmt + - gsl + - hdf5+cxx+hl+fortran + - kokkos +aggressive_vectorization cxxstd=17 +openmp +pic +serial +shared +tuning + - kokkos-kernels +blas +execspace_openmp +execspace_serial +lapack +openmp scalars=float,double,complex_float,complex_double +serial +shared +superlu + - kokkos-tools +mpi +papi + - netlib-scalapack + - lua + - libtree + - lz4 + - meson + - ninja + - openblas threads=openmp + - osu-micro-benchmarks@5.9 + - python@3.12 + - superlu + - zlib-ng + variants: + - +mpi + views: + default: + link: roots + uenv: + add_compilers: true + prefix_paths: + LD_LIBRARY_PATH: [lib, lib64] diff --git a/recipes/prgenv-gnu/23.11/mc/extra/reframe.yaml b/recipes/prgenv-gnu/24.11/mc/extra/reframe.yaml similarity index 65% rename from recipes/prgenv-gnu/23.11/mc/extra/reframe.yaml rename to recipes/prgenv-gnu/24.11/mc/extra/reframe.yaml index 363f809f..927906ec 100644 --- a/recipes/prgenv-gnu/23.11/mc/extra/reframe.yaml +++ b/recipes/prgenv-gnu/24.11/mc/extra/reframe.yaml @@ -3,4 +3,4 @@ default: cc: mpicc cxx: mpic++ ftn: mpifort - activation: /user-environment/env/default/activate.sh + activation: uenv view develop diff --git a/recipes/prgenv-gnu/24.11/mc/modules.yaml b/recipes/prgenv-gnu/24.11/mc/modules.yaml new file mode 100644 index 00000000..623307b0 --- /dev/null +++ b/recipes/prgenv-gnu/24.11/mc/modules.yaml @@ -0,0 +1,23 @@ +modules: + # Paths to check when creating modules for all module sets + prefix_inspections: + bin: + - PATH + lib: + - LD_LIBRARY_PATH + lib64: + - LD_LIBRARY_PATH + + default: + arch_folder: false + # Where to install modules + roots: + tcl: /user-environment/modules + tcl: + all: + autoload: none + hash_length: 0 + exclude_implicits: true + exclude: ['%gcc@7.5.0', 'gcc %gcc@7.5.0'] + projections: + all: '{name}/{version}'