diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ea83b51b9b2cfb93987be7f37101a241bfa8070c..1a578b7e2b9d556e0bb5731f997505044dafaae1 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 @@ -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 > gl-codequality.json + # for the users - | 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 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 . diff --git a/.hadolint.yaml b/.hadolint.yaml index 440d70de7dae370acfeed47b94965482530b4319..20a25c8f57029052197b3e4fb25d6e5b1e65559f 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/.yamllint.yml b/.yamllint.yml index 45efdb5af1273855af119f5a24e1b292b6a7891e..75da2b7021e80a7ae8de5cc5e79c4648951c1a34 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 diff --git a/ci/concretize.sh b/ci/concretize.sh index 16a329f238f323fec23029046a87592ec382b425..d1aba76beb77b64d0a15107476d944b4cc8f6c9e 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 diff --git a/ci/debug/spack_lock_info.sh b/ci/debug/spack_lock_info.sh index da1df3267a26465b677bddb52fd27924e8e77b5d..9b5e42eeae75561ddb2bdb9bc654967b3a1f469d 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 diff --git a/dockerfiles/deploy/Dockerfile b/dockerfiles/deploy/Dockerfile index b7efc92d65b9a99248b3ea04a6980797acf8287f..c048d7bd80d7e27a11539a5fec4cfba43c31171d 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 995f7744bb5f43efaba751c345d46696a92af543..4548bd660add00f933345f59e2dcffd58bc92fcd 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 \ diff --git a/stacks/pinot-noir-gcc/concretizer_common.yaml b/stacks/pinot-noir-gcc/concretizer_common.yaml index 698e4c7865156575e6807306e18573c647c921c2..161462e9bbe047bb02d5d67d57ee18dc2893966f 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 bac71f0dae6d0417c501344add77df7803c2dde1..298e84ca0bf2a633168dfbbcac249d2a9219c358 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 154a251f72827d434dc0ef6dcf2ed468460106d7..6b1aa0cb39acf44f84c2b71a769c0a396df7dee7 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 ca4ba7fe51ad3279cebc61ff97ee72782db03b81..8915271c3c133c9f2017d4d20c2719f7843d57db 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 0f156fa830b9567b3e7839218a0a88c16076c6ca..3861e724fe1a88b605bd091eb2e48e8da6b824fd 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 21d0544839675931122d4455d2fe32408b425fe5..cabc79de993c745ea512c9d5e6d9d06772d7b999 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 fd201338c6c7a8c0312c8019224be9416c034fb5..e715d73814e25e383198b8f6c2e9bd06f0085659 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 21d0544839675931122d4455d2fe32408b425fe5..cabc79de993c745ea512c9d5e6d9d06772d7b999 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 4599ea4a749e4ffd3b6fcdb239b836e8fb83a7c7..6bb1f830e3c1798c4cdc88ef476ffcd0a0589477 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 7be541da7ebaa02cccf6874f657a141d82f56541..e68a137feca4e5941696611485c40aaa3dfa5757 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 01e4aa6bffd49e9caf3c243de15edba0287bd56f..b2382491a5a43eb9b744805ac77c86be75c64cf3 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 fe0d4ad01829f0895adce34a9071fe0eb4218e18..7c9421c4c09eb6848014d5836608fd17b39fe9a1 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 9ce65d95e200925fe7b5bd50d0f76c18b2f33097..9ad6f6fd246f1e3c7ea209b4c607c5676afcdce4 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 822d1e2f6b56828d7269ba821ecb27be99c9d6d2..0662680a4adc823978812d6617fc399776e65469 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 b861a64c67958a220f37f11a5f0ad6f02763bb0d..6eeda3ae7d418dd6beb67209505e57afb2a57523 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 836cd9c448e04c3d3c0c581a8b6fa3e521083301..353a57778440357ff0346aa1438358b4418c8e34 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 65bebbff72b75fc05be003c6c16492fbf27e07a0..be9b291145e5ca5c5375218dd5a5a154c3639e6e 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 05cae96448aafee4ec332981b95c4eef2bff976e..544be02eaf82965b12d863c4f27db37d1ea0d8dc 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/ diff --git a/stacks/pinot-noir/concretizer_common.yaml b/stacks/pinot-noir/concretizer_common.yaml index cb79471be5f2fc33edb56059c5247ffee5d8e237..fa4713c257cd124338b7cadf363e9d15c6dacc35 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 bac71f0dae6d0417c501344add77df7803c2dde1..8e3ccaf0756e733849ec32bd6e2986bad3108125 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 d417ff13026d3a03fb780c42e85e56e778f9f553..a7f4dcf03ee8312d9f69929aaf74a5414f782c59 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 5449b15f4fe809d6f7dfc6e6c37f4f8d44aa231c..bee4928d9cf4369b17e5867ab32c485c93934e35 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 765cfa99e4ea7855249f4474ea93cd13ab3378c5..d94c80f79569f16c86bb2ead78a944052ec54f87 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 d098e12fa90540a012f5d36253acde831cbd85dd..baf451591f830c96774591bb1593fafd6d9296e4 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 135e4d565bea584df6ef0f3dd3438807e2ad29e6..f5d5454fe63d12559940303e8166b4b693586094 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 21d0544839675931122d4455d2fe32408b425fe5..cabc79de993c745ea512c9d5e6d9d06772d7b999 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 8ddd771fff8e49d8a00ac2ba17096cdd8ff145ed..4e874cb08f9b03bf69b0157389684ee4d4d50399 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 10a02d6a9cb56d2f1bcb9e66730d60c124561bda..c6ca875695e98a4b6fd33542565666eedc383c7c 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 f4eccc4f58d3513614e39f544fcff836ce49268e..054a26ba83dc5f5a5de5fb35ff646d2efe173b59 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 0aa29d8aa89378efccc88721d31443a6c52c5595..cb1f93745217b05e23e54500553160c3f8e57f7f 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 df8edbc056b14c0b629e50e5b76c793c601f3b2b..72bd4d626744d4606b93c27980b82e213c3d816d 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 c33c0b6dffa306ee4e96f13cddda1066e6353896..e45565d99d12712914a569931351de8a42a7f073 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 fdd4f0b6c2989d40de21202ea0d1d79cb67a7768..6386f84a460217299adc54bc533d5827b62ac3d9 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 465a45a3cd32ca9c269dc09bb633802d20aadfbe..4c98d472d425b056e5b139f2010d947728562dbf 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 63ca5c90a4cae95278fb62e0128f8b3d19da724b..1538702f5fe7bfe949cffd1bae5331883ae1dd1c 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 7fda048e5638869f279249aabffd9d8406f8c6a0..a2b8d1941a1c350b8920baac1edd6ea59283d75e 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 61e31e103ab02377872aa3636a89fb54e81a77b2..d240606f723d790ad692738262a750dda38ca136 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 b6e7276c6afff30eae898e3e7019f55dd6525050..c7693f95dc97700acb0779d6139fe2061bf413f9 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 8f5e962e2e962ac4afec6bd1ca18c282c8994936..1be8d4b743f527802db73ae4f410e4f60c726116 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 67f92a44c1545928e22ff099f7e20561f34a1842..d1af93b3d6e9412c1367bce12045b58f03bb0692 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: # -------------------------------------------------------------------------