From a968d3917e9e4dc1dc3f0564208192f898c82241 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <networms@gmail.ch> Date: Fri, 14 Mar 2025 00:12:58 +0100 Subject: [PATCH 1/7] Linting old stack --- stacks/pinot-noir-gcc/concretizer_common.yaml | 1 + stacks/pinot-noir-gcc/config_common.yaml | 5 +- .../pinot-noir-gcc/definitions_acc_cuda.yaml | 1 + .../pinot-noir-gcc/definitions_acc_none.yaml | 1 + stacks/pinot-noir-gcc/definitions_jed.yaml | 1 + stacks/pinot-noir-gcc/modules_acc_none.yaml | 1 + stacks/pinot-noir-gcc/modules_common.yaml | 39 ++--- stacks/pinot-noir-gcc/modules_empty.yaml | 1 + stacks/pinot-noir-gcc/modules_kuma-h100.yaml | 1 + stacks/pinot-noir-gcc/modules_kuma-l40s.yaml | 7 +- stacks/pinot-noir-gcc/packages_common.yaml | 1 + stacks/pinot-noir-gcc/packages_helvetios.yaml | 7 +- stacks/pinot-noir-gcc/packages_izar.yaml | 7 +- stacks/pinot-noir-gcc/packages_jed.yaml | 51 +++---- stacks/pinot-noir-gcc/packages_kuma-h100.yaml | 49 +++---- stacks/pinot-noir-gcc/packages_kuma-l40s.yaml | 49 +++---- stacks/pinot-noir-gcc/packages_stack.yaml | 135 +++++++++--------- stacks/pinot-noir-gcc/spack.yaml | 17 ++- 18 files changed, 193 insertions(+), 181 deletions(-) diff --git a/stacks/pinot-noir-gcc/concretizer_common.yaml b/stacks/pinot-noir-gcc/concretizer_common.yaml index 698e4c7..161462e 100644 --- a/stacks/pinot-noir-gcc/concretizer_common.yaml +++ b/stacks/pinot-noir-gcc/concretizer_common.yaml @@ -1,3 +1,4 @@ +--- concretizer: reuse: false unify: false diff --git a/stacks/pinot-noir-gcc/config_common.yaml b/stacks/pinot-noir-gcc/config_common.yaml index bac71f0..298e84c 100644 --- a/stacks/pinot-noir-gcc/config_common.yaml +++ b/stacks/pinot-noir-gcc/config_common.yaml @@ -1,9 +1,10 @@ +--- config: -# ccache: true + # ccache: true install_missing_compilers: false install_tree: - padded_length: False + padded_length: false build_stage: - $tempdir/$user/spack-stage diff --git a/stacks/pinot-noir-gcc/definitions_acc_cuda.yaml b/stacks/pinot-noir-gcc/definitions_acc_cuda.yaml index 154a251..6b1aa0c 100644 --- a/stacks/pinot-noir-gcc/definitions_acc_cuda.yaml +++ b/stacks/pinot-noir-gcc/definitions_acc_cuda.yaml @@ -1,3 +1,4 @@ +--- definitions: - cuda_system_codes: - cuda diff --git a/stacks/pinot-noir-gcc/definitions_acc_none.yaml b/stacks/pinot-noir-gcc/definitions_acc_none.yaml index ca4ba7f..8915271 100644 --- a/stacks/pinot-noir-gcc/definitions_acc_none.yaml +++ b/stacks/pinot-noir-gcc/definitions_acc_none.yaml @@ -1 +1,2 @@ +--- definitions: [] diff --git a/stacks/pinot-noir-gcc/definitions_jed.yaml b/stacks/pinot-noir-gcc/definitions_jed.yaml index 0f156fa..3861e72 100644 --- a/stacks/pinot-noir-gcc/definitions_jed.yaml +++ b/stacks/pinot-noir-gcc/definitions_jed.yaml @@ -1,3 +1,4 @@ +--- definitions: - cuda_system_codes: - cuda diff --git a/stacks/pinot-noir-gcc/modules_acc_none.yaml b/stacks/pinot-noir-gcc/modules_acc_none.yaml index 21d0544..cabc79d 100644 --- a/stacks/pinot-noir-gcc/modules_acc_none.yaml +++ b/stacks/pinot-noir-gcc/modules_acc_none.yaml @@ -1,3 +1,4 @@ +--- modules: default: lmod: {} diff --git a/stacks/pinot-noir-gcc/modules_common.yaml b/stacks/pinot-noir-gcc/modules_common.yaml index fd20133..e715d73 100644 --- a/stacks/pinot-noir-gcc/modules_common.yaml +++ b/stacks/pinot-noir-gcc/modules_common.yaml @@ -1,3 +1,4 @@ +--- modules: prefix_inspections: ./lib64: [LD_LIBRARY_PATH] @@ -15,19 +16,19 @@ modules: set: "{name}_ROOT": "{prefix}" suffixes: - '+mpi': mpi - '+openmp': openmp - 'threads=openmp': openmp - '^fftw+openmp': openmp - 'hdf5=parallel': h5 - '+cuda': cuda - '+double-gpu': double-gpu - '+plumed': plumed - '+unwind': unwind - '+debug': dbg - '+ilp64': int64 - '+int64': int64 - 'version_suffix=jl': julia + "+mpi": mpi + "+openmp": openmp + "threads=openmp": openmp + "^fftw+openmp": openmp + "hdf5=parallel": h5 + "+cuda": cuda + "+double-gpu": double-gpu + "+plumed": plumed + "+unwind": unwind + "+debug": dbg + "+ilp64": int64 + "+int64": int64 + "version_suffix=jl": julia autoload: run hide_implicits: true @@ -52,13 +53,13 @@ modules: environment: set: SLURM_MPI_TYPE: pmix - OMPI_MCA_btl_openib_warn_default_gid_prefix: '0' + OMPI_MCA_btl_openib_warn_default_gid_prefix: "0" append_path: JULIA_LOAD_PATH: ":/ssoft/spack/external/julia/syrah.v1/mpi" openblas threads=pthreads: environment: set: - OPENBLAS_NUM_THREADS: '1' + OPENBLAS_NUM_THREADS: "1" hdf5~mpi+cxx: environment: set: @@ -74,7 +75,7 @@ modules: environment: set: I_MPI_PMI_LIBRARY: /usr/lib64/libpmi2.so - I_MPI_EXTRA_FILESYSTEM: '0' + I_MPI_EXTRA_FILESYSTEM: "0" SLURM_MPI_TYPE: pmi2 metis: suffixes: @@ -86,14 +87,14 @@ modules: set: PLUMED_KERNEL: "{prefix}/lib/libplumedKernel.so" unset: - - PLUMED_ROOT + - PLUMED_ROOT quantum-espresso: suffixes: hdf5=parallel: hdf5 scons: suffixes: - '^python@:2.99': py2 - '^python@3:': py3 + "^python@:2.99": py2 + "^python@3:": py3 abaqus: template: modules/group_restricted.lua diff --git a/stacks/pinot-noir-gcc/modules_empty.yaml b/stacks/pinot-noir-gcc/modules_empty.yaml index 21d0544..cabc79d 100644 --- a/stacks/pinot-noir-gcc/modules_empty.yaml +++ b/stacks/pinot-noir-gcc/modules_empty.yaml @@ -1,3 +1,4 @@ +--- modules: default: lmod: {} diff --git a/stacks/pinot-noir-gcc/modules_kuma-h100.yaml b/stacks/pinot-noir-gcc/modules_kuma-h100.yaml index 4599ea4..6bb1f83 100644 --- a/stacks/pinot-noir-gcc/modules_kuma-h100.yaml +++ b/stacks/pinot-noir-gcc/modules_kuma-h100.yaml @@ -1,3 +1,4 @@ +--- modules: default: lmod: diff --git a/stacks/pinot-noir-gcc/modules_kuma-l40s.yaml b/stacks/pinot-noir-gcc/modules_kuma-l40s.yaml index 7be541d..e68a137 100644 --- a/stacks/pinot-noir-gcc/modules_kuma-l40s.yaml +++ b/stacks/pinot-noir-gcc/modules_kuma-l40s.yaml @@ -1,9 +1,10 @@ +--- modules: default: lmod: openmpi: environment: set: - OMPI_MCA_pml: 'ucx' - OMPI_MCA_osc: 'ucx' - UCX_NET_DEVICES: 'mlx5_0:1,mlx5_1:1' + OMPI_MCA_pml: "ucx" + OMPI_MCA_osc: "ucx" + UCX_NET_DEVICES: "mlx5_0:1,mlx5_1:1" diff --git a/stacks/pinot-noir-gcc/packages_common.yaml b/stacks/pinot-noir-gcc/packages_common.yaml index 01e4aa6..b238249 100644 --- a/stacks/pinot-noir-gcc/packages_common.yaml +++ b/stacks/pinot-noir-gcc/packages_common.yaml @@ -1,3 +1,4 @@ +--- packages: all: providers: diff --git a/stacks/pinot-noir-gcc/packages_helvetios.yaml b/stacks/pinot-noir-gcc/packages_helvetios.yaml index fe0d4ad..7c9421c 100644 --- a/stacks/pinot-noir-gcc/packages_helvetios.yaml +++ b/stacks/pinot-noir-gcc/packages_helvetios.yaml @@ -1,8 +1,5 @@ +--- packages: all: target: ["skylake_avx512"] - require: ['~cuda', '~rocm'] - - # py-torch: - # require: - # - spec: '~cuda ~cudnn ~nccl ~rocm' + require: ["~cuda", "~rocm"] diff --git a/stacks/pinot-noir-gcc/packages_izar.yaml b/stacks/pinot-noir-gcc/packages_izar.yaml index 9ce65d9..9ad6f6f 100644 --- a/stacks/pinot-noir-gcc/packages_izar.yaml +++ b/stacks/pinot-noir-gcc/packages_izar.yaml @@ -1,11 +1,12 @@ +--- packages: all: target: ["cannonlake"] require: - spec: ^openmpi +cuda - when: '%gcc ^mpi' + when: "%gcc ^mpi" - spec: cuda_arch=70 - when: '+cuda' + when: "+cuda" - - '+cuda' + - "+cuda" diff --git a/stacks/pinot-noir-gcc/packages_jed.yaml b/stacks/pinot-noir-gcc/packages_jed.yaml index 822d1e2..0662680 100644 --- a/stacks/pinot-noir-gcc/packages_jed.yaml +++ b/stacks/pinot-noir-gcc/packages_jed.yaml @@ -1,3 +1,4 @@ +--- packages: all: target: ["icelake"] @@ -5,57 +6,57 @@ packages: - "~rocm" - spec: cuda_arch=90 target=icelake - when: '+cuda' + when: "+cuda" # - spec: '~cuda' # when: '%oneapi' - - spec: '+cuda' - when: '%gcc' + - spec: "+cuda" + when: "%gcc" # --------------------------------------------------------------------------- hypre: require: - - spec: '+cuda cuda_arch=90 +unified-memory' - when: '%gcc' + - spec: "+cuda cuda_arch=90 +unified-memory" + when: "%gcc" kokkos: require: - - spec: '+cuda cuda_arch=90 +cuda_uvm +wrapper ~openmptarget' - when: '%gcc' + - spec: "+cuda cuda_arch=90 +cuda_uvm +wrapper ~openmptarget" + when: "%gcc" kokkos-kernels: require: - - spec: '+cuda cuda_arch=90' - when: '%gcc' + - spec: "+cuda cuda_arch=90" + when: "%gcc" openmpi: require: - - spec: '+cuda cuda_arch=90 target=icelake' + - spec: "+cuda cuda_arch=90 target=icelake" petsc: require: - - spec: '+cuda cuda_arch=90' - when: '%gcc' + - spec: "+cuda cuda_arch=90" + when: "%gcc" py-tensorflow: require: - - spec: '+cuda cuda_arch=90 +nccl' + - spec: "+cuda cuda_arch=90 +nccl" py-torch: require: - - spec: '+cuda cuda_arch=90 +nccl +cudnn' + - spec: "+cuda cuda_arch=90 +nccl +cudnn" quantum-espresso: require: - - spec: '~cuda' + - spec: "~cuda" suite-sparse: require: - - spec: '+cuda' + - spec: "+cuda" ucx: require: - - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=90 target=icelake ~rocm' + - spec: "+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=90 target=icelake ~rocm" # --------------------------------------------------------------------------- # Externals @@ -63,23 +64,23 @@ packages: pmix: buildable: false externals: - - spec: 'pmix@5.0.2' - prefix: /usr + - spec: "pmix@5.0.2" + prefix: /usr rdma-core: buildable: false externals: - - spec: 'rdma-core@47.1' - prefix: /usr + - spec: "rdma-core@47.1" + prefix: /usr slurm: buildable: false externals: - - spec: 'slurm@24-05-0-2' - prefix: /usr + - spec: "slurm@24-05-0-2" + prefix: /usr xpmem: buildable: false externals: - - spec: 'xpmem@2.7.3' - prefix: /usr + - spec: "xpmem@2.7.3" + prefix: /usr diff --git a/stacks/pinot-noir-gcc/packages_kuma-h100.yaml b/stacks/pinot-noir-gcc/packages_kuma-h100.yaml index b861a64..6eeda3a 100644 --- a/stacks/pinot-noir-gcc/packages_kuma-h100.yaml +++ b/stacks/pinot-noir-gcc/packages_kuma-h100.yaml @@ -1,3 +1,4 @@ +--- packages: all: target: ["zen4"] @@ -5,54 +6,54 @@ packages: - "~rocm" - spec: cuda_arch=90 target=zen4 - when: '+cuda' + when: "+cuda" - - spec: '+cuda' - when: '%gcc' + - spec: "+cuda" + when: "%gcc" # --------------------------------------------------------------------------- hypre: require: - - spec: '+cuda cuda_arch=90 +unified-memory' - when: '%gcc' + - spec: "+cuda cuda_arch=90 +unified-memory" + when: "%gcc" kokkos: require: - - spec: '+cuda cuda_arch=90 +cuda_uvm +wrapper ~openmptarget' - when: '%gcc' + - spec: "+cuda cuda_arch=90 +cuda_uvm +wrapper ~openmptarget" + when: "%gcc" nvshmem: require: - - spec: '+cuda cuda_arch=90 +ibgda +nccl +ucx +mpi +pmix' + - spec: "+cuda cuda_arch=90 +ibgda +nccl +ucx +mpi +pmix" openmpi: require: - - spec: '+cuda cuda_arch=90 target=zen4' + - spec: "+cuda cuda_arch=90 target=zen4" petsc: require: - - spec: '+cuda cuda_arch=90' - when: '%gcc' + - spec: "+cuda cuda_arch=90" + when: "%gcc" py-tensorflow: require: - - spec: '+cuda cuda_arch=90 +nccl' + - spec: "+cuda cuda_arch=90 +nccl" py-torch: require: - - spec: '+cuda cuda_arch=90 +nccl +cudnn' + - spec: "+cuda cuda_arch=90 +nccl +cudnn" quantum-espresso: require: - - spec: '~cuda' + - spec: "~cuda" suite-sparse: require: - - spec: '+cuda' + - spec: "+cuda" ucx: require: - - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=90 ~rocm target=zen4' + - spec: "+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=90 ~rocm target=zen4" # --------------------------------------------------------------------------- # Externals @@ -60,23 +61,23 @@ packages: pmix: buildable: false externals: - - spec: 'pmix@5.0.2' - prefix: /usr + - spec: "pmix@5.0.2" + prefix: /usr rdma-core: buildable: false externals: - - spec: 'rdma-core@51.1' - prefix: /usr + - spec: "rdma-core@51.1" + prefix: /usr slurm: buildable: false externals: - - spec: 'slurm@24-05-0-2' - prefix: /usr + - spec: "slurm@24-05-0-2" + prefix: /usr xpmem: buildable: false externals: - - spec: 'xpmem@2.7.3' - prefix: /usr + - spec: "xpmem@2.7.3" + prefix: /usr diff --git a/stacks/pinot-noir-gcc/packages_kuma-l40s.yaml b/stacks/pinot-noir-gcc/packages_kuma-l40s.yaml index 836cd9c..353a577 100644 --- a/stacks/pinot-noir-gcc/packages_kuma-l40s.yaml +++ b/stacks/pinot-noir-gcc/packages_kuma-l40s.yaml @@ -1,3 +1,4 @@ +--- packages: all: target: ["zen4"] @@ -5,54 +6,54 @@ packages: - "~rocm" - spec: cuda_arch=89 target=zen4 - when: '+cuda' + when: "+cuda" - - spec: '+cuda' - when: '%gcc' + - spec: "+cuda" + when: "%gcc" # --------------------------------------------------------------------------- hypre: require: - - spec: '+cuda cuda_arch=89 +unified-memory' - when: '%gcc' + - spec: "+cuda cuda_arch=89 +unified-memory" + when: "%gcc" kokkos: require: - - spec: '+cuda cuda_arch=89 +cuda_uvm +wrapper ~openmptarget' - when: '%gcc' + - spec: "+cuda cuda_arch=89 +cuda_uvm +wrapper ~openmptarget" + when: "%gcc" nvshmem: require: - - spec: '+cuda cuda_arch=89 +ibgda +nccl +ucx +mpi +pmix' + - spec: "+cuda cuda_arch=89 +ibgda +nccl +ucx +mpi +pmix" openmpi: require: - - spec: '+cuda cuda_arch=89 target=zen4' + - spec: "+cuda cuda_arch=89 target=zen4" petsc: require: - - spec: '+cuda cuda_arch=89' - when: '%gcc' + - spec: "+cuda cuda_arch=89" + when: "%gcc" py-tensorflow: require: - - spec: '+cuda cuda_arch=89 +nccl' + - spec: "+cuda cuda_arch=89 +nccl" py-torch: require: - - spec: '+cuda cuda_arch=89 +nccl +cudnn' + - spec: "+cuda cuda_arch=89 +nccl +cudnn" quantum-espresso: require: - - spec: '~cuda' + - spec: "~cuda" suite-sparse: require: - - spec: '+cuda' + - spec: "+cuda" ucx: require: - - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=89 ~rocm target=zen4' + - spec: "+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=89 ~rocm target=zen4" # --------------------------------------------------------------------------- # Externals @@ -60,23 +61,23 @@ packages: pmix: buildable: false externals: - - spec: 'pmix@5.0.2' - prefix: /usr + - spec: "pmix@5.0.2" + prefix: /usr rdma-core: buildable: false externals: - - spec: 'rdma-core@51.1' - prefix: /usr + - spec: "rdma-core@51.1" + prefix: /usr slurm: buildable: false externals: - - spec: 'slurm@24-05-0-2' - prefix: /usr + - spec: "slurm@24-05-0-2" + prefix: /usr xpmem: buildable: false externals: - - spec: 'xpmem@2.7.3' - prefix: /usr + - spec: "xpmem@2.7.3" + prefix: /usr diff --git a/stacks/pinot-noir-gcc/packages_stack.yaml b/stacks/pinot-noir-gcc/packages_stack.yaml index 65bebbf..be9b291 100644 --- a/stacks/pinot-noir-gcc/packages_stack.yaml +++ b/stacks/pinot-noir-gcc/packages_stack.yaml @@ -1,3 +1,4 @@ +--- packages: all: providers: @@ -18,17 +19,17 @@ packages: boost: prefer: ['~mpi'] require: ['cxxstd=14', '+icu', '+python', '+numpy', '+atomic', '+chrono', - '+container', '+date_time', '+filesystem', '+graph', '+iostreams', '~json', - '+locale', '+log', '+math', '~pic', '+program_options', '+random', '+regex', - '+serialization', '+shared', '+signals', '~singlethreaded', '~stacktrace', - '+system', '~taggedlayout', '+test', '+thread', '+timer', '~type_erasure', - '~versionedlayout', '+wave', '+exception'] + '+container', '+date_time', '+filesystem', '+graph', '+iostreams', '~json', + '+locale', '+log', '+math', '~pic', '+program_options', '+random', '+regex', + '+serialization', '+shared', '+signals', '~singlethreaded', '~stacktrace', + '+system', '~taggedlayout', '+test', '+thread', '+timer', '~type_erasure', + '~versionedlayout', '+wave', '+exception'] cuda: require: - - spec: '@12.4.0' - - spec: '+allow-unsupported-compilers' - when: '%oneapi' + - spec: '@12.4.0' + - spec: '+allow-unsupported-compilers' + when: '%oneapi' fenics-dolfinx: require: ['+slepc'] @@ -38,42 +39,42 @@ packages: gnuplot: require: - - spec: '@5.4.10' + - spec: '@5.4.10' hdf5: prefer: - - spec: '+mpi' - - spec: '@1.14.3' + - spec: '+mpi' + - spec: '@1.14.3' require: - - spec: '+hl +threadsafe +szip +cxx +fortran' - - spec: '+ipo' - when: '%gcc' + - spec: '+hl +threadsafe +szip +cxx +fortran' + - spec: '+ipo' + when: '%gcc' hypre: prefer: - - spec: '@2.31.0 ~magma' + - spec: '@2.31.0 ~magma' intel-oneapi-mkl: prefer: ['~cluster'] kokkos: prefer: ['+openmp', '+numactl', '+memkind', '+threads', - '+aggressive_vectorization'] + '+aggressive_vectorization'] kokkos-kernel: prefer: ['+openmp', '+threads'] lammps: require: ['build_type=Release', '+asphere', '+atc', '+body', '+class2', - '+colloid', '+compress', '+coreshell', '+dipole', '+diffraction', '+extra-dump', - '+granular', '+h5md', '+kspace', '+latboltz', '+latte', '+lib', '+manybody', - '+mc', '+misc', '+molecule', '+mpi', '+mpiio', '+netcdf', '+peri', '~poems', - '+python', '+qeq', '+replica ', '+rigid', '+shock', '+ml-snap', '+srd', - '+voronoi', '+plumed', '+kokkos'] + '+colloid', '+compress', '+coreshell', '+dipole', '+diffraction', '+extra-dump', + '+granular', '+h5md', '+kspace', '+latboltz', '+latte', '+lib', '+manybody', + '+mc', '+misc', '+molecule', '+mpi', '+mpiio', '+netcdf', '+peri', '~poems', + '+python', '+qeq', '+replica ', '+rigid', '+shock', '+ml-snap', '+srd', + '+voronoi', '+plumed', '+kokkos'] libfabric: require: - - spec: 'fabrics=mlx,mrail,psm3,verbs,udp,tcp,sockets,shm' + - spec: 'fabrics=mlx,mrail,psm3,verbs,udp,tcp,sockets,shm' llvm: prefer: ['~clang'] @@ -98,17 +99,17 @@ packages: openmpi: require: - - spec: '@5.0.3 fabrics=ofi,ucx,verbs schedulers=slurm ~rsh +romio romio-filesystem=gpfs +internal-pmix ~memchecker' + - spec: '@5.0.3 fabrics=ofi,ucx,verbs schedulers=slurm ~rsh +romio romio-filesystem=gpfs +internal-pmix ~memchecker' petsc: require: - - spec: '+hypre +mumps +saws +scalapack +mpi +suite-sparse +kokkos' + - spec: '+hypre +mumps +saws +scalapack +mpi +suite-sparse +kokkos' python: require: - - spec: '+ssl +tkinter' - - spec: '+optimizations' - when: '%gcc' + - spec: '+ssl +tkinter' + - spec: '+optimizations' + when: '%gcc' py-tensorflow: require: ['+mpi', '+mkl'] @@ -121,14 +122,14 @@ packages: suite-sparse: require: - - spec: '+graphblas' + - spec: '+graphblas' tk: require: ['+xft', '+xss'] ucx: require: - - spec: '+rdmacm +rc +dc +ud +cma +verbs' + - spec: '+rdmacm +rc +dc +ud +cma +verbs' # ---------------------------------------------------------------------------- # System dependencies @@ -136,26 +137,26 @@ packages: egl: buildable: false externals: - - spec: 'egl@21.3.4' - prefix: /usr + - spec: 'egl@21.3.4' + prefix: /usr pmix: buildable: false externals: - - spec: 'pmix@5.0.1' - prefix: /usr + - spec: 'pmix@5.0.1' + prefix: /usr rdma-core: buildable: false externals: - - spec: 'rdma-core@47.1' - prefix: /usr + - spec: 'rdma-core@47.1' + prefix: /usr slurm: buildable: false externals: - - spec: 'slurm@23-11-7-1' - prefix: /usr + - spec: 'slurm@23-11-7-1' + prefix: /usr # ---------------------------------------------------------------------------- @@ -165,70 +166,70 @@ packages: buildable: false permissions: {read: group, group: abaqus-soft} externals: - - {spec: abaqus@2019, prefix: /ssoft/spack/external/abaqus/2019} - - {spec: abaqus@2023, prefix: /ssoft/spack/external/abaqus/2023} + - {spec: abaqus@2019, prefix: /ssoft/spack/external/abaqus/2019} + - {spec: abaqus@2023, prefix: /ssoft/spack/external/abaqus/2023} ansys: buildable: false externals: - - {spec: ansys@2020R2, prefix: /ssoft/spack/external/ansys/2020R2/v202} - - {spec: ansys@2022R1, prefix: /ssoft/spack/external/ansys/2022R1/v221} - - {spec: ansys@2022R2, prefix: /ssoft/spack/external/ansys/2022R2/v222} - - {spec: ansys@2024R1, prefix: /ssoft/spack/external/ansys/2024R1/v241} + - {spec: ansys@2020R2, prefix: /ssoft/spack/external/ansys/2020R2/v202} + - {spec: ansys@2022R1, prefix: /ssoft/spack/external/ansys/2022R1/v221} + - {spec: ansys@2022R2, prefix: /ssoft/spack/external/ansys/2022R2/v222} + - {spec: ansys@2024R1, prefix: /ssoft/spack/external/ansys/2024R1/v241} cfdplusplus: buildable: false externals: - - {spec: cfdplusplus@16.1, prefix: /ssoft/spack/external/CFD++/2016.05} - - {spec: cfdplusplus@19.1, prefix: /ssoft/spack/external/CFD++/19.1} + - {spec: cfdplusplus@16.1, prefix: /ssoft/spack/external/CFD++/2016.05} + - {spec: cfdplusplus@19.1, prefix: /ssoft/spack/external/CFD++/19.1} comsol: buildable: false permissions: {read: group, group: comsol-soft} externals: - - {spec: comsol@5.6, prefix: /ssoft/spack/external/comsol/5.6/comsol56/multiphysics/} - - {spec: comsol@6.0, prefix: /ssoft/spack/external/comsol/6.0} - - {spec: comsol@6.2, prefix: /ssoft/spack/external/comsol/6.2} + - {spec: comsol@5.6, prefix: /ssoft/spack/external/comsol/5.6/comsol56/multiphysics/} + - {spec: comsol@6.0, prefix: /ssoft/spack/external/comsol/6.0} + - {spec: comsol@6.2, prefix: /ssoft/spack/external/comsol/6.2} fdtd: buildable: false permissions: {read: group, group: fdtd-soft} externals: - - {spec: fdtd@2020-R2-2387, prefix: /ssoft/spack/external/fdtd/8.24.2387} - - {spec: fdtd@2020-R2.4-2502, prefix: /ssoft/spack/external/fdtd/2020-R2.4-2502} - - {spec: fdtd@2021-R2.2-2806, prefix: /ssoft/spack/external/fdtd/2021-R2.2-2806} - - {spec: fdtd@2022-R1.1-2963, prefix: /ssoft/spack/external/fdtd/2022-R1.1-2963} + - {spec: fdtd@2020-R2-2387, prefix: /ssoft/spack/external/fdtd/8.24.2387} + - {spec: fdtd@2020-R2.4-2502, prefix: /ssoft/spack/external/fdtd/2020-R2.4-2502} + - {spec: fdtd@2021-R2.2-2806, prefix: /ssoft/spack/external/fdtd/2021-R2.2-2806} + - {spec: fdtd@2022-R1.1-2963, prefix: /ssoft/spack/external/fdtd/2022-R1.1-2963} gaussian: buildable: false externals: - - {spec: gaussian@g16-A.03, prefix: /ssoft/spack/external/gaussian/g16-A.03/avx2} - - {spec: gaussian@g16-C.01, prefix: /ssoft/spack/external/gaussian/g16-C.01/avx2} + - {spec: gaussian@g16-A.03, prefix: /ssoft/spack/external/gaussian/g16-A.03/avx2} + - {spec: gaussian@g16-C.01, prefix: /ssoft/spack/external/gaussian/g16-C.01/avx2} gurobi: buildable: false externals: - - {spec: gurobi@8.1.1, prefix: /ssoft/spack/external/gurobi/8.1.1} - - {spec: gurobi@9.5.2, prefix: /ssoft/spack/external/gurobi/9.5.2} - - {spec: gurobi@10.0.1, prefix: /ssoft/spack/external/gurobi/10.0.1} + - {spec: gurobi@8.1.1, prefix: /ssoft/spack/external/gurobi/8.1.1} + - {spec: gurobi@9.5.2, prefix: /ssoft/spack/external/gurobi/9.5.2} + - {spec: gurobi@10.0.1, prefix: /ssoft/spack/external/gurobi/10.0.1} maple: buildable: false externals: - - {spec: maple@2017, prefix: /ssoft/spack/external/Maple/2017} + - {spec: maple@2017, prefix: /ssoft/spack/external/Maple/2017} mathematica: buildable: false externals: - - {spec: mathematica@11.1.1, prefix: /ssoft/spack/external/Mathematica/11.1.1} - - {spec: mathematica@13.0, prefix: /ssoft/spack/external/Mathematica/13.0} + - {spec: mathematica@11.1.1, prefix: /ssoft/spack/external/Mathematica/11.1.1} + - {spec: mathematica@13.0, prefix: /ssoft/spack/external/Mathematica/13.0} matlab: buildable: false externals: - - {spec: matlab@R2018a, prefix: /ssoft/spack/external/MATLAB/R2018a} - - {spec: matlab@R2019b, prefix: /ssoft/spack/external/MATLAB/R2019b} - - {spec: matlab@R2024a, prefix: /ssoft/spack/external/MATLAB/R2024a} + - {spec: matlab@R2018a, prefix: /ssoft/spack/external/MATLAB/R2018a} + - {spec: matlab@R2019b, prefix: /ssoft/spack/external/MATLAB/R2019b} + - {spec: matlab@R2024a, prefix: /ssoft/spack/external/MATLAB/R2024a} molpro: buildable: false externals: - - {spec: molpro@2022.3.0, prefix: /ssoft/spack/external/molpro/2022.3.0/mpi} + - {spec: molpro@2022.3.0, prefix: /ssoft/spack/external/molpro/2022.3.0/mpi} smr: buildable: false externals: - - {spec: smr@2017.0, prefix: /ssoft/spack/external/SMR/2017.06} + - {spec: smr@2017.0, prefix: /ssoft/spack/external/SMR/2017.06} totalview: externals: - - {spec: totalview@2017.2.11, prefix: /ssoft/spack/external/toolworks/totalview.2017.2.11} - - {spec: totalview@2020.3.11, prefix: /ssoft/spack/external/toolworks/totalview.2020.3.11} + - {spec: totalview@2017.2.11, prefix: /ssoft/spack/external/toolworks/totalview.2017.2.11} + - {spec: totalview@2020.3.11, prefix: /ssoft/spack/external/toolworks/totalview.2020.3.11} diff --git a/stacks/pinot-noir-gcc/spack.yaml b/stacks/pinot-noir-gcc/spack.yaml index 05cae96..544be02 100644 --- a/stacks/pinot-noir-gcc/spack.yaml +++ b/stacks/pinot-noir-gcc/spack.yaml @@ -1,16 +1,17 @@ +--- spack: include: - - compiler_definitions.yaml + - compiler_definitions.yaml - - packages_stack.yaml - - packages_env.yaml + - packages_stack.yaml + - packages_env.yaml - - modules_stack.yaml - - modules_env.yaml + - modules_stack.yaml + - modules_env.yaml - - definitions_env.yaml + - definitions_env.yaml - - config_stack.yaml + - config_stack.yaml definitions: # ------------------------------------------------------------------------- @@ -103,5 +104,3 @@ spack: - [$%compiler_gcc] view: false -# default: -# root: /stack/packages/ -- GitLab From 2b0a195d3ae7d984626d7c82ca31ea271ad874d5 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <networms@gmail.ch> Date: Fri, 14 Mar 2025 22:26:26 +0100 Subject: [PATCH 2/7] Linting config --- .gitlab-ci.yml | 2 +- .yamllint.yml | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ea83b51..4c97350 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=gitlab-ci # yaml-language-server: $format.enable=false - +--- stages: - linters - checkout diff --git a/.yamllint.yml b/.yamllint.yml index 45efdb5..75da2b7 100644 --- a/.yamllint.yml +++ b/.yamllint.yml @@ -2,7 +2,4 @@ extends: default rules: - line-length: - ignore: - - .hadolint.yaml - - .gitlab-ci.yml + line-length: disable -- GitLab From 080e3a2b73a89ae61400e84a6c0dddae538b09f0 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <networms@gmail.ch> Date: Fri, 14 Mar 2025 22:26:45 +0100 Subject: [PATCH 3/7] Linting pinot-noir --- stacks/pinot-noir/concretizer_common.yaml | 11 +- stacks/pinot-noir/config_common.yaml | 5 +- stacks/pinot-noir/definitions_acc_cuda.yaml | 1 + stacks/pinot-noir/definitions_empty.yaml | 13 +- stacks/pinot-noir/definitions_stack.yaml | 8 +- stacks/pinot-noir/modules_acc_cuda.yaml | 1 + stacks/pinot-noir/modules_common.yaml | 57 +- stacks/pinot-noir/modules_empty.yaml | 1 + stacks/pinot-noir/modules_kuma-h100.yaml | 1 + stacks/pinot-noir/modules_kuma-l40s.yaml | 1 + stacks/pinot-noir/packages_acc_cuda.yaml | 97 ++-- stacks/pinot-noir/packages_acc_none.yaml | 3 +- stacks/pinot-noir/packages_common.yaml | 14 +- stacks/pinot-noir/packages_empty.yaml | 1 + stacks/pinot-noir/packages_izar.yaml | 5 +- stacks/pinot-noir/packages_kuma-h100.yaml | 29 +- stacks/pinot-noir/packages_kuma-l40s.yaml | 29 +- stacks/pinot-noir/packages_stack.yaml | 545 +++++++++++--------- stacks/pinot-noir/spack.yaml | 31 +- stacks/pinot-noir/spack_aocc.yaml | 23 +- stacks/pinot-noir/spack_nvhpc.yaml | 43 +- stacks/pinot-noir/spack_oneapi.yaml | 45 +- 22 files changed, 539 insertions(+), 425 deletions(-) diff --git a/stacks/pinot-noir/concretizer_common.yaml b/stacks/pinot-noir/concretizer_common.yaml index cb79471..fa4713c 100644 --- a/stacks/pinot-noir/concretizer_common.yaml +++ b/stacks/pinot-noir/concretizer_common.yaml @@ -1,10 +1,11 @@ +--- concretizer: reuse: false - # roots: true - # include: - # - "%gcc@11.2.1" - # from: - # - type: local + # roots: true + # include: + # - "%gcc@11.2.1" + # from: + # - type: local unify: false duplicates: strategy: minimal diff --git a/stacks/pinot-noir/config_common.yaml b/stacks/pinot-noir/config_common.yaml index bac71f0..8e3ccaf 100644 --- a/stacks/pinot-noir/config_common.yaml +++ b/stacks/pinot-noir/config_common.yaml @@ -1,9 +1,10 @@ +--- config: -# ccache: true + # ccache: true install_missing_compilers: false install_tree: - padded_length: False + padded_length: false build_stage: - $tempdir/$user/spack-stage diff --git a/stacks/pinot-noir/definitions_acc_cuda.yaml b/stacks/pinot-noir/definitions_acc_cuda.yaml index d417ff1..a7f4dcf 100644 --- a/stacks/pinot-noir/definitions_acc_cuda.yaml +++ b/stacks/pinot-noir/definitions_acc_cuda.yaml @@ -1,3 +1,4 @@ +--- definitions: - cuda_system_codes: [] diff --git a/stacks/pinot-noir/definitions_empty.yaml b/stacks/pinot-noir/definitions_empty.yaml index 5449b15..bee4928 100644 --- a/stacks/pinot-noir/definitions_empty.yaml +++ b/stacks/pinot-noir/definitions_empty.yaml @@ -1,9 +1,10 @@ +--- definitions: - # ------------------------------------------------------------------------- - # Empty to specialize in environments - # ------------------------------------------------------------------------- - - cuda_system_codes: [] + # ------------------------------------------------------------------------- + # Empty to specialize in environments + # ------------------------------------------------------------------------- + - cuda_system_codes: [] - - cuda_serial_codes: [] + - cuda_serial_codes: [] - - cuda_mpi_codes: [] + - cuda_mpi_codes: [] diff --git a/stacks/pinot-noir/definitions_stack.yaml b/stacks/pinot-noir/definitions_stack.yaml index 765cfa9..d94c80f 100644 --- a/stacks/pinot-noir/definitions_stack.yaml +++ b/stacks/pinot-noir/definitions_stack.yaml @@ -1,3 +1,4 @@ +--- definitions: # ------------------------------------------------------------------------- # Core packages @@ -27,7 +28,7 @@ definitions: - lmod - mpfr - neovim - #- ninja + # - ninja - papi - parallel - picard @@ -167,7 +168,7 @@ definitions: - python_blas_codes: - boost ~~mpi - #- gmsh ~~mpi +hdf5 +cgns +eigen ~opencascade +openmp ~fltk ~med + # - gmsh ~~mpi +hdf5 +cgns +eigen ~opencascade +openmp ~fltk ~med - iq-tree - py-biopython - py-keras-preprocessing @@ -191,7 +192,7 @@ definitions: - py-pymol ^hdf5~mpi - py-scikit-learn - py-scipy - #- py-statsmodels + # - py-statsmodels - py-theano - r @@ -221,7 +222,6 @@ definitions: - scorep - nvhpc_mpi_codes: [] - #- boost ++mpi - mpi_python_codes: - py-mpi4py diff --git a/stacks/pinot-noir/modules_acc_cuda.yaml b/stacks/pinot-noir/modules_acc_cuda.yaml index d098e12..baf4515 100644 --- a/stacks/pinot-noir/modules_acc_cuda.yaml +++ b/stacks/pinot-noir/modules_acc_cuda.yaml @@ -1,3 +1,4 @@ +--- modules: default: lmod: diff --git a/stacks/pinot-noir/modules_common.yaml b/stacks/pinot-noir/modules_common.yaml index 135e4d5..f5d5454 100644 --- a/stacks/pinot-noir/modules_common.yaml +++ b/stacks/pinot-noir/modules_common.yaml @@ -1,3 +1,4 @@ +--- modules: prefix_inspections: ./lib: @@ -17,20 +18,20 @@ modules: set: "{name}_ROOT": "{prefix}" suffixes: - '+mpi': mpi - '+openmp': openmp - 'threads=openmp': openmp - '^fftw+openmp': openmp - 'hdf5=parallel': h5 - '+cuda': cuda - '+double-gpu': double-gpu - '+plumed': plumed - '+unwind': unwind - '+debug': dbg - '+ilp64': int64 - '+int64': int64 - 'version_suffix=jl': julia - 'interface=tcl': tcl + "+mpi": mpi + "+openmp": openmp + "threads=openmp": openmp + "^fftw+openmp": openmp + "hdf5=parallel": h5 + "+cuda": cuda + "+double-gpu": double-gpu + "+plumed": plumed + "+unwind": unwind + "+debug": dbg + "+ilp64": int64 + "+int64": int64 + "version_suffix=jl": julia + "interface=tcl": tcl autoload: run hide_implicits: true @@ -47,23 +48,23 @@ modules: FC: "{prefix}/bin/gfortran" F90: "{prefix}/bin/gfortran" -# cuda: -# environment: -# append_path: -# JULIA_LOAD_PATH: ":/ssoft/spack/external/julia/syrah.v1/cuda" + # cuda: + # environment: + # append_path: + # JULIA_LOAD_PATH: ":/ssoft/spack/external/julia/syrah.v1/cuda" openmpi: environment: set: 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" + OMPI_MCA_btl_openib_warn_default_gid_prefix: "0" + # append_path: + # JULIA_LOAD_PATH: ":/ssoft/spack/external/julia/syrah.v1/mpi" openblas threads=pthreads: environment: set: - OPENBLAS_NUM_THREADS: '1' + OPENBLAS_NUM_THREADS: "1" hdf5~mpi+cxx: environment: @@ -82,7 +83,7 @@ modules: environment: set: I_MPI_PMI_LIBRARY: /usr/lib64/libpmi2.so - I_MPI_EXTRA_FILESYSTEM: '0' + I_MPI_EXTRA_FILESYSTEM: "0" SLURM_MPI_TYPE: pmi2 metis: @@ -97,7 +98,7 @@ modules: set: PLUMED_KERNEL: "{prefix}/lib/libplumedKernel.so" unset: - - PLUMED_ROOT + - PLUMED_ROOT quantum-espresso: suffixes: @@ -105,8 +106,8 @@ modules: scons: suffixes: - '^python@:2.99': py2 - '^python@3:': py3 + "^python@:2.99": py2 + "^python@3:": py3 ucx: environment: @@ -127,11 +128,11 @@ modules: fdtd: environment: set: - ANSYSLMD_LICENSE_FILE: '1055@scitas-lic-srv.epfl.ch' + ANSYSLMD_LICENSE_FILE: "1055@scitas-lic-srv.epfl.ch" SLURM_MPI_TYPE: pmi2 gaussian: - template: modules/group_restricted.lua + template: modules/group_restricted.lua spark: environment: diff --git a/stacks/pinot-noir/modules_empty.yaml b/stacks/pinot-noir/modules_empty.yaml index 21d0544..cabc79d 100644 --- a/stacks/pinot-noir/modules_empty.yaml +++ b/stacks/pinot-noir/modules_empty.yaml @@ -1,3 +1,4 @@ +--- modules: default: lmod: {} diff --git a/stacks/pinot-noir/modules_kuma-h100.yaml b/stacks/pinot-noir/modules_kuma-h100.yaml index 8ddd771..4e874cb 100644 --- a/stacks/pinot-noir/modules_kuma-h100.yaml +++ b/stacks/pinot-noir/modules_kuma-h100.yaml @@ -1,3 +1,4 @@ +--- modules: default: lmod: diff --git a/stacks/pinot-noir/modules_kuma-l40s.yaml b/stacks/pinot-noir/modules_kuma-l40s.yaml index 10a02d6..c6ca875 100644 --- a/stacks/pinot-noir/modules_kuma-l40s.yaml +++ b/stacks/pinot-noir/modules_kuma-l40s.yaml @@ -1,3 +1,4 @@ +--- modules: default: lmod: diff --git a/stacks/pinot-noir/packages_acc_cuda.yaml b/stacks/pinot-noir/packages_acc_cuda.yaml index f4eccc4..054a26b 100644 --- a/stacks/pinot-noir/packages_acc_cuda.yaml +++ b/stacks/pinot-noir/packages_acc_cuda.yaml @@ -1,108 +1,117 @@ +--- packages: all: require: - "~rocm" - spec: cuda_arch={cuda_arch} - when: '+cuda' + when: "+cuda" - - spec: '+cuda' - when: '%gcc' + - spec: "+cuda" + when: "%gcc" - - spec: '+cuda' - when: '%nvhpc' + - spec: "+cuda" + when: "%nvhpc" # --------------------------------------------------------------------------- amber: - require: ['+nccl'] + require: ["+nccl"] charmpp: - require: ['+smp', '~cuda'] + require: ["+smp", "~cuda"] cuda: prefer: - - spec: "^gcc-runtime@{gcc_version} target={target}" - when: "%gcc@{gcc_version}" - - spec: "%gcc@{gcc_version} target={target}" - when: "%gcc" - - spec: "target={target}" - when: "%nvhpc" + - spec: "^gcc-runtime@{gcc_version} target={target}" + when: "%gcc@{gcc_version}" + - spec: "%gcc@{gcc_version} target={target}" + when: "%gcc" + - spec: "target={target}" + when: "%nvhpc" require: - - spec: '@12.4.1' - when: '%gcc' - - spec: '@12.5.1' - when: '%nvhpc' + - spec: "@12.4.1" + when: "%gcc" + - spec: "@12.5.1" + when: "%nvhpc" hypre: - require: ['+cuda', 'cuda_arch={cuda_arch}', '+unified-memory'] + require: ["+cuda", "cuda_arch={cuda_arch}", "+unified-memory"] hwloc: - require: ['+cuda', 'cuda_arch={cuda_arch}', '+nvml'] + require: ["+cuda", "cuda_arch={cuda_arch}", "+nvml"] kokkos: - require: ['+cuda', '+cuda_lambda', 'cuda_arch={cuda_arch}', '+wrapper', '~openmptarget'] + require: + [ + "+cuda", + "+cuda_lambda", + "cuda_arch={cuda_arch}", + "+wrapper", + "~openmptarget", + ] kokkos-kernels: - require: ['+cuda', '+cublas', '+cusolver', '+cusparse', 'cuda_arch={cuda_arch}'] + require: + ["+cuda", "+cublas", "+cusolver", "+cusparse", "cuda_arch={cuda_arch}"] libxc: - require: ['+cuda', 'cuda_arch={cuda_arch}'] + require: ["+cuda", "cuda_arch={cuda_arch}"] namd: - require: ['+cuda', '+single_node_gpu', 'cuda_arch={cuda_arch}'] + require: ["+cuda", "+single_node_gpu", "cuda_arch={cuda_arch}"] nvshmem: require: - - spec: '+cuda cuda_arch={cuda_arch} +nccl +ucx +mpi' - - spec: '+ibgda' - when: '@3:' + - spec: "+cuda cuda_arch={cuda_arch} +nccl +ucx +mpi" + - spec: "+ibgda" + when: "@3:" openmpi: - require: ['+cuda', 'cuda_arch={cuda_arch}'] + require: ["+cuda", "cuda_arch={cuda_arch}"] papi: - require: ['+nvml', '+infiniband', '+cuda'] + require: ["+nvml", "+infiniband", "+cuda"] paraview: - require: ['~cuda'] + require: ["~cuda"] petsc: - require: ['+cuda', 'cuda_arch={cuda_arch}'] + require: ["+cuda", "cuda_arch={cuda_arch}"] py-tensorflow: require: - - spec: '+cuda cuda_arch={cuda_arch} +nccl' + - spec: "+cuda cuda_arch={cuda_arch} +nccl" py-torch: require: - - spec: '+cuda cuda_arch={cuda_arch} +nccl +cudnn' + - spec: "+cuda cuda_arch={cuda_arch} +nccl +cudnn" python: require: - - spec: 'target={target}' - when: '%gcc@{gcc_version}' + - spec: "target={target}" + when: "%gcc@{gcc_version}" quantum-espresso: require: - - spec: '+cuda +mpigpu' - when: '%nvhpc' + - spec: "+cuda +mpigpu" + when: "%nvhpc" sirius: - require: ['+cuda', 'cuda_arch={cuda_arch}'] + require: ["+cuda", "cuda_arch={cuda_arch}"] slepc: - require: ['+cuda', 'cuda_arch={cuda_arch}'] + require: ["+cuda", "cuda_arch={cuda_arch}"] suite-sparse: require: - - spec: '+cuda' - when: '@7.3.1' - - spec: '~cuda' - when: '@7.2.1' + - spec: "+cuda" + when: "@7.3.1" + - spec: "~cuda" + when: "@7.2.1" ucc: require: - - spec: '+cuda cuda_arch={cuda_arch} +nccl' + - spec: "+cuda cuda_arch={cuda_arch} +nccl" ucx: - require: ['+gdrcopy', '+cuda', 'cuda_arch={cuda_arch}', '~rocm'] + require: ["+gdrcopy", "+cuda", "cuda_arch={cuda_arch}", "~rocm"] diff --git a/stacks/pinot-noir/packages_acc_none.yaml b/stacks/pinot-noir/packages_acc_none.yaml index 0aa29d8..cb1f937 100644 --- a/stacks/pinot-noir/packages_acc_none.yaml +++ b/stacks/pinot-noir/packages_acc_none.yaml @@ -1,3 +1,4 @@ +--- packages: all: - require: ['~cuda', '~rocm'] + require: ["~cuda", "~rocm"] diff --git a/stacks/pinot-noir/packages_common.yaml b/stacks/pinot-noir/packages_common.yaml index df8edbc..72bd4d6 100644 --- a/stacks/pinot-noir/packages_common.yaml +++ b/stacks/pinot-noir/packages_common.yaml @@ -1,3 +1,4 @@ +--- packages: all: compiler: @@ -15,21 +16,20 @@ packages: uuid: [libuuid] zlib-api: [zlib-ng+compat] - glibc: - prefer: ['%gcc@11.2.1'] + prefer: ["%gcc@11.2.1"] jpeg: - require: ['libjpeg'] + require: ["libjpeg"] pkgconfig: - require: ['pkgconf'] + require: ["pkgconf"] uuid: - require: ['libuuid'] + require: ["libuuid"] zlib-api: - require: ['zlib-ng'] + require: ["zlib-ng"] zlib-ng: - require: ['+compat', 'build_system=autotools'] + require: ["+compat", "build_system=autotools"] diff --git a/stacks/pinot-noir/packages_empty.yaml b/stacks/pinot-noir/packages_empty.yaml index c33c0b6..e45565d 100644 --- a/stacks/pinot-noir/packages_empty.yaml +++ b/stacks/pinot-noir/packages_empty.yaml @@ -1 +1,2 @@ +--- packages: {} diff --git a/stacks/pinot-noir/packages_izar.yaml b/stacks/pinot-noir/packages_izar.yaml index fdd4f0b..6386f84 100644 --- a/stacks/pinot-noir/packages_izar.yaml +++ b/stacks/pinot-noir/packages_izar.yaml @@ -1,6 +1,7 @@ +--- packages: cp2k: - require: ['+cuda', 'cuda_arch=70'] + require: ["+cuda", "cuda_arch=70"] dbcsr: - require: ['+cuda', 'cuda_arch=70'] + require: ["+cuda", "cuda_arch=70"] diff --git a/stacks/pinot-noir/packages_kuma-h100.yaml b/stacks/pinot-noir/packages_kuma-h100.yaml index 465a45a..4c98d47 100644 --- a/stacks/pinot-noir/packages_kuma-h100.yaml +++ b/stacks/pinot-noir/packages_kuma-h100.yaml @@ -1,15 +1,16 @@ +--- packages: cp2k: - require: ['+cuda', 'cuda_arch=90'] + require: ["+cuda", "cuda_arch=90"] dbcsr: - require: ['+cuda', 'cuda_arch=90'] + require: ["+cuda", "cuda_arch=90"] openmpi: - require: ['fabrics=hcoll'] + require: ["fabrics=hcoll"] ucx: - require: ['+xpmem'] + require: ["+xpmem"] # --------------------------------------------------------------------------- # Externals @@ -17,29 +18,29 @@ packages: hcoll: buildable: false externals: - - spec: 'hcoll@4.8.3227' - prefix: /opt/mellanox/hcoll + - spec: "hcoll@4.8.3227" + prefix: /opt/mellanox/hcoll pmix: buildable: false externals: - - spec: 'pmix@5.0.2' - prefix: /usr + - spec: "pmix@5.0.2" + prefix: /usr rdma-core: buildable: false externals: - - spec: 'rdma-core@51.1' - prefix: /usr + - spec: "rdma-core@51.1" + prefix: /usr slurm: buildable: false externals: - - spec: 'slurm@24-05-2-1' - prefix: /usr + - spec: "slurm@24-05-2-1" + prefix: /usr xpmem: buildable: false externals: - - spec: 'xpmem@2.7.3' - prefix: /usr + - 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 63ca5c9..1538702 100644 --- a/stacks/pinot-noir/packages_kuma-l40s.yaml +++ b/stacks/pinot-noir/packages_kuma-l40s.yaml @@ -1,16 +1,17 @@ +--- packages: # --------------------------------------------------------------------------- cp2k: - require: ['~cuda'] + require: ["~cuda"] dbcsr: - require: ['~cuda'] + require: ["~cuda"] openmpi: - require: ['fabrics=hcoll'] + require: ["fabrics=hcoll"] ucx: - require: ['+xpmem'] + require: ["+xpmem"] # --------------------------------------------------------------------------- # Externals @@ -18,29 +19,29 @@ packages: hcoll: buildable: false externals: - - spec: 'hcoll@4.8.3227' - prefix: /opt/mellanox/hcoll + - spec: "hcoll@4.8.3227" + prefix: /opt/mellanox/hcoll pmix: buildable: false externals: - - spec: 'pmix@5.0.2' - prefix: /usr + - spec: "pmix@5.0.2" + prefix: /usr rdma-core: buildable: false externals: - - spec: 'rdma-core@51.1' - prefix: /usr + - spec: "rdma-core@51.1" + prefix: /usr slurm: buildable: false externals: - - spec: 'slurm@24-05-2-1' - prefix: /usr + - spec: "slurm@24-05-2-1" + prefix: /usr xpmem: buildable: false externals: - - spec: 'xpmem@2.7.3' - prefix: /usr + - spec: "xpmem@2.7.3" + prefix: /usr diff --git a/stacks/pinot-noir/packages_stack.yaml b/stacks/pinot-noir/packages_stack.yaml index 7fda048..a2b8d19 100644 --- a/stacks/pinot-noir/packages_stack.yaml +++ b/stacks/pinot-noir/packages_stack.yaml @@ -1,406 +1,472 @@ +--- packages: all: target: ["{target}"] - prefer: ['target={target}'] + prefer: ["target={target}"] require: - - spec: '+ipo' - when: '%gcc' + - spec: "+ipo" + when: "%gcc" # ---------------------------------------------------------------------------- # Requirements # ---------------------------------------------------------------------------- adios2: - require: ['+kokkos', '+mgard', '~zfp'] + require: ["+kokkos", "+mgard", "~zfp"] apr: # https://issues.apache.org/jira/browse/SVN-4813 - require: ['@1.6.2'] + require: ["@1.6.2"] arpack-ng: - prefer: ['+mpi'] + prefer: ["+mpi"] boost: - prefer: ['~mpi'] + prefer: ["~mpi"] require: - - 'cxxstd=14' - - '+icu' - - '+atomic' - - '+chrono' - - '+container' - - '+date_time' - - '+filesystem' - - '+graph' - - '+iostreams' - - '~json' - - '+locale' - - '+log' - - '+math' - - '~pic' - - '+program_options' - - '+random' - - '+regex' - - '+serialization' - - '+shared' - - '+signals' - - '~singlethreaded' - - '~stacktrace' - - '+system' - - '~taggedlayout' - - '+test' - - '+thread' - - '+timer' - - '~type_erasure' - - '~versionedlayout' - - '+wave' - - '+exception' - - - spec: '+python +numpy' - when: '%gcc' - - - spec: '+python +numpy' - when: '%oneapi' - - - spec: '+python ~numpy' - when: '%nvhpc' + - "cxxstd=14" + - "+icu" + - "+atomic" + - "+chrono" + - "+container" + - "+date_time" + - "+filesystem" + - "+graph" + - "+iostreams" + - "~json" + - "+locale" + - "+log" + - "+math" + - "~pic" + - "+program_options" + - "+random" + - "+regex" + - "+serialization" + - "+shared" + - "+signals" + - "~singlethreaded" + - "~stacktrace" + - "+system" + - "~taggedlayout" + - "+test" + - "+thread" + - "+timer" + - "~type_erasure" + - "~versionedlayout" + - "+wave" + - "+exception" + + - spec: "+python +numpy" + when: "%gcc" + + - spec: "+python +numpy" + when: "%oneapi" + + - spec: "+python ~numpy" + when: "%nvhpc" cairo: # ~X avoids a dependency to python (only prefer due to gtkplus) - prefer: ['~X', '+svg'] - require: ['+fc', '+ft', '+pdf', '+gobject'] + prefer: ["~X", "+svg"] + require: ["+fc", "+ft", "+pdf", "+gobject"] cmake: - prefer: ['~ncurses', '^curl tls=mbedtls'] + prefer: ["~ncurses", "^curl tls=mbedtls"] costa: - require: ['~apps'] + require: ["~apps"] cp2k: - require: ['~ipo'] + require: ["~ipo"] curl: require: - - '@8.7.1' - - '+nghttp2' - - '+libidn2' - - '+libssh2' - - one_of: ['tls=openssl', 'tls=mbedtls'] + - "@8.7.1" + - "+nghttp2" + - "+libidn2" + - "+libssh2" + - one_of: ["tls=openssl", "tls=mbedtls"] prefer: - - 'tls=mbedtls' + - "tls=mbedtls" dbcsr: - require: ['smm=blas'] + require: ["smm=blas"] emacs: - prefer: ['+tls', '+X', 'toolkit=athena'] + prefer: ["+tls", "+X", "toolkit=athena"] expat: - prefer: ['libbsd'] + prefer: ["libbsd"] fenics-dolfinx: - require: ['@0.8.0', '+slepc'] + require: ["@0.8.0", "+slepc"] ffmpeg: - require: ['+libx264'] + require: ["+libx264"] fftw: - prefer: ['+mpi', '+openmp'] + prefer: ["+mpi", "+openmp"] gettext: - require: ['+libxml2', '+xz'] + require: ["+libxml2", "+xz"] gnuplot: - require: ['@5.4.10', '+cairo'] + require: ["@5.4.10", "+cairo"] hdf5: prefer: - - spec: '@1.14.3' + - spec: "@1.14.3" require: - - spec: '+hl +threadsafe +szip +cxx +fortran' - - spec: '+ipo' - when: '%gcc' - - spec: 'target={target}' - when: '%gcc@{gcc_version}' - + - spec: "+hl +threadsafe +szip +cxx +fortran" + - spec: "+ipo" + when: "%gcc" + - spec: "target={target}" + when: "%gcc@{gcc_version}" hwloc: require: ["+libxml2", "+pci"] hypre: prefer: - - spec: '@2.31.0 ~magma' + - spec: "@2.31.0 ~magma" intel-oneapi-mkl: - prefer: ['~cluster'] + prefer: ["~cluster"] ior: - require: ['+hdf5'] + require: ["+hdf5"] julia: - require: ['@1.10.4'] + require: ["@1.10.4"] kokkos: - require: ['+numactl', '+memkind', '+serial', - '+openmp', '~openmptarget', - '~threads', '~sycl', - '+aggressive_vectorization', '@4.3.01'] + require: + [ + "+numactl", + "+memkind", + "+serial", + "+openmp", + "~openmptarget", + "~threads", + "~sycl", + "+aggressive_vectorization", + "@4.3.01", + ] kokkos-kernels: - require: ['@4.3.01', '+openmp', '~threads', '~ipo'] + require: ["@4.3.01", "+openmp", "~threads", "~ipo"] kokkos-nvcc-wrapper: - prefer: ['@4.3.01'] + prefer: ["@4.3.01"] lammps: - require: ['@20230802.3', - 'build_type=Release', '+asphere', '+atc', '+body', '+class2', - '+colloid', '+compress', '+coreshell', '+dipole', '+diffraction', - '+extra-dump', '+granular', '+h5md', '+kspace', '+latboltz', - '+lib', '+manybody', '+mc', '+misc', '+molecule', - '+mpi', '+netcdf', '+peri', '~poems', '+python', '+qeq', - '+replica ', '+rigid', '+shock', '+ml-snap', '+srd', '+voronoi', - '+plumed', '+kokkos'] + require: + [ + "@20230802.3", + "build_type=Release", + "+asphere", + "+atc", + "+body", + "+class2", + "+colloid", + "+compress", + "+coreshell", + "+dipole", + "+diffraction", + "+extra-dump", + "+granular", + "+h5md", + "+kspace", + "+latboltz", + "+lib", + "+manybody", + "+mc", + "+misc", + "+molecule", + "+mpi", + "+netcdf", + "+peri", + "~poems", + "+python", + "+qeq", + "+replica ", + "+rigid", + "+shock", + "+ml-snap", + "+srd", + "+voronoi", + "+plumed", + "+kokkos", + ] libfabric: require: - - spec: 'fabrics=mlx,mrail,psm3,verbs,udp,tcp,sockets,shm' + - spec: "fabrics=mlx,mrail,psm3,verbs,udp,tcp,sockets,shm" libffi: - require: ['@3.4.6'] + require: ["@3.4.6"] libpressio: - require: ['~qoz', '~sz3'] + require: ["~qoz", "~sz3"] libssh2: - prefer: ['crypto=openssl'] + prefer: ["crypto=openssl"] libtiff: - require: ['build_system=cmake', '+pic', '+shared', '+jpeg'] + require: ["build_system=cmake", "+pic", "+shared", "+jpeg"] libtool: - require: ['@2.4.6'] + require: ["@2.4.6"] libxc: - require: ['build_system=cmake', '+shared'] + require: ["build_system=cmake", "+shared"] libxcb: - require: ['+use_spack_interpreter'] + require: ["+use_spack_interpreter"] libxkbcommon: - require: ['~wayland'] + require: ["~wayland"] libxml2: # python depends on libxml2 this avoid cyclic dependency - require: ['~python'] + require: ["~python"] likwid: - require: ['@5.3.0'] + require: ["@5.3.0"] llvm: # avoid compiler in lmod module - prefer: ['~clang'] + prefer: ["~clang"] require: - - spec: '~cuda' - when: '@15:' + - spec: "~cuda" + when: "@15:" m4: - require: ['+sigsegv'] + require: ["+sigsegv"] magma: # https://groups.google.com/a/icl.utk.edu/g/magma-user/c/l2XWTKmuBH0 - require: ['~ipo'] + require: ["~ipo"] mbedtls: - prefer: ['@3.3.0', 'libs=shared,static'] + prefer: ["@3.3.0", "libs=shared,static"] memkind: - require: ['%gcc'] + require: ["%gcc"] mesa: - require: ['~llvm', '+opengl', '+opengles', '+osmesa'] + require: ["~llvm", "+opengl", "+opengles", "+osmesa"] meson: - prefer: ['@1.2.1'] + prefer: ["@1.2.1"] metis: - require: ['+real64'] + require: ["+real64"] mgard: - require: ['~cuda'] + require: ["~cuda"] mpfr: - require: ['@4.0.2'] + require: ["@4.0.2"] mumps: - require: ['+openmp', '+metis', '+parmetis'] + require: ["+openmp", "+metis", "+parmetis"] namd: - require: ['interface=tcl'] + require: ["interface=tcl"] netcdf-c: - prefer: ['+mpi'] + prefer: ["+mpi"] opari2: - require: ['%gcc'] + require: ["%gcc"] openblas: - require: ['build_system=makefile'] - prefer: ['threads=openmp', 'symbol_suffix=none', '~ilp64'] + require: ["build_system=makefile"] + prefer: ["threads=openmp", "symbol_suffix=none", "~ilp64"] opencv: - prefer: ['+vtk', '+python3'] + prefer: ["+vtk", "+python3"] openmpi: - require: ['@5.0.3', - 'fabrics=ofi,ucc,ucx,verbs', - 'schedulers=slurm', - '+romio', 'romio-filesystem=gpfs', - '+internal-pmix', '~rsh', - '~memchecker'] + require: + [ + "@5.0.3", + "fabrics=ofi,ucc,ucx,verbs", + "schedulers=slurm", + "+romio", + "romio-filesystem=gpfs", + "+internal-pmix", + "~rsh", + "~memchecker", + ] openssl: - prefer: ['+shared', 'certs=system', '~docs'] + prefer: ["+shared", "certs=system", "~docs"] otf2: - require: ['%gcc'] + require: ["%gcc"] pango: - prefer: ['~X'] + prefer: ["~X"] papi: require: - - '+powercap' - - '+rapl' - - any_of: ['%gcc', '%oneapi'] - + - "+powercap" + - "+rapl" + - any_of: ["%gcc", "%oneapi"] petsc: - require: ['+hypre', '+mumps', '+saws', '+scalapack', '+mpi', '+hdf5', - '+suite-sparse', '+kokkos', '+openmp', '+superlu-dist'] + require: + [ + "+hypre", + "+mumps", + "+saws", + "+scalapack", + "+mpi", + "+hdf5", + "+suite-sparse", + "+kokkos", + "+openmp", + "+superlu-dist", + ] python: require: - - '@3.11.7' - - '+ssl' - - '+tkinter' - - '+crypt' - - '+bz2' - - '+pyexpat' - - '+libxml2' - - '+ctypes' - - '+uuid' - - '+sqlite3' - - spec: '+optimizations' - when: '%gcc' + - "@3.11.7" + - "+ssl" + - "+tkinter" + - "+crypt" + - "+bz2" + - "+pyexpat" + - "+libxml2" + - "+ctypes" + - "+uuid" + - "+sqlite3" + - spec: "+optimizations" + when: "%gcc" prefer: - - spec: '%gcc@{gcc_version}' - when: '%gcc' + - spec: "%gcc@{gcc_version}" + when: "%gcc" py-cppy: - require: ['@1.2.1'] + require: ["@1.2.1"] py-cython: require: - - one_of: ['@0.29.36', '@3.0.8'] - prefer: ['@3.0.8'] + - one_of: ["@0.29.36", "@3.0.8"] + prefer: ["@3.0.8"] py-python-dateutil: - require: ['@2.8.2'] + require: ["@2.8.2"] py-fenics-dolfinx: - require: ['@0.8.0'] + require: ["@0.8.0"] py-horovod: - require: ['frameworks=pytorch,keras,tensorflow', 'controllers=mpi', 'tensor_ops=nccl'] + require: + [ + "frameworks=pytorch,keras,tensorflow", + "controllers=mpi", + "tensor_ops=nccl", + ] py-kiwisolver: - require: ['@1.4.5'] + require: ["@1.4.5"] py-matplotlib: - require: ['@3.3.4'] + require: ["@3.3.4"] py-mpmath: - require: ['@1.2.1'] + require: ["@1.2.1"] py-numpy: - prefer: ['@1.26.4'] + prefer: ["@1.26.4"] py-pandas: - prefer: ['@2.2.1'] + prefer: ["@2.2.1"] py-pillow: - prefer: ['@9.5.0', '+jpeg'] + prefer: ["@9.5.0", "+jpeg"] py-pysam: - prefer: ['@0.22.1'] + prefer: ["@0.22.1"] # https://github.com/tensorflow/tensorflow/issues/63360#issuecomment-2142735122 # MKL support seams not maintained py-tensorflow: - require: ['+mpi', '~mkl'] + require: ["+mpi", "~mkl"] py-torch: - require: ['@2.3.1', '+mpi', '~valgrind'] + require: ["@2.3.1", "+mpi", "~valgrind"] py-scipy: - require: ['@1.13.0'] + require: ["@1.13.0"] py-setuptools: - require: ['@63.4.3'] + require: ["@63.4.3"] py-virtualenv: - require: ['@20.24.5'] + require: ["@20.24.5"] qt: - require: ['@5.15.2'] + require: ["@5.15.2"] quantum-espresso: - require: ['+mpi', '+openmp', '~gipaw', '+scalapack', '+libxc', '~ipo'] - prefer: ['hdf5=parallel'] + require: ["+mpi", "+openmp", "~gipaw", "+scalapack", "+libxc", "~ipo"] + prefer: ["hdf5=parallel"] rust: - require: ['+dev'] + require: ["+dev"] scotch: - prefer: ['~mpi'] - require: ['build_system=cmake'] + prefer: ["~mpi"] + require: ["build_system=cmake"] sirius: - prefer: ['+fortran', '~elpa', '+wannier90'] - require: ['+openmp'] + prefer: ["+fortran", "~elpa", "+wannier90"] + require: ["+openmp"] slepc: require: - - spec: '^arpack-ng +mpi' + - spec: "^arpack-ng +mpi" spades: - require: ['~ipo'] + require: ["~ipo"] suite-sparse: require: - - '+graphblas' - - one_of: ['@7.3.1', '@7.2.1'] - prefer: ['@7.3.1'] + - "+graphblas" + - one_of: ["@7.3.1", "@7.2.1"] + prefer: ["@7.3.1"] superlu: - require: ['@5.3.0'] + require: ["@5.3.0"] tk: - require: ['+xft', '+xss'] + require: ["+xft", "+xss"] ucx: - require: ['@1.17.0', - '+rdmacm', - '+rc', '+dc', '+ud', - '+cma', '+dm', - '+verbs', '+mlx5_dv', '+ib_hw_tm'] + require: + [ + "@1.17.0", + "+rdmacm", + "+rc", + "+dc", + "+ud", + "+cma", + "+dm", + "+verbs", + "+mlx5_dv", + "+ib_hw_tm", + ] vtk: require: - - spec: '~python ++mpi +xdmf +ffmpeg' + - spec: "~python ++mpi +xdmf +ffmpeg" xmlto: - require: ['@0.0.29'] + require: ["@0.0.29"] # ---------------------------------------------------------------------------- # System dependencies @@ -408,38 +474,38 @@ packages: egl: buildable: false externals: - - spec: 'egl@21.3.4' - prefix: /usr + - spec: "egl@21.3.4" + prefix: /usr ninja: buildable: false externals: - - spec: 'ninja@1.10.2' - prefix: /usr + - spec: "ninja@1.10.2" + prefix: /usr opengl: buildable: false externals: - - spec: 'opengl@4.6' - prefix: /usr + - spec: "opengl@4.6" + prefix: /usr pmix: buildable: false externals: - - spec: 'pmix@5.0.1' - prefix: /usr + - spec: "pmix@5.0.1" + prefix: /usr rdma-core: buildable: false externals: - - spec: 'rdma-core@47.1' - prefix: /usr + - spec: "rdma-core@47.1" + prefix: /usr slurm: buildable: false externals: - - spec: 'slurm@23-11-7-1' - prefix: /usr + - spec: "slurm@23-11-7-1" + prefix: /usr # ---------------------------------------------------------------------------- # Externals @@ -448,69 +514,82 @@ packages: buildable: false permissions: {read: group, group: abaqus-soft} externals: - - {spec: abaqus@2019, prefix: /ssoft/spack/external/abaqus/2019} - - {spec: abaqus@2023, prefix: /ssoft/spack/external/abaqus/2023} + - {spec: abaqus@2019, prefix: /ssoft/spack/external/abaqus/2019} + - {spec: abaqus@2023, prefix: /ssoft/spack/external/abaqus/2023} ansys: buildable: false externals: - - {spec: ansys@2020R2, prefix: /ssoft/spack/external/ansys/2020R2/v202} - - {spec: ansys@2022R1, prefix: /ssoft/spack/external/ansys/2022R1/v221} - - {spec: ansys@2022R2, prefix: /ssoft/spack/external/ansys/2022R2/v222} - - {spec: ansys@2024R1, prefix: /ssoft/spack/external/ansys/2024R1/v241} - - {spec: ansys@2024R2, prefix: /ssoft/spack/external/ansys/2024R2/v242} - - {spec: ansys@2025R1, prefix: /ssoft/spack/external/ansys/2025R1/v251} + - {spec: ansys@2020R2, prefix: /ssoft/spack/external/ansys/2020R2/v202} + - {spec: ansys@2022R1, prefix: /ssoft/spack/external/ansys/2022R1/v221} + - {spec: ansys@2022R2, prefix: /ssoft/spack/external/ansys/2022R2/v222} + - {spec: ansys@2024R1, prefix: /ssoft/spack/external/ansys/2024R1/v241} + - {spec: ansys@2024R2, prefix: /ssoft/spack/external/ansys/2024R2/v242} + - {spec: ansys@2025R1, prefix: /ssoft/spack/external/ansys/2025R1/v251} cfdplusplus: buildable: false externals: - - {spec: cfdplusplus@16.1, prefix: /ssoft/spack/external/CFD++/2016.05} - - {spec: cfdplusplus@19.1, prefix: /ssoft/spack/external/CFD++/19.1} + - {spec: cfdplusplus@16.1, prefix: /ssoft/spack/external/CFD++/2016.05} + - {spec: cfdplusplus@19.1, prefix: /ssoft/spack/external/CFD++/19.1} comsol: buildable: false permissions: {read: group, group: comsol-soft} externals: - - {spec: comsol@5.6, prefix: /ssoft/spack/external/comsol/5.6/comsol56/multiphysics/} - - {spec: comsol@6.0, prefix: /ssoft/spack/external/comsol/6.0} - - {spec: comsol@6.2, prefix: /ssoft/spack/external/comsol/6.2} + - spec: comsol@5.6, + prefix: /ssoft/spack/external/comsol/5.6/comsol56/multiphysics/ + - {spec: comsol@6.0, prefix: /ssoft/spack/external/comsol/6.0} + - {spec: comsol@6.2, prefix: /ssoft/spack/external/comsol/6.2} fdtd: buildable: false permissions: {read: group, group: ansys-soft} externals: - - {spec: fdtd@2020-R2-2387, prefix: /ssoft/spack/external/fdtd/8.24.2387} - - {spec: fdtd@2020-R2.4-2502, prefix: /ssoft/spack/external/fdtd/2020-R2.4-2502} - - {spec: fdtd@2021-R2.2-2806, prefix: /ssoft/spack/external/fdtd/2021-R2.2-2806} - - {spec: fdtd@2022-R1.1-2963, prefix: /ssoft/spack/external/fdtd/2022-R1.1-2963} - - {spec: fdtd@2024-R2.3-3941, prefix: /ssoft/spack/external/fdtd/2024-R2.3-3941} + - spec: fdtd@2020-R2-2387, + prefix: /ssoft/spack/external/fdtd/8.24.2387 + - spec: fdtd@2020-R2.4-2502, + prefix: /ssoft/spack/external/fdtd/2020-R2.4-2502 + - spec: fdtd@2021-R2.2-2806, + prefix: /ssoft/spack/external/fdtd/2021-R2.2-2806 + - spec: fdtd@2022-R1.1-2963, + prefix: /ssoft/spack/external/fdtd/2022-R1.1-2963 + - spec: fdtd@2024-R2.3-3941, + prefix: /ssoft/spack/external/fdtd/2024-R2.3-3941 gaussian: buildable: false externals: - - {spec: gaussian@g16-A.03, prefix: /ssoft/spack/external/gaussian/g16-A.03/avx2} - - {spec: gaussian@g16-C.01, prefix: /ssoft/spack/external/gaussian/g16-C.01/avx2} + - spec: gaussian@g16-A.03, + prefix: /ssoft/spack/external/gaussian/g16-A.03/avx2 + - spec: gaussian@g16-C.01, + prefix: /ssoft/spack/external/gaussian/g16-C.01/avx2 maple: buildable: false externals: - - {spec: maple@2017, prefix: /ssoft/spack/external/Maple/2017} + - {spec: maple@2017, prefix: /ssoft/spack/external/Maple/2017} mathematica: buildable: false externals: - - {spec: mathematica@11.1.1, prefix: /ssoft/spack/external/Mathematica/11.1.1} - - {spec: mathematica@13.0, prefix: /ssoft/spack/external/Mathematica/13.0} + - spec: mathematica@11.1.1, + prefix: /ssoft/spack/external/Mathematica/11.1.1 + - spec: mathematica@13.0, + prefix: /ssoft/spack/external/Mathematica/13.0 matlab: buildable: false externals: - - {spec: matlab@R2018a, prefix: /ssoft/spack/external/MATLAB/R2018a} - - {spec: matlab@R2019b, prefix: /ssoft/spack/external/MATLAB/R2019b} - - {spec: matlab@R2024a, prefix: /ssoft/spack/external/MATLAB/R2024a} - - {spec: matlab@R2024b, prefix: /ssoft/spack/external/MATLAB/R2024b} + - {spec: matlab@R2018a, prefix: /ssoft/spack/external/MATLAB/R2018a} + - {spec: matlab@R2019b, prefix: /ssoft/spack/external/MATLAB/R2019b} + - {spec: matlab@R2024a, prefix: /ssoft/spack/external/MATLAB/R2024a} + - {spec: matlab@R2024b, prefix: /ssoft/spack/external/MATLAB/R2024b} molpro: buildable: false externals: - - {spec: molpro@2022.3.0, prefix: /ssoft/spack/external/molpro/2022.3.0/mpi} + - spec: molpro@2022.3.0, + prefix: /ssoft/spack/external/molpro/2022.3.0/mpi smr: buildable: false externals: - - {spec: smr@2017.0, prefix: /ssoft/spack/external/SMR/2017.06} + - {spec: smr@2017.0, prefix: /ssoft/spack/external/SMR/2017.06} totalview: buildable: false externals: - - {spec: totalview@2017.2.11, prefix: /ssoft/spack/external/toolworks/totalview.2017.2.11} - - {spec: totalview@2020.3.11, prefix: /ssoft/spack/external/toolworks/totalview.2020.3.11} + - spec: totalview@2017.2.11, + prefix: /ssoft/spack/external/toolworks/totalview.2017.2.11 + - spec: totalview@2020.3.11, + prefix: /ssoft/spack/external/toolworks/totalview.2020.3.11 diff --git a/stacks/pinot-noir/spack.yaml b/stacks/pinot-noir/spack.yaml index 61e31e1..d240606 100644 --- a/stacks/pinot-noir/spack.yaml +++ b/stacks/pinot-noir/spack.yaml @@ -1,36 +1,37 @@ +--- spack: include: - - compiler_definitions.yaml + - compiler_definitions.yaml - - packages_stack.yaml - - packages_accel.yaml - - packages_env.yaml + - packages_stack.yaml + - packages_accel.yaml + - packages_env.yaml - - modules_stack.yaml - - modules_env.yaml - - modules_accel.yaml + - modules_stack.yaml + - modules_env.yaml + - modules_accel.yaml - - definitions_stack.yaml - - definitions_accel.yaml - - definitions_env.yaml + - definitions_stack.yaml + - definitions_accel.yaml + - definitions_env.yaml modules: default: lmod: - hierarchy: ['mpi'] + hierarchy: ["mpi"] packages: blas: - require: ['openblas'] + require: ["openblas"] lapack: - require: ['openblas'] + require: ["openblas"] mpi: - require: ['openmpi'] + require: ["openmpi"] scalapack: - require: ['netlib-scalapack'] + require: ["netlib-scalapack"] definitions: # ------------------------------------------------------------------------- diff --git a/stacks/pinot-noir/spack_aocc.yaml b/stacks/pinot-noir/spack_aocc.yaml index b6e7276..c7693f9 100644 --- a/stacks/pinot-noir/spack_aocc.yaml +++ b/stacks/pinot-noir/spack_aocc.yaml @@ -1,18 +1,19 @@ +--- spack: include: - - compiler_definitions.yaml + - compiler_definitions.yaml - - packages_stack.yaml - - packages_accel.yaml - - packages_env.yaml + - packages_stack.yaml + - packages_accel.yaml + - packages_env.yaml - - modules_stack.yaml - - modules_env.yaml - - modules_accel.yaml + - modules_stack.yaml + - modules_env.yaml + - modules_accel.yaml - - definitions_accel.yaml - - definitions_env.yaml - - definitions_stack.yaml + - definitions_accel.yaml + - definitions_env.yaml + - definitions_stack.yaml modules: default: @@ -33,7 +34,7 @@ spack: require: ['amdscalapack'] aocc: - require: ['@4.2.0', 'license-agreed=true' + require: ['@4.2.0', 'license-agreed=true', '%gcc@11.2.1', 'target=x86_64_v3'] icu4c: diff --git a/stacks/pinot-noir/spack_nvhpc.yaml b/stacks/pinot-noir/spack_nvhpc.yaml index 8f5e962..1be8d4b 100644 --- a/stacks/pinot-noir/spack_nvhpc.yaml +++ b/stacks/pinot-noir/spack_nvhpc.yaml @@ -1,18 +1,19 @@ +--- spack: include: - - compiler_definitions.yaml + - compiler_definitions.yaml - - packages_stack.yaml - - packages_accel.yaml - - packages_env.yaml + - packages_stack.yaml + - packages_accel.yaml + - packages_env.yaml - - modules_stack.yaml - - modules_env.yaml - - modules_accel.yaml + - modules_stack.yaml + - modules_env.yaml + - modules_accel.yaml - - definitions_accel.yaml - - definitions_env.yaml - - definitions_stack.yaml + - definitions_accel.yaml + - definitions_env.yaml + - definitions_stack.yaml modules: default: @@ -21,23 +22,31 @@ spack: packages: blas: - require: ['nvhpc +blas'] + require: ["nvhpc +blas"] lapack: - require: ['nvhpc +lapack'] + require: ["nvhpc +lapack"] mpi: - require: ['nvhpc +mpi'] + require: ["nvhpc +mpi"] scalapack: - require: ['netlib-scalapack'] + require: ["netlib-scalapack"] nvhpc: - require: ['@24.7', '+mpi', '+blas', '+lapack', 'default_cuda=12.5', - '%gcc@11.2.1', 'target=x86_64_v3'] + require: + [ + "@24.7", + "+mpi", + "+blas", + "+lapack", + "default_cuda=12.5", + "%gcc@11.2.1", + "target=x86_64_v3", + ] icu4c: - require: ['%gcc'] + require: ["%gcc"] definitions: # ------------------------------------------------------------------------- diff --git a/stacks/pinot-noir/spack_oneapi.yaml b/stacks/pinot-noir/spack_oneapi.yaml index 67f92a4..d1af93b 100644 --- a/stacks/pinot-noir/spack_oneapi.yaml +++ b/stacks/pinot-noir/spack_oneapi.yaml @@ -1,57 +1,58 @@ +--- spack: include: - - compiler_definitions.yaml + - compiler_definitions.yaml - - packages_stack.yaml - - packages_accel.yaml - - packages_env.yaml + - packages_stack.yaml + - packages_accel.yaml + - packages_env.yaml - - modules_stack.yaml - - modules_env.yaml - - modules_accel.yaml + - modules_stack.yaml + - modules_env.yaml + - modules_accel.yaml - - definitions_accel.yaml - - definitions_env.yaml - - definitions_stack.yaml + - definitions_accel.yaml + - definitions_env.yaml + - definitions_stack.yaml modules: default: lmod: - hierarchy: ['mpi'] + hierarchy: ["mpi"] packages: blas: - require: ['intel-oneapi-mkl'] + require: ["intel-oneapi-mkl"] lapack: - require: ['intel-oneapi-mkl'] + require: ["intel-oneapi-mkl"] mpi: - require: ['intel-oneapi-mpi'] + require: ["intel-oneapi-mpi"] scalapack: - require: ['intel-oneapi-mkl +cluster'] + require: ["intel-oneapi-mkl +cluster"] icu4c: - require: ['%gcc'] + require: ["%gcc"] cuda: require: - - spec: '+allow-unsupported-compilers' - when: '%oneapi' + - spec: "+allow-unsupported-compilers" + when: "%oneapi" intel-oneapi-mkl: require: - - '%oneapi ^intel-oneapi-runtime target={target}' + - "%oneapi ^intel-oneapi-runtime target={target}" intel-oneapi-mpi: - require: ['%oneapi ^intel-oneapi-runtime target={target}'] + require: ["%oneapi ^intel-oneapi-runtime target={target}"] intel-oneapi-tbb: - require: ['%oneapi ^intel-oneapi-runtime target={target}'] + require: ["%oneapi ^intel-oneapi-runtime target={target}"] intel-oneapi-runtime: - require: ['%oneapi target={target} ^gcc-runtime target=x86_64_v3'] + require: ["%oneapi target={target} ^gcc-runtime target=x86_64_v3"] definitions: # ------------------------------------------------------------------------- -- GitLab From 12c4db3683bea3d33ceb18485ec93718d0f2bda8 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <networms@gmail.ch> Date: Fri, 14 Mar 2025 22:26:59 +0100 Subject: [PATCH 4/7] Changing linter for readability --- .gitlab-ci.yml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4c97350..1a578b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -281,19 +281,31 @@ post_cleaning: cq:hadolint: <<: *code-climate script: - - hadolint --format codeclimate dockerfiles/**/Dockerfile | tee gl-codequality.json | jq -C . + # for gitlab + - hadolint --format codeclimate dockerfiles/**/Dockerfile > gl-codequality.json + # for the users + - hadolint --format tty dockerfiles/**/Dockerfile cq:shellcheck: <<: *code-climate script: + # for gitlab - | git ls-files . \ | xargs -r -n1 file \ | awk -F: '/shell script/{print $1}' \ - | xargs -r -n1 shellcheck -f json \ - | tee -a gl-codequality.json | jq -C . + | xargs -r -n1 shellcheck -f json > gl-codequality.json + # for the users + - | + git ls-files . \ + | xargs -r -n1 file \ + | awk -F: '/shell script/{print $1}' \ + | xargs -r -n1 shellcheck -f tty cq:yamllint: <<: *code-climate script: - - yamllint_codeclimate --standalone | tee gl-codequality.json | jq -C . + # for gitlab + - yamllint_codeclimate --standalone > gl-codequality.json + # for the users + - yamllint -f colored . -- GitLab From d7f908d4578b0a9a7e98a3423adb4120d5e7de23 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <networms@gmail.ch> Date: Fri, 14 Mar 2025 22:56:50 +0100 Subject: [PATCH 5/7] Linting dockerfiles --- .hadolint.yaml | 6 +++++- dockerfiles/deploy/Dockerfile | 2 +- dockerfiles/rhel9-kuma/Dockerfile | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.hadolint.yaml b/.hadolint.yaml index 440d70d..20a25c8 100644 --- a/.hadolint.yaml +++ b/.hadolint.yaml @@ -1,9 +1,13 @@ --- failure-threshold: "style" # name of threshold level (error | warning | info | style | ignore | none) format: "codeclimate" # Output format (tty | json | checkstyle | codeclimate | gitlab_codeclimate | gnu | codacy) -ignored: ["DL3041"] # list of rules +ignored: + - "DL3008" # Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>` + - "DL3033" # Specify version with `yum install -y <package>-<version>`. + - "DL3041" # Specify version with dnf install -y <package>-<version> no-color: false # true | false strict-labels: true # true | false trustedRegistries: - "registry.hpc.epfl.ch" # registry or list of registries + - "registry.c4science.ch" - "docker.io" diff --git a/dockerfiles/deploy/Dockerfile b/dockerfiles/deploy/Dockerfile index b7efc92..c048d7b 100644 --- a/dockerfiles/deploy/Dockerfile +++ b/dockerfiles/deploy/Dockerfile @@ -1,5 +1,5 @@ FROM debian:12-slim -RUN apt -qq update && apt -qq -y install \ +RUN apt-get -qq update && apt-get -qq -y install --no-install-recommends \ squashfuse fuse3 rsync \ && rm -rf /var/lib/apt/lists/* diff --git a/dockerfiles/rhel9-kuma/Dockerfile b/dockerfiles/rhel9-kuma/Dockerfile index 995f774..4548bd6 100644 --- a/dockerfiles/rhel9-kuma/Dockerfile +++ b/dockerfiles/rhel9-kuma/Dockerfile @@ -26,7 +26,7 @@ RUN yum install -y --enablerepo=$APPSTREAM_REPO \ python3 python3-pip python3-setuptools python3-boto3 \ git subversion mercurial \ ninja-build \ - libglvnd-devel + libglvnd-devel \ glibc-gconv-extra \ libatomic \ squashfs-tools \ -- GitLab From 01a5cfeb8b990ad1e706042fd7ba484cd7ad43f1 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <networms@gmail.ch> Date: Fri, 14 Mar 2025 22:57:14 +0100 Subject: [PATCH 6/7] Helping debug concretization --- ci/concretize.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ci/concretize.sh b/ci/concretize.sh index 16a329f..d1aba76 100755 --- a/ci/concretize.sh +++ b/ci/concretize.sh @@ -49,6 +49,10 @@ do -e ${full_environment} \ config blame | tee config-${full_environment}-${stack}.log + if [ -e ${SPACK_SYSTEM_CONFIG_PATH}/spack.lock ]; then + cp ${SPACK_SYSTEM_CONFIG_PATH}/spack.lock spack-${full_environment}-${stack}-old.lock + fi + ${STACK_LOCATION}/spack/bin/spack \ --color always \ -e ${full_environment} \ @@ -62,3 +66,19 @@ do cp ${SPACK_SYSTEM_CONFIG_PATH}/spack.lock spack-${full_environment}-${stack}.lock done + +curl -Ls https://github.com/josephburnett/jd/releases/download/v2.1.2/jd-amd64-linux -o jd +chmod +x jd + +for name in ${compilers_names} +do + if [ -e spack-${full_environment}-${stack}-old.lock ]; then + source ci/stack_env.sh ${name} + ./jd -set <(jq '.concrete_specs' spack-${full_environment}-${stack}-old.lock) <(jq '.concrete_specs' spack-${full_environment}-${stack}.lock) | egrep "^[+-]" | while read -r line + do + echo -n $line | sed 's/^\([+-]\).*/\1/' + echo -n " " + echo $line | sed 's/^[+-]//' | jq -r '"\(.name)@\(.version) %\(.compiler.name)@\(.compiler.version) arch=linux-\(.arch.platform_os)-\(if .arch.target|type == "string" then .arch.target else .arch.target.name end) -- \(.hash)"' + done + fi +done -- GitLab From 196443339f2e2a29db6b039b1cf2fc717cd7f950 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <networms@gmail.ch> Date: Sat, 15 Mar 2025 00:01:48 +0100 Subject: [PATCH 7/7] more debug capabilities --- ci/debug/spack_lock_info.sh | 44 ++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/ci/debug/spack_lock_info.sh b/ci/debug/spack_lock_info.sh index da1df32..9b5e42e 100755 --- a/ci/debug/spack_lock_info.sh +++ b/ci/debug/spack_lock_info.sh @@ -69,15 +69,32 @@ get_name_dep(){ } +get_all_dependent(){ + jq --arg h "$1" -c '.concrete_specs + | to_entries + | .[] + | select(.value.dependencies | length != 0) + | select(.value.dependencies[] | select(.hash | match($h))) + | { + name: .value.name, + key: .key, + version: .value.version, + compiler: (.value.compiler | "\(.version)"), + target: (.value.arch.target | if type == "object" then .name else . end) + }' $2 +} + + usage() { echo "-h [hash]" echo "-n [name]" echo "-f [file]" } -OPTSTRING=":h:n:f:a" +OPTSTRING=":h:n:f:a:d" all=0 +dependent=0 hash="" name="" file="" @@ -92,6 +109,9 @@ while getopts ${OPTSTRING} opt; do n) name=${OPTARG} ;; + d) + dependent=1 + ;; a) all=1 ;; @@ -108,22 +128,30 @@ while getopts ${OPTSTRING} opt; do esac done -if [ "x$file" == "x" ] +if [ "x$file" = "x" ] then echo "No file specified" usage exit 1 fi -echo "name ($name), hash ($hash), file($file), all($all)" +#echo "name ($name), hash ($hash), file($file), all($all)" -if [ "x$hash" != "x" ] +if [ $dependent -eq 1 ] then - if [ $all -eq 1 ] + if [ "x$hash" != "x" ] + then + get_all_dependent $hash $file + fi +else + if [ "x$hash" != "x" ] then - get_all_dep $hash $file - else - get_hash_dep $hash $file + if [ $all -eq 1 ] + then + get_all_dep $hash $file + else + get_hash_dep $hash $file + fi fi fi -- GitLab