Fix Cray tester (#4866)

- Drop openpmd feature for Daint
- Reduce default number of OMP_NUM_THREADS from 8 to 2 in launch script
- Use popt binary for benchmark runs
- Use old libfabric 1.22.0 for CSCS tester instead of version 2.4.0
- Add feature flags and increase time limit for Cray tester
- Use py-torch 2.9.0 instead of 2.10.0
This commit is contained in:
Matthias Krack 2026-02-22 08:55:25 +01:00 committed by GitHub
parent 993cc6f902
commit bec65495dc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 49 additions and 26 deletions

View file

@ -31,12 +31,12 @@ build deps daint:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"CP2K_VERSION",
"LOG_LINES"
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
CP2K_VERSION: ${VERSION}
LOG_LINES: 200
FEATURE_FLAGS: ""
build cp2k daint:
extends: .container-builder-cscs-gh200
@ -51,11 +51,13 @@ build cp2k daint:
variables:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"DEPS_IMAGE"
"DEPS_IMAGE",
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
DEPS_IMAGE: ${DEPS_IMAGE_NAME}
FEATURE_FLAGS: ""
PERSIST_IMAGE_NAME: ${CSCS_IMAGE_NAME}
test cp2k daint:
@ -88,7 +90,7 @@ regression test cp2k daint:
SLURM_HINT: nomultithread
SLURM_JOB_NUM_NODES: 1
SLURM_NTASKS: 288
SLURM_TIMELIMIT: 20
SLURM_TIMELIMIT: 30
USE_MPI: YES
benchmark cp2k 1 daint node:
@ -100,7 +102,7 @@ benchmark cp2k 1 daint node:
before_script:
- export CP2K_DATA_DIR=/opt/cp2k/install/share/cp2k/data
script:
- cp2k /opt/cp2k/benchmarks/CI/H2O-512_md.inp
- cp2k.popt /opt/cp2k/benchmarks/CI/H2O-512_md.inp
variables:
SLURM_CPU_BIND: cores
SLURM_CPUS_PER_TASK: 1

View file

@ -31,12 +31,12 @@ build deps eiger:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"CP2K_VERSION",
"LOG_LINES"
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
CP2K_VERSION: ${VERSION}
LOG_LINES: 200
FEATURE_FLAGS: "-ef openpmd"
build cp2k eiger:
extends: .container-builder-cscs-zen2
@ -51,11 +51,13 @@ build cp2k eiger:
variables:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"DEPS_IMAGE"
"DEPS_IMAGE",
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
DEPS_IMAGE: ${DEPS_IMAGE_NAME}
FEATURE_FLAGS: "-ef openpmd"
PERSIST_IMAGE_NAME: ${CSCS_IMAGE_NAME}
test cp2k eiger:
@ -90,7 +92,7 @@ regression test cp2k eiger:
SLURM_HINT: nomultithread
SLURM_JOB_NUM_NODES: 1
SLURM_NTASKS: 128
SLURM_TIMELIMIT: 30
SLURM_TIMELIMIT: 40
USE_MPI: YES
benchmark cp2k 1 eiger node:
@ -102,7 +104,7 @@ benchmark cp2k 1 eiger node:
before_script:
- export CP2K_DATA_DIR=/opt/cp2k/install/share/cp2k/data
script:
- cp2k /opt/cp2k/benchmarks/CI/H2O-128_md.inp
- cp2k.popt /opt/cp2k/benchmarks/CI/H2O-128_md.inp
variables:
SLURM_CONSTRAINT: mc
SLURM_CPUS_PER_TASK: 1
@ -124,7 +126,7 @@ benchmark cp2k 2 eiger nodes:
before_script:
- export CP2K_DATA_DIR=/opt/cp2k/install/share/cp2k/data
script:
- cp2k /opt/cp2k/benchmarks/CI/H2O-512_md.inp
- cp2k.popt /opt/cp2k/benchmarks/CI/H2O-512_md.inp
variables:
SLURM_CONSTRAINT: mc
SLURM_CPUS_PER_TASK: 1

View file

@ -30,12 +30,12 @@ build deps eiger:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"CP2K_VERSION",
"LOG_LINES"
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
CP2K_VERSION: ${VERSION}
LOG_LINES: 200
FEATURE_FLAGS: ""
build cp2k eiger:
extends: .container-builder-cscs-zen2
@ -50,11 +50,13 @@ build cp2k eiger:
variables:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"DEPS_IMAGE"
"DEPS_IMAGE",
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
DEPS_IMAGE: ${DEPS_IMAGE_NAME}
FEATURE_FLAGS: ""
PERSIST_IMAGE_NAME: ${CSCS_IMAGE_NAME}
test cp2k eiger:
@ -88,6 +90,6 @@ regression test cp2k eiger:
SLURM_HINT: nomultithread
SLURM_JOB_NUM_NODES: 1
SLURM_NTASKS: 128
SLURM_TIMELIMIT: 30
SLURM_TIMELIMIT: 40
# EOF

View file

@ -9,7 +9,7 @@
ARG BASE_IMAGE="ubuntu:24.04"
ARG DEPS_IMAGE=""
###### Stage 2a: Build CP2K ######
###### Stage 2: Build CP2K ######
FROM "${DEPS_IMAGE}" AS build_cp2k
@ -17,11 +17,14 @@ FROM "${DEPS_IMAGE}" AS build_cp2k
ARG NUM_PROCS
ENV NUM_PROCS=${NUM_PROCS:-32}
ARG FEATURE_FLAGS
ENV FEATURE_FLAGS=${FEATURE_FLAGS:-}
# Build CP2K
WORKDIR /opt/cp2k
RUN /bin/bash -o pipefail -c "source ./make_cp2k.sh -cv ${CP2K_VERSION} -dlc -j${NUM_PROCS}"
RUN ./make_cp2k.sh -cray -cv ${CP2K_VERSION} -dlc -j${NUM_PROCS} ${FEATURE_FLAGS}
###### Stage 2: Install CP2K ######
###### Stage 3: Install CP2K ######
FROM "${BASE_IMAGE}" AS install_cp2k
@ -45,6 +48,10 @@ COPY --from=build_cp2k /opt/cp2k/src/grid/sample_tasks ./src/grid/sample_tasks
# Install CP2K/Quickstep CI benchmarks
COPY --from=build_cp2k /opt/cp2k/benchmarks/CI ./benchmarks/CI
# Do not rely only on LD_LIBRARY_PATH because it is fragile
COPY --from=build_cp2k /etc/ld.so.conf.d/cp2k.conf /etc/ld.so.conf.d/cp2k.conf
RUN ldconfig
# Create entrypoint and finalise container build
WORKDIR /mnt
ENTRYPOINT ["/opt/cp2k/install/bin/launch"]

View file

@ -25,7 +25,6 @@ RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
libtool-bin \
lsb-release \
make \
ninja-build \
patch \
pkgconf \
python3 \
@ -46,10 +45,13 @@ ENV NUM_PROCS=${NUM_PROCS:-32}
ARG CP2K_VERSION
ENV CP2K_VERSION=${CP2K_VERSION:-psmp}
ARG FEATURE_FLAGS
ENV FEATURE_FLAGS=${FEATURE_FLAGS:-}
# Copy CP2K repository into container
WORKDIR /opt
COPY . cp2k/
# Build CP2K dependencies
WORKDIR /opt/cp2k
RUN /bin/bash -o pipefail -c "source ./make_cp2k.sh -bd_only -cv ${CP2K_VERSION} -dlc -j${NUM_PROCS}"
RUN ./make_cp2k.sh -bd_only -cray -cv ${CP2K_VERSION} -dlc -j${NUM_PROCS} ${FEATURE_FLAGS}

View file

@ -84,8 +84,13 @@ else
EXIT_CMD="exit"
fi
# Help finding ldconfig
if ! command -v ldconfig &> /dev/null; then
PATH="${PATH}:/sbin"
fi
# Check if all mandatory packages are installed in the environment
for package in awk bzip2 find g++ gcc gfortran git make gzip patch python3 tar wget xz; do
for package in awk bzip2 find g++ gcc gfortran git gzip ldconfig make patch python3 tar wget xz; do
if ! command -v "${package}" &> /dev/null; then
echo "ERROR: The package \"${package}\" is mandatory to build CP2K with Spack/CMake"
echo " Install the missing package and re-run the script"
@ -811,9 +816,12 @@ if [[ ! -d "${SPACK_BUILD_PATH}" ]]; then
sed -E -e "0,/~cuda/s//+cuda cuda_arch=${CUDA_ARCH}/" -i "${CP2K_CONFIG_FILE}"
fi
# Apply Cray specific adaptation of the spack configuration if requested
# Apply Cray specific adaptation of the spack configuration if requested (CSCS)
if [[ "${CRAY}" == "yes" ]]; then
sed -E -e 's/~xpmem/+xpmem/' -i "${CP2K_CONFIG_FILE}"
sed -E \
-e 's/~xpmem/+xpmem/' \
-e 's/"libfabric@[.0-9]*"/"libfabric@1.22.0"/' \
-i "${CP2K_CONFIG_FILE}"
fi
# Apply feature selection to spack configuration file
@ -1234,7 +1242,7 @@ cat << *** > "${LAUNCH_SCRIPT}"
ulimit -c 0 -s unlimited
export PATH=${INSTALL_PREFIX}/bin:${PATH}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export OMP_NUM_THREADS=\${OMP_NUM_THREADS:-8}
export OMP_NUM_THREADS=\${OMP_NUM_THREADS:-2}
export OMP_STACKSIZE=256M
${OMPI_VARS}
exec "\$@"

View file

@ -205,7 +205,7 @@ spack:
- "pace@2025.12.4"
- "pexsi@2.0.0"
- "plumed@2.10.0"
- "py-torch@2.10.0"
- "py-torch@2.9.0"
- "sirius@7.10.0"
- "spfft@1.1.1"
- "spglib@2.7.0"

View file

@ -123,7 +123,7 @@ spack:
- "libxsmm@1.17-cp2k"
- "openblas@0.3.31"
- "pace@2025.12.4"
- "py-torch@2.10.0"
- "py-torch@2.9.0"
- "spglib@2.7.0"
- "tblite@0.5.0"
- "trexio@2.5.0"