Various fixes for the Cray H100 tester (#4869)

- Set unique PERSIST_IMAGE_NAME and fix typo
- Allow for change of BASE_IMAGE
- Fix short-name resolution issue
- Fix disable all features for libxsmm
- Add test runs to tester
- Add stage test to list
- Fix tag and add device flag
- Use netmod ofi instead of ucx
This commit is contained in:
Matthias Krack 2026-02-23 09:40:41 +01:00 committed by GitHub
parent 65c71bef51
commit a9a9e09f53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 46 additions and 13 deletions

View file

@ -89,7 +89,7 @@ regression test cp2k daint:
SLURM_DEBUG: 1
SLURM_HINT: nomultithread
SLURM_JOB_NUM_NODES: 1
SLURM_NTASKS: 288
SLURM_NTASKS: 228
SLURM_TIMELIMIT: 30
USE_MPI: YES
@ -114,5 +114,3 @@ benchmark cp2k 1 daint node:
SLURM_NTASKS_PER_NODE: 288
SLURM_TIMELIMIT: 30
USE_MPI: YES
# EOF

View file

@ -4,13 +4,14 @@ include:
stages:
- deps
- cp2k
- test
variables:
REPOSITORY: cp2k_daint
BUILDER: spack
VERSION: psmp
TAG: "${BUILDER}_${VERSION}"
UBUNTU_IMAGE_NAME: "nvidia/cuda:12.4.1-devel-ubuntu22.04"
TAG: "${BUILDER}_${VERSION}_h100"
UBUNTU_IMAGE_NAME: "docker.io/nvidia/cuda:12.4.1-devel-ubuntu22.04"
CSCS_IMAGE_NAME: "${CSCS_REGISTRY_PATH}/${REPOSITORY}:${TAG}_${CI_COMMIT_SHORT_SHA}"
DOCKERHUB_IMAGE_NAME: "docker.io/${DOCKERHUB_USERNAME}/${REPOSITORY}:${TAG}"
@ -34,7 +35,7 @@ build deps daint:
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
CP2K_VERSION: ${VERSION}
FEATURE_FLAGS: "-gpu H100 -df all""
FEATURE_FLAGS: "-gpu H100 -df all"
build cp2k daint:
extends: .container-builder-cscs-gh200
@ -57,3 +58,36 @@ build cp2k daint:
DEPS_IMAGE: ${DEPS_IMAGE_NAME}
FEATURE_FLAGS: "-gpu H100 -df all"
PERSIST_IMAGE_NAME: ${CSCS_IMAGE_NAME}
test cp2k daint:
extends: .baremetal-runner-daint-gh200
stage: test
needs: ["build cp2k daint"]
timeout: 1h
script:
- podman run --device nvidia.com/gpu=0 --shm-size=1g -v ${PWD}:/mnt ${DOCKERHUB_IMAGE_NAME} mpiexec -bind-to socket -genv OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} -n ${SLURM_NTASKS} cp2k /opt/cp2k/benchmarks/CI/H2O-32_md.inp
variables:
SLURM_CPUS_PER_TASK: 4
SLURM_DEBUG: 1
SLURM_HINT: nomultithread
SLURM_JOB_NUM_NODES: 1
SLURM_NTASKS: 8
SLURM_NTASKS_PER_NODE: 8
SLURM_TIMELIMIT: 10
USE_MPI: YES
regression test cp2k daint:
extends: .baremetal-runner-daint-gh200
stage: test
needs: ["build cp2k daint","test cp2k daint"]
timeout: 1h
script:
- git --no-pager log -1 --pretty="%nCommitSHA:%x20%H%nCommitTime:%x20%ci%nCommitAuthor:%x20%an%nCommitSubject:%x20%s%n"
- podman run --device nvidia.com/gpu=all --shm-size=1g -v ${PWD}:/mnt ${DOCKERHUB_IMAGE_NAME} /opt/cp2k/tests/do_regtest.py --cp2kdatadir /opt/cp2k/install/share/cp2k/data --maxtasks ${SLURM_NTASKS} --mpiexec "mpiexec -bind-to none" --keepalive /opt/cp2k/install/bin ${VERSION} 2>&1 || true
variables:
SLURM_DEBUG: 1
SLURM_HINT: nomultithread
SLURM_JOB_NUM_NODES: 1
SLURM_NTASKS: 228
SLURM_TIMELIMIT: 30
USE_MPI: YES

View file

@ -138,5 +138,3 @@ benchmark cp2k 2 eiger nodes:
SLURM_NTASKS_PER_NODE: 128
SLURM_TIMELIMIT: 30
USE_MPI: YES
# EOF

View file

@ -91,5 +91,3 @@ regression test cp2k eiger:
SLURM_JOB_NUM_NODES: 1
SLURM_NTASKS: 128
SLURM_TIMELIMIT: 40
# EOF

View file

@ -6,8 +6,8 @@
# Author: Matthias Krack (MK)
#
ARG BASE_IMAGE="ubuntu:24.04"
ARG DEPS_IMAGE=""
ARG BASE_IMAGE=${BASE_IMAGE:-ubuntu:24.04}
ARG DEPS_IMAGE=${DEPS_IMAGE:-}
###### Stage 2: Build CP2K ######

View file

@ -7,7 +7,7 @@
#
# Stage 1: Create a base image providing the dependencies for building a CP2K binary
ARG BASE_IMAGE="ubuntu:24.04"
ARG BASE_IMAGE=${BASE_IMAGE:-ubuntu:24.04}
FROM "${BASE_IMAGE}" AS build_deps

View file

@ -233,6 +233,9 @@ while [[ $# -gt 0 ]]; do
spglib spla tblite trexio; do
SED_PATTERN_LIST+=" -e '/\s*-\s+\"${package}@/ ${SUBST}"
done
if [[ "${ON_OFF}" == "OFF" ]]; then
SED_PATTERN_LIST+=" -e '/\s*-\s+\"smm=libxsmm\"/ s/libxsmm/blas/'"
fi
;;
ace | cosma | deepmd | dftd4 | dlaf | elpa | fftw3 | greenx | hdf5 | libint2 | \
libsmeagol | libtorch | libxc | libxsmm | mimic | openpmd | pexsi | plumed | \
@ -828,6 +831,7 @@ if [[ ! -d "${SPACK_BUILD_PATH}" ]]; then
# Apply Cray specific adaptation of the spack configuration if requested (CSCS)
if [[ "${CRAY}" == "yes" ]]; then
sed -E \
-e '/\s*#\s*-\s+"netmod=ofi"/ s/#/ /' \
-e 's/~xpmem/+xpmem/' \
-e 's/"libfabric@[.0-9]*"/"libfabric@1.22.0"/' \
-i "${CP2K_CONFIG_FILE}"

View file

@ -47,6 +47,7 @@ spack:
mpich:
require:
- "~xpmem"
# - "netmod=ofi"
xpmem:
require: