Skip to content
Merged
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
4fe24ba
Test pika async_rw_mutex refactoring branch
msimberg Mar 31, 2025
fc31269
Use stdexec 25.03 in CI
msimberg Mar 31, 2025
e76fb66
Use pika@main in preparation for pika 0.33.0 release
msimberg Apr 1, 2025
c14ab6a
Update SPACK_SHA for CI
msimberg Apr 1, 2025
798849a
Adapt CI to spack's compilers-as-nodes
msimberg Apr 1, 2025
2510222
Install MKL through spack in CI
msimberg Apr 2, 2025
e657db0
Merge remote-tracking branch 'origin/master' into pika-0.33.0
msimberg Apr 2, 2025
70f5c4a
Use spack commit with mkl fixed
msimberg Apr 2, 2025
48adaa3
Remove openssl version constraint
msimberg Apr 2, 2025
f9d85a0
Explicitly require gfortran as fortran compiler
msimberg Apr 2, 2025
f50bf38
Bump SPACK_SHA
msimberg Apr 2, 2025
bf24c49
Add languages as dependencies to cray-mpich
msimberg Apr 2, 2025
ca2c24a
Use custom alps-cluster-config branch
msimberg Apr 2, 2025
1a0957f
Add extra_attributes:compilers to llvm_amdgpu externals
msimberg Apr 3, 2025
2d9426b
Remove unused USE_ROCBLAS variables from rocm CI configs
msimberg Apr 3, 2025
bfaa57e
Merge remote-tracking branch 'origin/master' into pika-0.33.0
msimberg Apr 7, 2025
e2c5405
Use custom branch of alps-cluster-config
msimberg Apr 7, 2025
49f8a59
Fix test_pipeline for pika 0.33.0
msimberg Apr 14, 2025
b50e31e
Merge remote-tracking branch 'origin/master' into pika-0.33.0
msimberg Apr 22, 2025
b3bdf75
Update spack sha again
msimberg Apr 22, 2025
1d453e3
Remove explicit pika 0.33.0 requirement (0.33.0 available on spack co…
msimberg Apr 22, 2025
3e16c37
Simplify build.Dockerfile
msimberg Apr 22, 2025
fbb4cbd
Update ci/docker/build.Dockerfile
msimberg Apr 22, 2025
96f433b
Update ci/docker/common-gh200.yaml
msimberg Apr 23, 2025
6514ae3
Remove MKL as external from dockerfiles
msimberg Apr 23, 2025
585a171
Still require pika 0.30.1 in one CI configuration
msimberg Apr 23, 2025
f4e3eea
Merge remote-tracking branch 'origin/master' into pika-0.33.0
msimberg Apr 29, 2025
a4775db
Update spack sha
msimberg Apr 29, 2025
52ae135
Merge remote-tracking branch 'origin/master' into pika-0.33.0
msimberg Apr 29, 2025
ae02edb
Remove openssl version requirement in CI
msimberg Apr 29, 2025
8ba48fa
Update test/unit/common/test_pipeline.cpp
msimberg May 13, 2025
49d3eaf
Merge remote-tracking branch 'origin/master' into pika-0.33.0
msimberg Jun 30, 2025
b8cd3be
Merge remote-tracking branch 'msimberg/pika-0.33.0' into pika-0.33.0
msimberg Jul 3, 2025
c22152e
Use threads=none for intel-oneapi-mkl in CI
msimberg Jul 3, 2025
e9e6b6e
Use separate spack-packages repo in CI
msimberg Jul 3, 2025
a05aa25
Shorten spack tags
msimberg Jul 3, 2025
12e6a28
Bump libfabric version
msimberg Jul 3, 2025
c667d71
Fix eiger libfabric version
msimberg Jul 3, 2025
e082861
Use cray-mpich on eiger
msimberg Jul 9, 2025
b9b28dd
Comment out pipelines in CI
msimberg Jul 9, 2025
392ab73
Fix alps-cluster-config path
msimberg Jul 9, 2025
68dd492
Mark cray-* packages buildable
msimberg Jul 9, 2025
65b9fc9
Require that xpmem is built without kernel module
msimberg Jul 9, 2025
9d33030
Add SLURM_MPI_TYPE for eiger
msimberg Jul 10, 2025
734dd06
Use main branch for alps-cluster-config
msimberg Jul 11, 2025
f021139
Pin alps-cluster-config repo
msimberg Jul 11, 2025
f6840c1
Reenable all CI pipelines
msimberg Jul 11, 2025
b678f56
Use custom alps-cluster-config commit
msimberg Aug 4, 2025
acfd282
Use another alps-cluster-config commit
msimberg Aug 4, 2025
d9e49dd
Limit number of threads used for coverage
msimberg Aug 4, 2025
b63703f
Reduce number of coverage threads further
msimberg Aug 5, 2025
ac9d446
Still fewer coverage threads...
msimberg Aug 5, 2025
b86cfa1
Merge remote-tracking branch 'origin/master' into pika-0.33.0
msimberg Aug 8, 2025
caf5a46
Disable coverage on GCC 13 CI pipeline
msimberg Aug 8, 2025
5f5d438
Remove custom base image instructions
msimberg Aug 8, 2025
dc4c2fc
Apply suggestion from @msimberg
msimberg Aug 8, 2025
6eddab7
Completely disable GCC 13 coverage pipeline
msimberg Aug 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 0 additions & 43 deletions ci/base-images/amdgpu-cray-mpich/HOWTO.md

This file was deleted.

5 changes: 0 additions & 5 deletions ci/base-images/amdgpu-cray-mpich/build.Dockerfile

This file was deleted.

64 changes: 0 additions & 64 deletions ci/base-images/gh200-cray-mpich/HOWTO.md

This file was deleted.

5 changes: 0 additions & 5 deletions ci/base-images/gh200-cray-mpich/build.Dockerfile

This file was deleted.

2 changes: 2 additions & 0 deletions ci/ci-ext-custom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ include:
extends: .container-runner-eiger
variables:
SLURM_CONSTRAINT: mc
# Need to reset as remote adds SLURM_MPI_TYPE: pmi2
SLURM_MPI_TYPE: cray_shasta

.dlaf-container-runner-daint-gh200:
extends: .container-runner-daint-gh200
Expand Down
12 changes: 9 additions & 3 deletions ci/common-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,12 @@ variables:
- TAG_APTGET=`echo ${EXTRA_APTGET} | sha256sum - | head -c 6`
- TAG_COMPILER=`echo ${COMPILER}_CXX${CXXSTD} | sed 's/[@]//g'`
- TAG_DOCKERFILE=`sha256sum $DOCKERFILE | head -c 12`
- TAG_SPACK=`echo $SPACK_SHA | sed "s/develop-//g" | head -c 16`
- TAG_SPACK=`echo $SPACK_SHA | sed "s/develop-//g" | head -c 8`
- TAG_SPACK_PACKAGES=`echo $SPACK_PACKAGES_SHA | sed "s/develop-//g" | head -c 8`
- TAG_ALPS_CLUSTER_CONFIG=`echo $ALPS_CLUSTER_CONFIG_SHA | head -c 8`
- TAG_REPO=`find $SPACK_DLAF_REPO -type f -exec sha256sum {} \; | sha256sum - | head -c 12`
- TAG_ENVIRONMENT=`cat $SPACK_ENVIRONMENT $COMMON_SPACK_ENVIRONMENT | sha256sum | head -c 12`
- TAG=${TAG_IMAGE}-${TAG_APTGET}-${TAG_COMPILER}-MKL${USE_MKL}-${TAG_DOCKERFILE}-${TAG_SPACK}-${TAG_REPO}-${TAG_ENVIRONMENT}
- TAG=${TAG_IMAGE}-${TAG_APTGET}-${TAG_COMPILER}-MKL${USE_MKL}-${TAG_DOCKERFILE}-${TAG_SPACK}-${TAG_SPACK_PACKAGES}-${TAG_ALPS_CLUSTER_CONFIG}-${TAG_REPO}-${TAG_ENVIRONMENT}
- export PERSIST_IMAGE_NAME=$DEPS_IMAGE:$TAG
- echo "DEPS_IMAGE=$PERSIST_IMAGE_NAME" > build.env
- echo "USE_MKL=$USE_MKL" >> build.env
Expand All @@ -44,11 +46,15 @@ variables:
reports:
dotenv: build.env
variables:
SPACK_SHA: develop-2025-02-09
SPACK_SHA: fbadf557433ae3d8cb8a2b63a81303de42a9fd6f
SPACK_PACKAGES_SHA: bf71e784ba28818a05468ce4ffef405fa7c3d151
ALPS_CLUSTER_CONFIG_SHA: 3c26eb25bdfa3151b637c040154a55bb9da31ba1

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this is eth-cscs/alps-cluster-config@3c26eb2, i.e. not a commit on alps-cluster-config main. @simonpintarelli is looking at making a similar on main. Once that's in we could go back to a non-custom commit.

SPACK_DLAF_REPO: ./spack
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"SPACK_SHA",
"SPACK_PACKAGES_SHA",
"ALPS_CLUSTER_CONFIG_SHA",
"EXTRA_APTGET",
"COMPILER",
"CXXSTD",
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/asan_ubsan_lsan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu asan ubsan lsan deps:
extends: .build_deps_common
variables:
EXTRA_APTGET: "clang-18 libclang-rt-18-dev libomp-18-dev llvm-18"
COMPILER: clang@18
COMPILER: llvm@18
Comment thread
msimberg marked this conversation as resolved.
SPACK_ENVIRONMENT: ci/docker/asan-ubsan-lsan.yaml
USE_MKL: "ON"
DEPS_IMAGE: $CSCS_REGISTRY_PATH/cpu-asan-ubsan-lsan/deps
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang15_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu clang15 release deps:
extends: .build_deps_common
variables:
EXTRA_APTGET: "clang-15"
COMPILER: clang@15
COMPILER: llvm@15
SPACK_ENVIRONMENT: ci/docker/release-cpu-serial.yaml
USE_MKL: "ON"
DEPS_IMAGE: $CSCS_REGISTRY_PATH/cpu-clang15-release/deps
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang15_release_cxx20.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu clang15 cxx20 release deps:
extends: .build_deps_common
variables:
EXTRA_APTGET: "clang-15 libomp-15-dev"
COMPILER: clang@15
COMPILER: llvm@15
CXXSTD: 20
SPACK_ENVIRONMENT: ci/docker/release-cpu.yaml
USE_MKL: "ON"
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang15_release_stdexec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu clang15 stdexec release deps:
extends: .build_deps_common
variables:
EXTRA_APTGET: "clang-15 libomp-15-dev"
COMPILER: clang@15
COMPILER: llvm@15
CXXSTD: 20
SPACK_ENVIRONMENT: ci/docker/release-cpu-stdexec.yaml
USE_MKL: "ON"
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang16_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu clang16 release deps:
extends: .build_deps_common
variables:
EXTRA_APTGET: "clang-16 libomp-16-dev"
COMPILER: clang@16
COMPILER: llvm@16
SPACK_ENVIRONMENT: ci/docker/release-cpu.yaml
USE_MKL: "ON"
DEPS_IMAGE: $CSCS_REGISTRY_PATH/cpu-clang16-release/deps
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang18_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu clang18 release deps:
extends: .build_deps_common
variables:
EXTRA_APTGET: "clang-18 libomp-18-dev"
COMPILER: clang@18
COMPILER: llvm@18
SPACK_ENVIRONMENT: ci/docker/release-cpu.yaml
USE_MKL: "ON"
DEPS_IMAGE: $CSCS_REGISTRY_PATH/cpu-clang18-release/deps
Expand Down
3 changes: 2 additions & 1 deletion ci/cpu/gcc13_codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ cpu gcc13 codecov deps:
COMPILER: gcc@13
SPACK_ENVIRONMENT: ci/docker/debug-cpu.yaml
DEPS_IMAGE: $CSCS_REGISTRY_PATH/cpu-gcc13-codecov/deps
USE_CODECOV: "true"
# https://github.com/eth-cscs/DLA-Future/pull/1311
# USE_CODECOV: "true"

cpu gcc13 codecov build:
extends:
Expand Down
45 changes: 19 additions & 26 deletions ci/docker/build.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,31 +33,25 @@ RUN apt-get -yqq update && \
${EXTRA_APTGET} && \
rm -rf /var/lib/apt/lists/*

# Install MKL and remove static libs (to keep image smaller)
ARG USE_MKL=ON
ARG MKL_VERSION=2024.0
ARG MKL_SPEC=2024.0.0
RUN if [ "$USE_MKL" = "ON" ]; then \
wget -qO - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB 2>/dev/null > /etc/apt/trusted.gpg.d/intel.asc && \
apt-add-repository 'deb https://apt.repos.intel.com/oneapi all main' && \
apt-get install -y -qq --no-install-recommends intel-oneapi-mkl-devel-${MKL_VERSION} && \
rm -rf /var/lib/apt/lists/* && \
find "/opt/intel/oneapi" -name "*.a" -delete ; \
fi

# This is the spack version we want to have
# These are the versions of spack and spack-packages we want to have
ARG SPACK_SHA
ENV SPACK_SHA=$SPACK_SHA
ARG SPACK_PACKAGES_SHA
ENV SPACK_PACKAGES_SHA=$SPACK_PACKAGES_SHA

# Install the specific ref of Spack provided by the user and find compilers
RUN mkdir -p /opt/spack && \
curl -Ls "https://api.github.com/repos/spack/spack/tarball/$SPACK_SHA" | tar --strip-components=1 -xz -C /opt/spack
curl -Ls "https://api.github.com/repos/spack/spack/tarball/$SPACK_SHA" | tar --strip-components=1 -xz -C /opt/spack && \
mkdir -p /opt/spack-packages && \
curl -Ls "https://api.github.com/repos/spack/spack-packages/tarball/$SPACK_PACKAGES_SHA" | tar --strip-components=1 -xz -C /opt/spack-packages
RUN spack repo add --scope site /opt/spack-packages/repos/spack_repo/builtin

# Find compilers + Add gfortran to clang specs + Define which compiler we want to use
# Find compilers + Define which compiler we want to use
ARG COMPILER
RUN spack compiler find && \
gawk -i inplace '$0 ~ "compiler:" {flag=0} $0 ~ "spec:.*clang" {flag=1} flag == 1 && $1 ~ "^f[c7]" && $2 ~ "null" {gsub("null","/usr/bin/gfortran",$0)} {print $0}' /root/.spack/linux/compilers.yaml && \
spack config add "packages:all:require:[\"%${COMPILER}\"]"
RUN spack external find gcc llvm && \
spack config add "packages:cxx:require:'${COMPILER}'" && \
spack config add "packages:c:require:'${COMPILER}'" && \
spack config add "packages:fortran:require:gcc"

RUN spack external find \
autoconf \
Expand All @@ -74,10 +68,7 @@ RUN spack external find \
perl \
pkg-config \
python \
xz && \
if [ "$USE_MKL" = "ON" ]; then \
echo -e " intel-oneapi-mkl:\n externals:\n - spec: \"intel-oneapi-mkl@$MKL_SPEC mpi_family=mpich\"\n prefix: /opt/intel/oneapi\n buildable: False" >> ~/.spack/packages.yaml ; \
fi
xz

# Add our custom spack repo from here
ARG SPACK_DLAF_REPO
Expand All @@ -86,10 +77,12 @@ COPY $SPACK_DLAF_REPO /user_repo
RUN spack repo add --scope site /user_repo

### Workaround until CE provides full MPI substitution.
# Add ~/site/repo if it exists in the base image
RUN if [ -d ~/site/repo ]; then \
spack repo add --scope site ~/site/repo; \
fi
ARG ALPS_CLUSTER_CONFIG_SHA
ENV ALPS_CLUSTER_CONFIG_SHA=$ALPS_CLUSTER_CONFIG_SHA
RUN mkdir -p /opt/alps-cluster-config && \
curl -Ls "https://api.github.com/repos/eth-cscs/alps-cluster-config/tarball/$ALPS_CLUSTER_CONFIG_SHA" | \
tar --strip-components=1 -xz -C /opt/alps-cluster-config && \
spack repo add --scope site /opt/alps-cluster-config/site/spack_repo/alps

# Set this to a spack.yaml file which contains a spec
# e.g. --build-arg SPACK_ENVIRONMENT=ci/spack/my-env.yaml
Expand Down
19 changes: 13 additions & 6 deletions ci/docker/common-amdgpu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,31 @@ packages:
mpi:
### Workaround until CE provides full MPI substitution.
require: 'cray-mpich'
xpmem:
require:
- '~kernel-module'
cray-gtl:
buildable: True
cray-mpich:
buildable: True
cray-pals:
buildable: True
cray-pmi:
buildable: True
blaspp:
variants:
- '~cuda'
- '~openmp'
- '~rocm'
intel-oneapi-mkl:
require:
- 'threads=openmp'
- 'threads=none'
openblas:
variants:
- 'threads=openmp'
openssl:
# without version spack concretizes openssl@3.3.1 that doesn't build due to deprecation
require:
- '@3.3.2'
libfabric:
require:
- '@1.15.2'
- '@1.22.0'
hwloc:
variants:
- '~libxml2'
Expand Down
17 changes: 12 additions & 5 deletions ci/docker/common-gh200.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,17 @@ packages:
mpi:
### Workaround until CE provides full MPI substitution.
require: 'cray-mpich'
xpmem:
require:
- '~kernel-module'
cray-gtl:
buildable: True
cray-mpich:
buildable: True
cray-pals:
buildable: True
cray-pmi:
buildable: True
blaspp:
variants:
- '~cuda'
Expand All @@ -38,14 +49,10 @@ packages:
openblas:
variants:
- 'threads=openmp'
openssl:
# without version spack concretizes openssl@3.3.1 that doesn't build due to deprecation
require:
- '@3.3.2'
libfabric:
# Fix version to be compatible with version on todi
require:
- '@1.15.2'
- '@1.22.0'
hwloc:
variants:
- '~libxml2'
Expand Down
Loading