From a6bb7fc9db30d5e4f1d1f99d6a75fca568251391 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <nicolas.richart@epfl.ch> Date: Mon, 15 Jul 2024 10:29:43 +0200 Subject: [PATCH] Pulling changes from pinot-noir-gcc to pinot-noir --- stacks/pinot-noir-gcc/packages_jed.yaml | 5 ++ stacks/pinot-noir/config.yaml | 2 +- stacks/pinot-noir/definitions_cuda.yaml | 8 ++ stacks/pinot-noir/definitions_empty.yaml | 1 + stacks/pinot-noir/definitions_helvetios.yaml | 2 +- stacks/pinot-noir/definitions_izar.yaml | 1 + stacks/pinot-noir/definitions_kuma_h100.yaml | 8 +- stacks/pinot-noir/definitions_kuma_l40s.yaml | 1 + stacks/pinot-noir/modules.yaml | 48 ++++-------- stacks/pinot-noir/modules_empty.yaml | 3 + stacks/pinot-noir/modules_helvetios.yaml | 1 + stacks/pinot-noir/modules_izar.yaml | 1 + stacks/pinot-noir/modules_jed.yaml | 1 + stacks/pinot-noir/modules_kuma_h100.yaml | 9 +++ stacks/pinot-noir/modules_kuma_l40s.yaml | 1 + stacks/pinot-noir/packages.yaml | 13 ++++ stacks/pinot-noir/packages_kuma_h100.yaml | 79 +++++++++++++++++++- stacks/pinot-noir/packages_kuma_l40s.yaml | 79 +++++++++++++++++++- stacks/pinot-noir/packages_stack.yaml | 6 -- stacks/pinot-noir/spack.yaml | 1 + 20 files changed, 215 insertions(+), 55 deletions(-) create mode 100644 stacks/pinot-noir/definitions_cuda.yaml create mode 100644 stacks/pinot-noir/definitions_empty.yaml mode change 100644 => 120000 stacks/pinot-noir/definitions_helvetios.yaml create mode 120000 stacks/pinot-noir/definitions_izar.yaml mode change 100644 => 120000 stacks/pinot-noir/definitions_kuma_h100.yaml create mode 120000 stacks/pinot-noir/definitions_kuma_l40s.yaml create mode 100644 stacks/pinot-noir/modules_empty.yaml create mode 120000 stacks/pinot-noir/modules_helvetios.yaml create mode 120000 stacks/pinot-noir/modules_izar.yaml create mode 120000 stacks/pinot-noir/modules_jed.yaml create mode 100644 stacks/pinot-noir/modules_kuma_h100.yaml create mode 120000 stacks/pinot-noir/modules_kuma_l40s.yaml create mode 100644 stacks/pinot-noir/packages.yaml diff --git a/stacks/pinot-noir-gcc/packages_jed.yaml b/stacks/pinot-noir-gcc/packages_jed.yaml index 186b82d..822d1e2 100644 --- a/stacks/pinot-noir-gcc/packages_jed.yaml +++ b/stacks/pinot-noir-gcc/packages_jed.yaml @@ -23,6 +23,11 @@ packages: - spec: '+cuda cuda_arch=90 +cuda_uvm +wrapper ~openmptarget' when: '%gcc' + kokkos-kernels: + require: + - spec: '+cuda cuda_arch=90' + when: '%gcc' + openmpi: require: - spec: '+cuda cuda_arch=90 target=icelake' diff --git a/stacks/pinot-noir/config.yaml b/stacks/pinot-noir/config.yaml index aff2737..bac71f0 100644 --- a/stacks/pinot-noir/config.yaml +++ b/stacks/pinot-noir/config.yaml @@ -3,7 +3,7 @@ config: install_missing_compilers: false install_tree: - padded_length: 242 + padded_length: False build_stage: - $tempdir/$user/spack-stage diff --git a/stacks/pinot-noir/definitions_cuda.yaml b/stacks/pinot-noir/definitions_cuda.yaml new file mode 100644 index 0000000..4710276 --- /dev/null +++ b/stacks/pinot-noir/definitions_cuda.yaml @@ -0,0 +1,8 @@ +definitions: + - cuda_system_codes: + - cuda + - cudnn + + - cuda_serial_codes: + - nccl + - nvshmem diff --git a/stacks/pinot-noir/definitions_empty.yaml b/stacks/pinot-noir/definitions_empty.yaml new file mode 100644 index 0000000..ca4ba7f --- /dev/null +++ b/stacks/pinot-noir/definitions_empty.yaml @@ -0,0 +1 @@ +definitions: [] diff --git a/stacks/pinot-noir/definitions_helvetios.yaml b/stacks/pinot-noir/definitions_helvetios.yaml deleted file mode 100644 index ca4ba7f..0000000 --- a/stacks/pinot-noir/definitions_helvetios.yaml +++ /dev/null @@ -1 +0,0 @@ -definitions: [] diff --git a/stacks/pinot-noir/definitions_helvetios.yaml b/stacks/pinot-noir/definitions_helvetios.yaml new file mode 120000 index 0000000..3552a78 --- /dev/null +++ b/stacks/pinot-noir/definitions_helvetios.yaml @@ -0,0 +1 @@ +definitions_empty.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/definitions_izar.yaml b/stacks/pinot-noir/definitions_izar.yaml new file mode 120000 index 0000000..2c65e6a --- /dev/null +++ b/stacks/pinot-noir/definitions_izar.yaml @@ -0,0 +1 @@ +definitions_cuda.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/definitions_kuma_h100.yaml b/stacks/pinot-noir/definitions_kuma_h100.yaml deleted file mode 100644 index 0f156fa..0000000 --- a/stacks/pinot-noir/definitions_kuma_h100.yaml +++ /dev/null @@ -1,7 +0,0 @@ -definitions: - - cuda_system_codes: - - cuda - - cudnn - - - cuda_serial_codes: - - nccl diff --git a/stacks/pinot-noir/definitions_kuma_h100.yaml b/stacks/pinot-noir/definitions_kuma_h100.yaml new file mode 120000 index 0000000..2c65e6a --- /dev/null +++ b/stacks/pinot-noir/definitions_kuma_h100.yaml @@ -0,0 +1 @@ +definitions_cuda.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/definitions_kuma_l40s.yaml b/stacks/pinot-noir/definitions_kuma_l40s.yaml new file mode 120000 index 0000000..2c65e6a --- /dev/null +++ b/stacks/pinot-noir/definitions_kuma_l40s.yaml @@ -0,0 +1 @@ +definitions_cuda.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/modules.yaml b/stacks/pinot-noir/modules.yaml index 99f6f3e..38fcc67 100644 --- a/stacks/pinot-noir/modules.yaml +++ b/stacks/pinot-noir/modules.yaml @@ -4,13 +4,13 @@ modules: lmod: hash_length: 0 core_compilers: - - gcc@11.4.1 + - gcc@11.2.1 hierarchy: - mpi all: environment: set: - ${PACKAGE}_ROOT: ${PREFIX} + "{name}_ROOT": "{prefix}" suffixes: '+mpi': mpi '+openmp': openmp @@ -25,20 +25,21 @@ modules: '+ilp64': int64 '+int64': int64 'version_suffix=jl': julia + autoload: run - blacklist_implicits: true + hide_implicits: true - blacklist: + exclude: - lmod gcc: environment: set: - CC: ${PREFIX}/bin/gcc - CXX: ${PREFIX}/bin/g++ - F77: ${PREFIX}/bin/gfortran - FC: ${PREFIX}/bin/gfortran - F90: ${PREFIX}/bin/gfortran + CC: "{prefix}/bin/gcc" + CXX: "{prefix}/bin/g++" + F77: "{prefix}/bin/gfortran" + FC: "{prefix}/bin/gfortran" + F90: "{prefix}/bin/gfortran" cuda@12.4.0: environment: append_path: @@ -47,7 +48,7 @@ modules: openmpi: environment: set: - SLURM_MPI_TYPE: pmi2 + SLURM_MPI_TYPE: pmix OMPI_MCA_btl_openib_warn_default_gid_prefix: '0' append_path: JULIA_LOAD_PATH: ":/ssoft/spack/external/julia/syrah.v1/mpi" @@ -72,8 +73,6 @@ modules: I_MPI_PMI_LIBRARY: /usr/lib64/libpmi2.so I_MPI_EXTRA_FILESYSTEM: '0' SLURM_MPI_TYPE: pmi2 - julia: - autoload: direct metis: suffixes: ~real64: sp @@ -82,26 +81,12 @@ modules: plumed: environment: set: - PLUMED_KERNEL: ${PREFIX}/lib/libplumedKernel.so + PLUMED_KERNEL: "{prefix}/lib/libplumedKernel.so" unset: - PLUMED_ROOT - py-horovod: - autoload: direct - py-keras: - autoload: direct - py-tensorflow: - autoload: direct - py-theano: - autoload: direct - py-torch: - autoload: direct - py-torchvision: - autoload: direct quantum-espresso: suffixes: hdf5=parallel: hdf5 - scala: - autoload: direct scons: suffixes: '^python@:2.99': py2 @@ -116,23 +101,22 @@ modules: comsol: environment: prepend_path: - MATLABPATH: ${PREFIX}/mli + MATLABPATH: "{prefix}/mli" crystal17: template: modules/group_restricted.lua fdtd: environment: prepend_path: - PATH: ${PREFIX}/mpich2/nemesis/bin - LD_LIBRARY_PATH: ${PREFIX}/mpich2/nemesis/lib + PATH: "{prefix}/mpich2/nemesis/bin" + LD_LIBRARY_PATH: "{prefix}/mpich2/nemesis/lib" set: SLURM_MPI_TYPE: pmi2 gaussian: template: modules/group_restricted.lua spark: - autoload: direct environment: prepend_path: - PATH: /ssoft/spack/scripts/all/spark + PATH: "/ssoft/spack/scripts/all/spark" ucx: environment: unset: diff --git a/stacks/pinot-noir/modules_empty.yaml b/stacks/pinot-noir/modules_empty.yaml new file mode 100644 index 0000000..21d0544 --- /dev/null +++ b/stacks/pinot-noir/modules_empty.yaml @@ -0,0 +1,3 @@ +modules: + default: + lmod: {} diff --git a/stacks/pinot-noir/modules_helvetios.yaml b/stacks/pinot-noir/modules_helvetios.yaml new file mode 120000 index 0000000..5be0f31 --- /dev/null +++ b/stacks/pinot-noir/modules_helvetios.yaml @@ -0,0 +1 @@ +modules_empty.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/modules_izar.yaml b/stacks/pinot-noir/modules_izar.yaml new file mode 120000 index 0000000..5be0f31 --- /dev/null +++ b/stacks/pinot-noir/modules_izar.yaml @@ -0,0 +1 @@ +modules_empty.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/modules_jed.yaml b/stacks/pinot-noir/modules_jed.yaml new file mode 120000 index 0000000..5be0f31 --- /dev/null +++ b/stacks/pinot-noir/modules_jed.yaml @@ -0,0 +1 @@ +modules_empty.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/modules_kuma_h100.yaml b/stacks/pinot-noir/modules_kuma_h100.yaml new file mode 100644 index 0000000..c465907 --- /dev/null +++ b/stacks/pinot-noir/modules_kuma_h100.yaml @@ -0,0 +1,9 @@ +modules: + default: + lmod: + openmpi: + environment: + set: + OMPI_MCA_pml: 'ucx' + OMPI_MCA_osc: 'ucx' + UCX_NET_DEVICES: 'mlx5_2:1,mlx5_3:1' diff --git a/stacks/pinot-noir/modules_kuma_l40s.yaml b/stacks/pinot-noir/modules_kuma_l40s.yaml new file mode 120000 index 0000000..7180f05 --- /dev/null +++ b/stacks/pinot-noir/modules_kuma_l40s.yaml @@ -0,0 +1 @@ +modules_kuma_h100.yaml \ No newline at end of file diff --git a/stacks/pinot-noir/packages.yaml b/stacks/pinot-noir/packages.yaml new file mode 100644 index 0000000..01e4aa6 --- /dev/null +++ b/stacks/pinot-noir/packages.yaml @@ -0,0 +1,13 @@ +packages: + all: + providers: + mpi: [openmpi, intel-oneapi-mpi] + iconv: [libiconv] + jpeg: [libjpeg] + zlib-api: [zlib-ng] + require: + - spec: "^libiconv" + when: "^iconv" + + zlib-ng: + require: ['build_system=autotools'] diff --git a/stacks/pinot-noir/packages_kuma_h100.yaml b/stacks/pinot-noir/packages_kuma_h100.yaml index 98433e3..281c152 100644 --- a/stacks/pinot-noir/packages_kuma_h100.yaml +++ b/stacks/pinot-noir/packages_kuma_h100.yaml @@ -2,10 +2,81 @@ packages: all: target: ["zen4"] require: - - spec: ^openmpi +cuda - when: '%gcc ^mpi' + - "~rocm" - - spec: cuda_arch=70 + - spec: cuda_arch=90 target=zen4 when: '+cuda' - - '+cuda' + - spec: '+cuda' + when: '%gcc' + + # --------------------------------------------------------------------------- + hypre: + require: + - spec: '+cuda cuda_arch=90 +unified-memory' + when: '%gcc' + + kokkos: + require: + - spec: '+cuda cuda_arch=90 +cuda_uvm +wrapper ~openmptarget' + when: '%gcc' + + nvshmem: + require: + - spec: '+cuda cuda_arch=90 +ibgda +nccl +ucx +mpi' + + openmpi: + require: + - spec: '+cuda cuda_arch=90 target=zen4' + + petsc: + require: + - spec: '+cuda cuda_arch=90' + when: '%gcc' + + py-tensorflow: + require: + - spec: '+cuda cuda_arch=90 +nccl' + + py-torch: + require: + - spec: '+cuda cuda_arch=90 +nccl +cudnn' + + quantum-espresso: + require: + - spec: '~cuda' + + suite-sparse: + require: + - spec: '+cuda' + + ucx: + require: + - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=90 ~rocm target=zen4' + + # --------------------------------------------------------------------------- + # Externals + # --------------------------------------------------------------------------- + pmix: + buildable: false + externals: + - spec: 'pmix@5.0.2' + prefix: /usr + + rdma-core: + buildable: false + externals: + - spec: 'rdma-core@51.1' + prefix: /usr + + slurm: + buildable: false + externals: + - spec: 'slurm@24-05-0-2' + prefix: /usr + + xpmem: + buildable: false + externals: + - spec: 'xpmem@2.7.3' + prefix: /usr diff --git a/stacks/pinot-noir/packages_kuma_l40s.yaml b/stacks/pinot-noir/packages_kuma_l40s.yaml index ad6b8fb..a1b6aef 100644 --- a/stacks/pinot-noir/packages_kuma_l40s.yaml +++ b/stacks/pinot-noir/packages_kuma_l40s.yaml @@ -2,10 +2,81 @@ packages: all: target: ["zen4"] require: - - spec: ^openmpi +cuda - when: '%gcc ^mpi' + - "~rocm" - - spec: cuda_arch=89 + - spec: cuda_arch=89 target=zen4 when: '+cuda' - - '+cuda' + - spec: '+cuda' + when: '%gcc' + + # --------------------------------------------------------------------------- + hypre: + require: + - spec: '+cuda cuda_arch=89 +unified-memory' + when: '%gcc' + + kokkos: + require: + - spec: '+cuda cuda_arch=89 +cuda_uvm +wrapper ~openmptarget' + when: '%gcc' + + nvshmem: + require: + - spec: '+cuda cuda_arch=89 +ibgda +nccl +ucx +mpi' + + openmpi: + require: + - spec: '+cuda cuda_arch=89 target=zen4' + + petsc: + require: + - spec: '+cuda cuda_arch=89' + when: '%gcc' + + py-tensorflow: + require: + - spec: '+cuda cuda_arch=89 +nccl' + + py-torch: + require: + - spec: '+cuda cuda_arch=89 +nccl +cudnn' + + quantum-espresso: + require: + - spec: '~cuda' + + suite-sparse: + require: + - spec: '+cuda' + + ucx: + require: + - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=89 ~rocm target=zen4' + + # --------------------------------------------------------------------------- + # Externals + # --------------------------------------------------------------------------- + pmix: + buildable: false + externals: + - spec: 'pmix@5.0.2' + prefix: /usr + + rdma-core: + buildable: false + externals: + - spec: 'rdma-core@51.1' + prefix: /usr + + slurm: + buildable: false + externals: + - spec: 'slurm@24-05-0-2' + prefix: /usr + + xpmem: + buildable: false + externals: + - spec: 'xpmem@2.7.3' + prefix: /usr diff --git a/stacks/pinot-noir/packages_stack.yaml b/stacks/pinot-noir/packages_stack.yaml index d12a3aa..65bebbf 100644 --- a/stacks/pinot-noir/packages_stack.yaml +++ b/stacks/pinot-noir/packages_stack.yaml @@ -6,9 +6,6 @@ packages: jpeg: [libjpeg] zlib-api: [zlib-ng] require: - - spec: "^libiconv" - when: "^iconv" - - spec: '+ipo' when: '%gcc' @@ -133,9 +130,6 @@ packages: require: - spec: '+rdmacm +rc +dc +ud +cma +verbs' - zlib-ng: - require: ['build_system=autotools'] - # ---------------------------------------------------------------------------- # System dependencies # ---------------------------------------------------------------------------- diff --git a/stacks/pinot-noir/spack.yaml b/stacks/pinot-noir/spack.yaml index d80e2cc..4450501 100644 --- a/stacks/pinot-noir/spack.yaml +++ b/stacks/pinot-noir/spack.yaml @@ -6,6 +6,7 @@ spack: - packages_env.yaml - modules_stack.yaml + - modules_env.yaml - definitions_env.yaml -- GitLab