mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 14:15:19 -04:00
Test the latest Intel oneAPI HPC Toolkit version with ssmp and psmp using the new ifx Fortran compiler. The existing Intel tests use still the old ifort compiler.
96 lines
3.1 KiB
Text
96 lines
3.1 KiB
Text
#
|
|
# This file was created by generate_dockerfiles.py.
|
|
# Usage: podman build --shm-size=1g -f ./Dockerfile.test_intel-psmp ../../
|
|
#
|
|
|
|
FROM intel/hpckit:2024.2.1-0-devel-ubuntu22.04
|
|
|
|
# Install requirements for the toolchain.
|
|
WORKDIR /opt/cp2k-toolchain
|
|
COPY ./tools/toolchain/install_requirements*.sh ./
|
|
RUN ./install_requirements.sh ubuntu
|
|
|
|
# Install the toolchain.
|
|
RUN mkdir scripts
|
|
COPY ./tools/toolchain/scripts/VERSION \
|
|
./tools/toolchain/scripts/parse_if.py \
|
|
./tools/toolchain/scripts/tool_kit.sh \
|
|
./tools/toolchain/scripts/common_vars.sh \
|
|
./tools/toolchain/scripts/signal_trap.sh \
|
|
./tools/toolchain/scripts/get_openblas_arch.sh \
|
|
./scripts/
|
|
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
|
|
RUN ./install_cp2k_toolchain.sh \
|
|
--install-all \
|
|
--with-dbcsr=no \
|
|
--with-ifx=no \
|
|
--with-intelmpi \
|
|
--with-mkl \
|
|
--with-libsmeagol \
|
|
--with-libtorch=no \
|
|
--with-deepmd=no \
|
|
--dry-run
|
|
|
|
# Dry-run leaves behind config files for the followup install scripts.
|
|
# This breaks up the lengthy installation into smaller build steps.
|
|
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
|
|
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
|
|
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
|
|
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
|
|
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
|
|
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
|
|
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
|
|
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
|
|
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
|
|
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage9/ ./scripts/stage9/
|
|
RUN ./scripts/stage9/install_stage9.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/arch_base.tmpl \
|
|
./tools/toolchain/scripts/generate_arch_files.sh \
|
|
./scripts/
|
|
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
|
|
|
|
# Install CP2K using local.psmp.
|
|
WORKDIR /opt/cp2k
|
|
COPY ./Makefile .
|
|
COPY ./src ./src
|
|
COPY ./exts ./exts
|
|
COPY ./tools/build_utils ./tools/build_utils
|
|
RUN /bin/bash -c " \
|
|
mkdir -p arch && \
|
|
ln -vs /opt/cp2k-toolchain/install/arch/local.psmp ./arch/"
|
|
COPY ./data ./data
|
|
COPY ./tests ./tests
|
|
COPY ./tools/regtesting ./tools/regtesting
|
|
|
|
# Run regression tests.
|
|
ARG TESTOPTS="--mpiexec mpiexec"
|
|
COPY ./tools/docker/scripts/test_regtest.sh ./
|
|
RUN /bin/bash -o pipefail -c " \
|
|
TESTOPTS='${TESTOPTS}' \
|
|
./test_regtest.sh 'local' 'psmp' |& tee report.log && \
|
|
rm -rf regtesting"
|
|
|
|
# Output the report if the image is old and was therefore pulled from the build cache.
|
|
CMD cat $(find ./report.log -mmin +10) | sed '/^Summary:/ s/$/ (cached)/'
|
|
ENTRYPOINT []
|
|
|
|
#EOF
|