mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 14:15:19 -04:00
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:
parent
993cc6f902
commit
bec65495dc
8 changed files with 49 additions and 26 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
16
make_cp2k.sh
16
make_cp2k.sh
|
|
@ -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 "\$@"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue