From d9930efe68e8cf8fe1c69c10742c6890ffeef3d6 Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Thu, 20 Aug 2026 10:19:23 +0200 Subject: [PATCH 1/3] adapt icon/26.7%gh200 for a100 for MCH use case --- recipes/icon/26.7/a100/compilers.yaml | 4 +++ recipes/icon/26.7/a100/config.yaml | 15 +++++++++ recipes/icon/26.7/a100/environments.yaml | 41 +++++++++++++++++++++++ recipes/icon/26.7/a100/extra/reframe.yaml | 15 +++++++++ recipes/icon/26.7/a100/modules.yaml | 23 +++++++++++++ 5 files changed, 98 insertions(+) create mode 100644 recipes/icon/26.7/a100/compilers.yaml create mode 100644 recipes/icon/26.7/a100/config.yaml create mode 100644 recipes/icon/26.7/a100/environments.yaml create mode 100644 recipes/icon/26.7/a100/extra/reframe.yaml create mode 100644 recipes/icon/26.7/a100/modules.yaml diff --git a/recipes/icon/26.7/a100/compilers.yaml b/recipes/icon/26.7/a100/compilers.yaml new file mode 100644 index 00000000..33a3bde9 --- /dev/null +++ b/recipes/icon/26.7/a100/compilers.yaml @@ -0,0 +1,4 @@ +gcc: + version: "14" +nvhpc: + version: "26.1" diff --git a/recipes/icon/26.7/a100/config.yaml b/recipes/icon/26.7/a100/config.yaml new file mode 100644 index 00000000..1749e654 --- /dev/null +++ b/recipes/icon/26.7/a100/config.yaml @@ -0,0 +1,15 @@ +name: icon +store: /user-environment +spack: + repo: https://github.com/spack/spack.git + commit: releases/v1.1 + packages: + c2sm: + repo: https://github.com/C2SM/spack-c2sm.git + commit: v1.1.1.0 + builtin: + repo: https://github.com/spack/spack-packages.git + commit: v2026.06.0 +modules: true +description: "Compilers and libraries required to build ICON" +version: 2 diff --git a/recipes/icon/26.7/a100/environments.yaml b/recipes/icon/26.7/a100/environments.yaml new file mode 100644 index 00000000..e7f919fb --- /dev/null +++ b/recipes/icon/26.7/a100/environments.yaml @@ -0,0 +1,41 @@ +icon: + compiler: [gcc, nvhpc] + network: + mpi: cray-mpich@9.1.0 +cuda %c,cxx,fortran=nvhpc ^libfabric@2 +gdrcopy %c=nvhpc + specs: [ xpmem ] + unify: when_possible + specs: + - python@3.13 %c,cxx=gcc ^libffi %c,cxx=gcc ^expat %c=gcc ^libmd %c=gcc ^gettext %c,cxx=gcc + - python-venv + - cuda@13.1 + - eccodes@2.36.4 +fortran jp2k=jasper %c,cxx,fortran=nvhpc + - eccodes-cosmo-resources@2.36.0.3 ^eccodes %c,cxx,fortran=nvhpc + - hdf5@1.14.6 +fortran+hl+szip+threadsafe %c,fortran=nvhpc + - netcdf-c@4.9.3 %c,cxx=nvhpc + - netcdf-fortran@4.6.2 %c,fortran=nvhpc + - boost + - openblas %c,cxx,fortran=nvhpc + - serialbox +fortran +netcdf %c,cxx,fortran=nvhpc + # for validation + - cdo + # everything needed for nccl on SS11 + - nccl@2.29.2 + - nccl-tests + - aws-ofi-nccl@1.17.2 + # extras + - libfyaml + - zlib-ng + - cmake + - findutils + variants: + - +mpi + - +cuda + - cuda_arch=80 + views: + default: + link: roots + uenv: + prefix_paths: + LD_LIBRARY_PATH: [lib, lib64] + exclude: + - python-venv diff --git a/recipes/icon/26.7/a100/extra/reframe.yaml b/recipes/icon/26.7/a100/extra/reframe.yaml new file mode 100644 index 00000000..89ed23f7 --- /dev/null +++ b/recipes/icon/26.7/a100/extra/reframe.yaml @@ -0,0 +1,15 @@ +default: + features: + - cuda + - mpi + - cray-mpich + - nccl + - nccl-tests + - openmp + - osu-micro-benchmarks + - serial + cc: mpicc + cxx: mpic++ + ftn: mpifort + views: + - default diff --git a/recipes/icon/26.7/a100/modules.yaml b/recipes/icon/26.7/a100/modules.yaml new file mode 100644 index 00000000..60661f9e --- /dev/null +++ b/recipes/icon/26.7/a100/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 + tcl: + all: + autoload: run + hash_length: 0 + hide_implicits: true + exclude: + - '%gcc@7.5.0' + - '%gcc@12' + - 'gcc %gcc@7.5.0' + projections: + all: '{name}/{version}' From 06b7c0c79119eef5eb4b0b6d899f756f8c5a33ff Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Thu, 20 Aug 2026 10:22:42 +0200 Subject: [PATCH 2/3] add linard to config; add a100 icon recipe to config --- config.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/config.yaml b/config.yaml index 3aae07f2..b7c31519 100644 --- a/config.yaml +++ b/config.yaml @@ -15,6 +15,22 @@ clusters: SLURM_NODES: '1' SLURM_CPU_BIND: 'none' runner: f7t + linard: + targets: + - + uarch: 'a100' + partition: 'normal' + variables: + F7T_URL: 'https://api.cscs.ch/mch/firecrest/v2' + - + uarch: 'zen3' + partition: 'postproc' + variables: + F7T_URL: 'https://api.cscs.ch/mch/firecrest/v2' + SLURM_EXCLUSIVE: '' + SLURM_NODES: '1' + SLURM_CPU_BIND: 'none' + runner: f7t santis: targets: - @@ -48,8 +64,10 @@ uenvs: "26.7": recipes: gh200: '26.7/gh200' + a100: '26.7/a100' deploy: santis: [gh200] + linard: [a100] "25.2": recipes: gh200: '25.2/gh200' From 24370125f153aa050ceade9c1367c3e6ada9cc2b Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Wed, 2 Sep 2026 08:59:42 +0200 Subject: [PATCH 3/3] rc1 for MCH icon production --- recipes/icon/26.7/a100/config.yaml | 5 +++-- recipes/icon/26.7/a100/environments.yaml | 18 +++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/recipes/icon/26.7/a100/config.yaml b/recipes/icon/26.7/a100/config.yaml index 1749e654..4fbe82e6 100644 --- a/recipes/icon/26.7/a100/config.yaml +++ b/recipes/icon/26.7/a100/config.yaml @@ -3,13 +3,14 @@ store: /user-environment spack: repo: https://github.com/spack/spack.git commit: releases/v1.1 + #commit: releases/v1.2 packages: c2sm: repo: https://github.com/C2SM/spack-c2sm.git commit: v1.1.1.0 builtin: repo: https://github.com/spack/spack-packages.git - commit: v2026.06.0 -modules: true + commit: releases/v2026.06 description: "Compilers and libraries required to build ICON" +default-view: icon version: 2 diff --git a/recipes/icon/26.7/a100/environments.yaml b/recipes/icon/26.7/a100/environments.yaml index e7f919fb..1d429ea5 100644 --- a/recipes/icon/26.7/a100/environments.yaml +++ b/recipes/icon/26.7/a100/environments.yaml @@ -1,8 +1,9 @@ icon: compiler: [gcc, nvhpc] network: - mpi: cray-mpich@9.1.0 +cuda %c,cxx,fortran=nvhpc ^libfabric@2 +gdrcopy %c=nvhpc - specs: [ xpmem ] + #mpi: cray-mpich@9.1.0 +cuda %c,cxx,fortran=nvhpc ^libfabric@2 +gdrcopy %c=gcc + mpi: cray-mpich@9.1.0 +cuda %c,cxx=gcc %fortran=nvhpc ^libfabric@2 +gdrcopy %c=gcc + specs: [xpmem] unify: when_possible specs: - python@3.13 %c,cxx=gcc ^libffi %c,cxx=gcc ^expat %c=gcc ^libmd %c=gcc ^gettext %c,cxx=gcc @@ -16,12 +17,11 @@ icon: - boost - openblas %c,cxx,fortran=nvhpc - serialbox +fortran +netcdf %c,cxx,fortran=nvhpc - # for validation - - cdo - # everything needed for nccl on SS11 - - nccl@2.29.2 - - nccl-tests - - aws-ofi-nccl@1.17.2 + # remove: not part of MCH production ICON stack + #- cdo + #- nccl@2.29.2 + #- nccl-tests + #- aws-ofi-nccl@1.17.2 # extras - libfyaml - zlib-ng @@ -32,7 +32,7 @@ icon: - +cuda - cuda_arch=80 views: - default: + icon: link: roots uenv: prefix_paths: