aws-pcluster stacks: static spack.yaml (#47918)
This commit is contained in:
parent
0b7fc360fa
commit
8a9e16dc3b
@ -810,14 +810,6 @@ ml-darwin-aarch64-mps-build:
|
||||
|
||||
.aws-pcluster-generate:
|
||||
image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07", "entrypoint": [""] }
|
||||
before_script:
|
||||
# Use gcc from pre-installed spack store
|
||||
- - . "./share/spack/setup-env.sh"
|
||||
- . "/etc/profile.d/modules.sh"
|
||||
- diff -q "/bootstrap/cloud_pipelines-config.yaml" "share/spack/gitlab/cloud_pipelines/configs/config.yaml" || echo "WARNING Install tree might have changed. You need to rebuild the pcluster-amazonlinux-2 container in spack/gitlab-runners."
|
||||
- cp "share/spack/gitlab/cloud_pipelines/configs/config.yaml" "etc/spack/"
|
||||
- /bin/bash "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh"
|
||||
- rm "etc/spack/config.yaml"
|
||||
|
||||
# X86_64_V4 (one pipeline per target)
|
||||
.aws-pcluster-x86_64_v4:
|
||||
@ -826,6 +818,10 @@ ml-darwin-aarch64-mps-build:
|
||||
|
||||
aws-pcluster-generate-x86_64_v4:
|
||||
extends: [ ".linux_x86_64_v4", ".aws-pcluster-x86_64_v4", ".generate-base", ".tags-x86_64_v4", ".aws-pcluster-generate"]
|
||||
before_script:
|
||||
- - . "./share/spack/setup-env.sh"
|
||||
# TODO: Move this to the container next time it is rebuilt
|
||||
- export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/binutils-2.37-qvccg7zpskturysmr4bzbsfrx34kvazo/bin:$PATH
|
||||
|
||||
aws-pcluster-build-x86_64_v4:
|
||||
extends: [ ".linux_x86_64_v4", ".aws-pcluster-x86_64_v4", ".build" ]
|
||||
@ -846,6 +842,10 @@ aws-pcluster-build-x86_64_v4:
|
||||
aws-pcluster-generate-neoverse_v1:
|
||||
# TODO: Use updated runner tags: https://github.com/spack/spack-infrastructure/pull/694/files
|
||||
extends: [ ".linux_neoverse_v1", ".aws-pcluster-neoverse_v1", ".generate-neoverse_v1", ".aws-pcluster-generate"]
|
||||
before_script:
|
||||
- - . "./share/spack/setup-env.sh"
|
||||
# TODO: Move this to the container next time it is rebuilt
|
||||
- export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/binutils-2.37-2yxz3xsjfmesxujxtlrgcctxlyilynmp/bin:$PATH
|
||||
|
||||
aws-pcluster-build-neoverse_v1:
|
||||
extends: [ ".linux_neoverse_v1", ".aws-pcluster-neoverse_v1", ".build" ]
|
||||
|
@ -1,112 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
set -e
|
||||
|
||||
set_pcluster_defaults() {
|
||||
# Set versions of pre-installed software in packages.yaml
|
||||
[ -z "${SLURM_ROOT}" ] && ls /etc/systemd/system/slurm* &>/dev/null && \
|
||||
SLURM_ROOT=$(dirname $(dirname "$(awk '/ExecStart=/ {print $1}' /etc/systemd/system/slurm* | sed -e 's?^.*=??1' | head -n1)"))
|
||||
# Fallback to default location if SLURM not in systemd
|
||||
[ -z "${SLURM_ROOT}" ] && [ -d "/opt/slurm" ] && SLURM_ROOT=/opt/slurm
|
||||
[ -z "${SLURM_VERSION}" ] && SLURM_VERSION=$(strings "${SLURM_ROOT}"/lib/libslurm.so | grep -e '^VERSION' | awk '{print $2}' | sed -e 's?"??g')
|
||||
[ -z "${LIBFABRIC_VERSION}" ] && LIBFABRIC_VERSION=$(awk '/Version:/{print $2}' "$(find /opt/amazon/efa/ -name libfabric.pc | head -n1)" | sed -e 's?~??g' -e 's?amzn.*??g')
|
||||
export SLURM_ROOT SLURM_VERSION LIBFABRIC_VERSION
|
||||
|
||||
envsubst < "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}/packages.yaml" > "${SPACK_ROOT}"/etc/spack/packages.yaml
|
||||
}
|
||||
|
||||
patch_compilers_yaml() {
|
||||
# Graceful exit if package not found by spack
|
||||
set -o pipefail
|
||||
compilers_yaml="${SPACK_ROOT}/etc/spack/compilers.yaml"
|
||||
[ -f "${compilers_yaml}" ] || {
|
||||
echo "Cannot find ${compilers_yaml}, compiler setup might now be optimal."
|
||||
return
|
||||
}
|
||||
|
||||
# System ld is too old for amzn linux2
|
||||
spack_gcc_version=$(spack find --format '{version}' gcc)
|
||||
binutils_path=$(spack find -p binutils | awk '/binutils/ {print $2}' | head -n1)
|
||||
if [ -d "${binutils_path}" ] && [ -n "${spack_gcc_version}" ]; then python3 <<EOF
|
||||
import yaml
|
||||
|
||||
with open("${compilers_yaml}",'r') as f:
|
||||
compilers=yaml.safe_load(f)
|
||||
|
||||
for c in compilers["compilers"]:
|
||||
if "arm" in c["compiler"]["spec"] or "intel" in c["compiler"]["spec"] or "oneapi" in c["compiler"]["spec"] \
|
||||
or "${spack_gcc_version}" in c["compiler"]["spec"]:
|
||||
compilers["compilers"][compilers["compilers"].index(c)]["compiler"]["environment"] = {"prepend_path":{"PATH":"${binutils_path}/bin"}}
|
||||
|
||||
with open("${compilers_yaml}",'w') as f:
|
||||
yaml.dump(compilers, f)
|
||||
EOF
|
||||
fi
|
||||
# Oneapi needs extra_rpath to gcc libstdc++.so.6
|
||||
if [ "x86_64" == "$(arch)" ] && oneapi_gcc_version=$(spack find --format '{compiler}' intel-oneapi-compilers | sed -e 's/=//g') && \
|
||||
[ -n "${oneapi_gcc_version}" ] && oneapi_gcc_path=$(spack find -p "${oneapi_gcc_version}" | grep "${oneapi_gcc_version}" | awk '{print $2}' | head -n1) && \
|
||||
[ -d "${oneapi_gcc_path}" ]; then python3 <<EOF
|
||||
import yaml
|
||||
|
||||
with open("${compilers_yaml}",'r') as f:
|
||||
compilers=yaml.safe_load(f)
|
||||
|
||||
for c in compilers["compilers"]:
|
||||
if "oneapi" in c["compiler"]["spec"]:
|
||||
compilers["compilers"][compilers["compilers"].index(c)]["compiler"]["extra_rpaths"] = ["${oneapi_gcc_path}/lib64"]
|
||||
|
||||
with open("${compilers_yaml}",'w') as f:
|
||||
yaml.dump(compilers, f)
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
install_compilers() {
|
||||
# Install Intel compilers through a static spack version such that the compiler's hash does not change.
|
||||
# The compilers needs to be in the same install tree as the rest of the software such that the path
|
||||
# relocation works correctly. This holds the danger that this part will fail when the current spack gets
|
||||
# incompatible with the one in $spack_intel_compiler_commit. Therefore, we make intel installations optional
|
||||
# in packages.yaml files and add a fallback `%gcc` version for each application.
|
||||
if [ -f "/bootstrap-compilers/spack/etc/spack/compilers.yaml" ]; then
|
||||
# Running inside a gitlab CI container
|
||||
# Intel and gcc@12 compiler are pre-installed and their location is known in
|
||||
cp /bootstrap-compilers/spack/etc/spack/compilers.yaml "${SPACK_ROOT}"/etc/spack/
|
||||
else
|
||||
spack compiler add --scope site
|
||||
# We need to treat compilers as essentially external, i.e. their installation location
|
||||
# (including hash) must not change when any changes are pushed to spack. The reason is that
|
||||
# changes in the compilers are not reflected in the package hashes built in the CI. Hence, those
|
||||
# packages will reference a wrong compiler path once the path changes.
|
||||
|
||||
# `gcc@12.4.0%gcc@7.3.1` is created as part of building the pipeline containers.
|
||||
# `ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07` produced the following hashes.
|
||||
if [ "x86_64" == "$(arch)" ]; then
|
||||
gcc_hash="pttzchh7o54nhmycj4wgzw5mic6rk2nb"
|
||||
else
|
||||
gcc_hash="v6wxye6ijzrxnzxftcwnpu3psohsjl2b"
|
||||
fi
|
||||
|
||||
spack install /${gcc_hash}
|
||||
(
|
||||
spack load gcc
|
||||
spack compiler add --scope site
|
||||
)
|
||||
|
||||
if [ "x86_64" == "$(arch)" ]; then
|
||||
# 2024.1.0 is the last oneapi compiler that works on AL2 and is the one used to compile packages in the build cache.
|
||||
spack install intel-oneapi-compilers@2024.1.0
|
||||
(
|
||||
. "$(spack location -i intel-oneapi-compilers)"/setvars.sh; spack compiler add --scope site \
|
||||
|| true
|
||||
)
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
set_pcluster_defaults
|
||||
install_compilers
|
||||
patch_compilers_yaml
|
@ -1,67 +0,0 @@
|
||||
--- # Neoverse N1 / V1 packages
|
||||
packages:
|
||||
acfl:
|
||||
require:
|
||||
- one_of: ["%gcc target=aarch64"]
|
||||
message: "Clang based compilers need GCC libraries and they should be made available for the wide range of CPUs they actually support.
|
||||
Edit $SPACK_ROOT/etc/spack/packages.yaml to change this default."
|
||||
gromacs:
|
||||
require:
|
||||
- one_of:
|
||||
- "gromacs@2024.3 %arm ^fftw ^openmpi"
|
||||
- "gromacs@2024.3 %gcc ^armpl-gcc ^openmpi"
|
||||
libfabric:
|
||||
buildable: true
|
||||
externals:
|
||||
- prefix: /opt/amazon/efa/
|
||||
spec: libfabric@${LIBFABRIC_VERSION}
|
||||
require: ['fabrics=shm,efa']
|
||||
llvm:
|
||||
variants: ~lldb
|
||||
mpas-model:
|
||||
require:
|
||||
- one_of:
|
||||
- "precision=single make_target=llvm %arm ^parallelio+pnetcdf"
|
||||
- "precision=single %gcc ^parallelio+pnetcdf"
|
||||
mpich:
|
||||
require: "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm"
|
||||
nvhpc:
|
||||
require:
|
||||
- one_of:
|
||||
- "nvhpc %gcc target=aarch64"
|
||||
message: "NVHPC should be built with GCC and should be made available for the wide range of CPUs they actually support.
|
||||
Edit $SPACK_ROOT/etc/spack/packages.yaml to change this default."
|
||||
openfoam:
|
||||
require: "openfoam %gcc ^scotch@6.0.9"
|
||||
openmpi:
|
||||
variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm
|
||||
require: '@4:'
|
||||
# Palace does not build correctly with armpl until https://github.com/awslabs/palace/pull/207 is merged into a version.
|
||||
# palace:
|
||||
# require:
|
||||
# - one_of: ["palace cxxflags=\"-include cstdint\" ^fmt@9.1.0"]
|
||||
pmix:
|
||||
require: "pmix@3:"
|
||||
quantum-espresso:
|
||||
require: "quantum-espresso@6.6 %gcc ^armpl-gcc"
|
||||
slurm:
|
||||
buildable: false
|
||||
externals:
|
||||
- prefix: ${SLURM_ROOT}
|
||||
spec: slurm@${SLURM_VERSION} +pmix
|
||||
wrf:
|
||||
require:
|
||||
- one_of:
|
||||
- "wrf%arm"
|
||||
- "wrf%gcc"
|
||||
all:
|
||||
compiler: [gcc, arm, nvhpc, clang]
|
||||
providers:
|
||||
blas: [armpl-gcc, openblas]
|
||||
fftw-api: [armpl-gcc, fftw]
|
||||
lapack: [armpl-gcc, openblas]
|
||||
mpi: [openmpi, mpich]
|
||||
scalapack: [netlib-scalapack]
|
||||
permissions:
|
||||
read: world
|
||||
write: user
|
@ -28,10 +28,7 @@ spack:
|
||||
- . /etc/profile.d/modules.sh
|
||||
- spack --version
|
||||
- spack arch
|
||||
# Use gcc from pre-installed spack store
|
||||
- - cp share/spack/gitlab/cloud_pipelines/configs/config.yaml etc/spack/
|
||||
- /bin/bash "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh"
|
||||
- rm etc/spack/config.yaml
|
||||
- export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/binutils-2.37-2yxz3xsjfmesxujxtlrgcctxlyilynmp/bin:$PATH
|
||||
- signing-job:
|
||||
before_script:
|
||||
# Do not distribute Intel & ARM binaries
|
||||
@ -40,3 +37,98 @@ spack:
|
||||
|
||||
cdash:
|
||||
build-group: AWS Packages
|
||||
|
||||
compilers:
|
||||
- compiler:
|
||||
environment: {}
|
||||
extra_rpaths: []
|
||||
flags: {}
|
||||
modules: []
|
||||
operating_system: amzn2
|
||||
paths:
|
||||
cc: /usr/bin/gcc
|
||||
cxx: /usr/bin/g++
|
||||
f77: /usr/bin/gfortran
|
||||
fc: /usr/bin/gfortran
|
||||
spec: gcc@=7.3.1
|
||||
target: aarch64
|
||||
- compiler:
|
||||
environment: {}
|
||||
extra_rpaths: []
|
||||
flags: {}
|
||||
modules: []
|
||||
operating_system: amzn2
|
||||
paths:
|
||||
cc: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b/bin/gcc
|
||||
cxx: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b/bin/g++
|
||||
f77: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b/bin/gfortran
|
||||
fc: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b/bin/gfortran
|
||||
spec: gcc@=12.4.0
|
||||
target: aarch64
|
||||
|
||||
packages:
|
||||
acfl:
|
||||
require:
|
||||
- one_of: ["%gcc target=aarch64"]
|
||||
message: "Clang based compilers need GCC libraries and they should be made available for the wide range of CPUs they actually support.
|
||||
Edit $SPACK_ROOT/etc/spack/packages.yaml to change this default."
|
||||
gromacs:
|
||||
require:
|
||||
- one_of:
|
||||
- "gromacs@2024.3 %arm ^fftw ^openmpi"
|
||||
- "gromacs@2024.3 %gcc ^armpl-gcc ^openmpi"
|
||||
libfabric:
|
||||
buildable: true
|
||||
externals:
|
||||
- prefix: /opt/amazon/efa/
|
||||
spec: libfabric@1.17.0
|
||||
require: ['fabrics=shm,efa']
|
||||
llvm:
|
||||
variants: ~lldb
|
||||
mpas-model:
|
||||
require:
|
||||
- one_of:
|
||||
- "precision=single make_target=llvm %arm ^parallelio+pnetcdf"
|
||||
- "precision=single %gcc ^parallelio+pnetcdf"
|
||||
mpich:
|
||||
require: "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm"
|
||||
nvhpc:
|
||||
require:
|
||||
- one_of:
|
||||
- "nvhpc %gcc target=aarch64"
|
||||
message: "NVHPC should be built with GCC and should be made available for the wide range of CPUs they actually support.
|
||||
Edit $SPACK_ROOT/etc/spack/packages.yaml to change this default."
|
||||
openfoam:
|
||||
require: "openfoam %gcc ^scotch@6.0.9"
|
||||
openmpi:
|
||||
variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm
|
||||
require: '@4:'
|
||||
# Palace does not build correctly with armpl until https://github.com/awslabs/palace/pull/207 is merged into a version.
|
||||
# palace:
|
||||
# require:
|
||||
# - one_of: ["palace cxxflags=\"-include cstdint\" ^fmt@9.1.0"]
|
||||
pmix:
|
||||
require: "pmix@3:"
|
||||
quantum-espresso:
|
||||
require: "quantum-espresso@6.6 %gcc ^armpl-gcc"
|
||||
slurm:
|
||||
buildable: false
|
||||
externals:
|
||||
- prefix: /opt/slurm
|
||||
spec: slurm@22.05.8 +pmix
|
||||
wrf:
|
||||
require:
|
||||
- one_of:
|
||||
- "wrf%arm"
|
||||
- "wrf%gcc"
|
||||
all:
|
||||
compiler: [gcc, arm, nvhpc, clang]
|
||||
providers:
|
||||
blas: [armpl-gcc, openblas]
|
||||
fftw-api: [armpl-gcc, fftw]
|
||||
lapack: [armpl-gcc, openblas]
|
||||
mpi: [openmpi, mpich]
|
||||
scalapack: [netlib-scalapack]
|
||||
permissions:
|
||||
read: world
|
||||
write: user
|
||||
|
@ -1,143 +0,0 @@
|
||||
--- # x86_64_v4 packages (ice/skylake) & x86_64_v3 packages (zen2/3)
|
||||
packages:
|
||||
cpio:
|
||||
require:
|
||||
- one_of:
|
||||
- "cflags=-std=c18 target=x86_64_v4"
|
||||
- "cflags=-std=c18 target=x86_64_v3"
|
||||
when: "%intel"
|
||||
gettext:
|
||||
# Newer gettext cannot build with gcc@12 and old AL2 glibc headers
|
||||
# Older gettext versions do not build correctly with oneapi.
|
||||
require:
|
||||
- one_of:
|
||||
- '@:0.20'
|
||||
- '%oneapi'
|
||||
gromacs:
|
||||
require:
|
||||
- one_of:
|
||||
- "+intel_provided_gcc ^intel-oneapi-mkl target=x86_64_v4"
|
||||
- "+intel_provided_gcc ^intel-oneapi-mkl target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "+intel_provided_gcc target=x86_64_v4 ^intel-oneapi-mkl"
|
||||
- "+intel_provided_gcc target=x86_64_v3 ^intel-oneapi-mkl"
|
||||
when: "%oneapi"
|
||||
intel-oneapi-compilers:
|
||||
require: "intel-oneapi-compilers %gcc target=x86_64_v3"
|
||||
intel-oneapi-mpi:
|
||||
variants: +external-libfabric generic-names=True
|
||||
lammps:
|
||||
require:
|
||||
- one_of:
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package +intel fft=mkl ^intel-oneapi-mkl target=x86_64_v4"
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package +intel fft=mkl ^intel-oneapi-mkl target=x86_64_v4"
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
libidn2:
|
||||
require:
|
||||
- one_of:
|
||||
- "cflags=-std=c18 target=x86_64_v4"
|
||||
- "cflags=-std=c18 target=x86_64_v3"
|
||||
when: "%intel"
|
||||
libfabric:
|
||||
buildable: true
|
||||
externals:
|
||||
- prefix: /opt/amazon/efa/
|
||||
spec: libfabric@${LIBFABRIC_VERSION}
|
||||
require: ['fabrics=shm,efa']
|
||||
libunistring:
|
||||
require:
|
||||
- one_of:
|
||||
- "cflags=-std=c18 target=x86_64_v4"
|
||||
- "cflags=-std=c18 target=x86_64_v3"
|
||||
when: "%intel"
|
||||
mpas-model:
|
||||
require:
|
||||
- one_of:
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v4"
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v4"
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
mpich:
|
||||
require:
|
||||
- one_of:
|
||||
- "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm target=x86_64_v4"
|
||||
- "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm target=x86_64_v3"
|
||||
openfoam:
|
||||
require:
|
||||
- one_of:
|
||||
- "openfoam %gcc ^scotch@6.0.9 target=x86_64_v4"
|
||||
- "openfoam %gcc ^scotch@6.0.9 target=x86_64_v3"
|
||||
openmpi:
|
||||
variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm
|
||||
require:
|
||||
- one_of:
|
||||
- "openmpi @4: target=x86_64_v4"
|
||||
- "openmpi @4: target=x86_64_v3"
|
||||
palace:
|
||||
require:
|
||||
- one_of:
|
||||
- "palace ^fmt@9.1.0 target=x86_64_v4"
|
||||
- "palace ^fmt@9.1.0 target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
- one_of:
|
||||
- "palace ^fmt@9.1.0"
|
||||
when: "%gcc"
|
||||
pmix:
|
||||
require:
|
||||
- one_of:
|
||||
- "pmix@3: target=x86_64_v4"
|
||||
- "pmix@3: target=x86_64_v3"
|
||||
quantum-espresso:
|
||||
require:
|
||||
- one_of:
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v4"
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v4"
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
slurm:
|
||||
buildable: false
|
||||
externals:
|
||||
- prefix: ${SLURM_ROOT}
|
||||
spec: slurm@${SLURM_VERSION} +pmix
|
||||
wrf:
|
||||
require:
|
||||
- one_of:
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v4"
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v3"
|
||||
- "wrf@4.2.2 +netcdf_classic fflags=\"-fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common\" build_type=dm+sm target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v4"
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v3"
|
||||
- "wrf@4.2.2 +netcdf_classic fflags=\"-fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common\" build_type=dm+sm target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
|
||||
all:
|
||||
compiler: [oneapi, gcc]
|
||||
permissions:
|
||||
read: world
|
||||
write: user
|
||||
providers:
|
||||
blas: [intel-oneapi-mkl]
|
||||
daal: [intel-oneapi-dal]
|
||||
fftw-api: [intel-oneapi-mkl]
|
||||
ipp: [intel-oneapi-ipp]
|
||||
lapack: [intel-oneapi-mkl]
|
||||
mkl: [intel-oneapi-mkl]
|
||||
mpi: [intel-oneapi-mpi, openmpi, mpich]
|
||||
tbb: [intel-oneapi-tbb, intel-tbb]
|
||||
scalapack: [intel-oneapi-mkl]
|
||||
|
||||
|
||||
|
@ -31,10 +31,7 @@ spack:
|
||||
- . /etc/profile.d/modules.sh
|
||||
- spack --version
|
||||
- spack arch
|
||||
# Use gcc from pre-installed spack store
|
||||
- - cp share/spack/gitlab/cloud_pipelines/configs/config.yaml etc/spack/
|
||||
- /bin/bash "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh"
|
||||
- rm etc/spack/config.yaml
|
||||
- export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/binutils-2.37-qvccg7zpskturysmr4bzbsfrx34kvazo/bin:$PATH
|
||||
- signing-job:
|
||||
before_script:
|
||||
# Do not distribute Intel & ARM binaries
|
||||
@ -43,3 +40,172 @@ spack:
|
||||
|
||||
cdash:
|
||||
build-group: AWS Packages
|
||||
|
||||
compilers:
|
||||
- compiler:
|
||||
environment: {}
|
||||
extra_rpaths: []
|
||||
flags: {}
|
||||
modules: []
|
||||
operating_system: amzn2
|
||||
paths:
|
||||
cc: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/bin/gcc
|
||||
cxx: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/bin/g++
|
||||
f77: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/bin/gfortran
|
||||
fc: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/bin/gfortran
|
||||
spec: gcc@=12.4.0
|
||||
target: x86_64
|
||||
- compiler:
|
||||
environment: {}
|
||||
extra_rpaths:
|
||||
- /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/lib64
|
||||
flags: {}
|
||||
modules: []
|
||||
operating_system: amzn2
|
||||
paths:
|
||||
cc: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop/compiler/2024.1/bin/icx
|
||||
cxx: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop/compiler/2024.1/bin/icpx
|
||||
f77: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop/compiler/2024.1/bin/ifx
|
||||
fc: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop/compiler/2024.1/bin/ifx
|
||||
spec: oneapi@=2024.1.0
|
||||
target: x86_64
|
||||
|
||||
packages:
|
||||
cpio:
|
||||
require:
|
||||
- one_of:
|
||||
- "cflags=-std=c18 target=x86_64_v4"
|
||||
- "cflags=-std=c18 target=x86_64_v3"
|
||||
when: "%intel"
|
||||
gettext:
|
||||
# Newer gettext cannot build with gcc@12 and old AL2 glibc headers
|
||||
# Older gettext versions do not build correctly with oneapi.
|
||||
require:
|
||||
- one_of:
|
||||
- '@:0.20'
|
||||
- '%oneapi'
|
||||
gromacs:
|
||||
require:
|
||||
- one_of:
|
||||
- "+intel_provided_gcc ^intel-oneapi-mkl target=x86_64_v4"
|
||||
- "+intel_provided_gcc ^intel-oneapi-mkl target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "+intel_provided_gcc target=x86_64_v4 ^intel-oneapi-mkl"
|
||||
- "+intel_provided_gcc target=x86_64_v3 ^intel-oneapi-mkl"
|
||||
when: "%oneapi"
|
||||
intel-oneapi-compilers:
|
||||
require: "intel-oneapi-compilers %gcc target=x86_64_v3"
|
||||
intel-oneapi-mpi:
|
||||
variants: +external-libfabric generic-names=True
|
||||
lammps:
|
||||
require:
|
||||
- one_of:
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package +intel fft=mkl ^intel-oneapi-mkl target=x86_64_v4"
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package +intel fft=mkl ^intel-oneapi-mkl target=x86_64_v4"
|
||||
- "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
libidn2:
|
||||
require:
|
||||
- one_of:
|
||||
- "cflags=-std=c18 target=x86_64_v4"
|
||||
- "cflags=-std=c18 target=x86_64_v3"
|
||||
when: "%intel"
|
||||
libfabric:
|
||||
buildable: true
|
||||
externals:
|
||||
- prefix: /opt/amazon/efa/
|
||||
spec: libfabric@1.17.0
|
||||
require: ['fabrics=shm,efa']
|
||||
libunistring:
|
||||
require:
|
||||
- one_of:
|
||||
- "cflags=-std=c18 target=x86_64_v4"
|
||||
- "cflags=-std=c18 target=x86_64_v3"
|
||||
when: "%intel"
|
||||
mpas-model:
|
||||
require:
|
||||
- one_of:
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v4"
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v4"
|
||||
- "precision=single ^parallelio+pnetcdf target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
mpich:
|
||||
require:
|
||||
- one_of:
|
||||
- "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm target=x86_64_v4"
|
||||
- "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm target=x86_64_v3"
|
||||
openfoam:
|
||||
require:
|
||||
- one_of:
|
||||
- "openfoam %gcc ^scotch@6.0.9 target=x86_64_v4"
|
||||
- "openfoam %gcc ^scotch@6.0.9 target=x86_64_v3"
|
||||
openmpi:
|
||||
variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm
|
||||
require:
|
||||
- one_of:
|
||||
- "openmpi @4: target=x86_64_v4"
|
||||
- "openmpi @4: target=x86_64_v3"
|
||||
palace:
|
||||
require:
|
||||
- one_of:
|
||||
- "palace ^fmt@9.1.0 target=x86_64_v4"
|
||||
- "palace ^fmt@9.1.0 target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
- one_of:
|
||||
- "palace ^fmt@9.1.0"
|
||||
when: "%gcc"
|
||||
pmix:
|
||||
require:
|
||||
- one_of:
|
||||
- "pmix@3: target=x86_64_v4"
|
||||
- "pmix@3: target=x86_64_v3"
|
||||
quantum-espresso:
|
||||
require:
|
||||
- one_of:
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v4"
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v4"
|
||||
- "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
slurm:
|
||||
buildable: false
|
||||
externals:
|
||||
- prefix: /opt/slurm
|
||||
spec: slurm@22.05.8 +pmix
|
||||
wrf:
|
||||
require:
|
||||
- one_of:
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v4"
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v3"
|
||||
- "wrf@4.2.2 +netcdf_classic fflags=\"-fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common\" build_type=dm+sm target=x86_64_v3"
|
||||
when: "%intel"
|
||||
- one_of:
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v4"
|
||||
- "wrf@4 build_type=dm+sm target=x86_64_v3"
|
||||
- "wrf@4.2.2 +netcdf_classic fflags=\"-fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common\" build_type=dm+sm target=x86_64_v3"
|
||||
when: "%oneapi"
|
||||
|
||||
all:
|
||||
compiler: [oneapi, gcc]
|
||||
permissions:
|
||||
read: world
|
||||
write: user
|
||||
providers:
|
||||
blas: [intel-oneapi-mkl]
|
||||
daal: [intel-oneapi-dal]
|
||||
fftw-api: [intel-oneapi-mkl]
|
||||
ipp: [intel-oneapi-ipp]
|
||||
lapack: [intel-oneapi-mkl]
|
||||
mkl: [intel-oneapi-mkl]
|
||||
mpi: [intel-oneapi-mpi, openmpi, mpich]
|
||||
tbb: [intel-oneapi-tbb, intel-tbb]
|
||||
scalapack: [intel-oneapi-mkl]
|
||||
|
Loading…
Reference in New Issue
Block a user