From a9a9e09f53593f8056ea951fd79170487a79730a Mon Sep 17 00:00:00 2001 From: Matthias Krack Date: Mon, 23 Feb 2026 09:40:41 +0100 Subject: [PATCH] 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 --- ci/cscs_daint_spack_psmp.yaml | 4 +-- ci/cscs_daint_spack_psmp_h100.yaml | 40 +++++++++++++++++++++++++-- ci/cscs_eiger_spack_psmp.yaml | 2 -- ci/cscs_eiger_spack_ssmp.yaml | 2 -- ci/docker/build_cp2k_spack.Dockerfile | 4 +-- ci/docker/build_deps_spack.Dockerfile | 2 +- make_cp2k.sh | 4 +++ tools/spack/cp2k_deps_psmp.yaml | 1 + 8 files changed, 46 insertions(+), 13 deletions(-) diff --git a/ci/cscs_daint_spack_psmp.yaml b/ci/cscs_daint_spack_psmp.yaml index 61fc17749c..d476a8a809 100644 --- a/ci/cscs_daint_spack_psmp.yaml +++ b/ci/cscs_daint_spack_psmp.yaml @@ -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 diff --git a/ci/cscs_daint_spack_psmp_h100.yaml b/ci/cscs_daint_spack_psmp_h100.yaml index c2722bfcfc..1d1ed7edf5 100644 --- a/ci/cscs_daint_spack_psmp_h100.yaml +++ b/ci/cscs_daint_spack_psmp_h100.yaml @@ -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 diff --git a/ci/cscs_eiger_spack_psmp.yaml b/ci/cscs_eiger_spack_psmp.yaml index f6fa60350a..4bcb2f22fb 100644 --- a/ci/cscs_eiger_spack_psmp.yaml +++ b/ci/cscs_eiger_spack_psmp.yaml @@ -138,5 +138,3 @@ benchmark cp2k 2 eiger nodes: SLURM_NTASKS_PER_NODE: 128 SLURM_TIMELIMIT: 30 USE_MPI: YES - -# EOF diff --git a/ci/cscs_eiger_spack_ssmp.yaml b/ci/cscs_eiger_spack_ssmp.yaml index d9a68d8bf3..8144dd77cb 100644 --- a/ci/cscs_eiger_spack_ssmp.yaml +++ b/ci/cscs_eiger_spack_ssmp.yaml @@ -91,5 +91,3 @@ regression test cp2k eiger: SLURM_JOB_NUM_NODES: 1 SLURM_NTASKS: 128 SLURM_TIMELIMIT: 40 - -# EOF diff --git a/ci/docker/build_cp2k_spack.Dockerfile b/ci/docker/build_cp2k_spack.Dockerfile index bd3ee26223..bc8b634892 100644 --- a/ci/docker/build_cp2k_spack.Dockerfile +++ b/ci/docker/build_cp2k_spack.Dockerfile @@ -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 ###### diff --git a/ci/docker/build_deps_spack.Dockerfile b/ci/docker/build_deps_spack.Dockerfile index a3401e35ab..785112c2c5 100644 --- a/ci/docker/build_deps_spack.Dockerfile +++ b/ci/docker/build_deps_spack.Dockerfile @@ -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 diff --git a/make_cp2k.sh b/make_cp2k.sh index ad524470ec..4e6c2b4f1d 100755 --- a/make_cp2k.sh +++ b/make_cp2k.sh @@ -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}" diff --git a/tools/spack/cp2k_deps_psmp.yaml b/tools/spack/cp2k_deps_psmp.yaml index 67da87ba9d..3540c360d5 100644 --- a/tools/spack/cp2k_deps_psmp.yaml +++ b/tools/spack/cp2k_deps_psmp.yaml @@ -47,6 +47,7 @@ spack: mpich: require: - "~xpmem" +# - "netmod=ofi" xpmem: require: