Add spack OpenMPI debug tester (pdbg) (#5104)

This commit is contained in:
Matthias Krack 2026-04-28 10:03:02 +02:00 committed by GitHub
parent cacd179657
commit fcf49867ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 142 additions and 0 deletions

View file

@ -108,6 +108,13 @@ timeout: 170
host: GCP
report_url: https://storage.googleapis.com/cp2k-ci/dashboard_spack-openmpi-psmp_report.txt
[spack-openmpi-pdbg]
sortkey: 449
name: Spack (OpenMPI, pdbg)
timeout: 170
host: GCP
report_url: https://storage.googleapis.com/cp2k-ci/dashboard_spack-openmpi-pdbg_report.txt
# ==============================================================================
[gcc15]

View file

@ -0,0 +1,91 @@
#
# This file was created by generate_dockerfiles.py.
# Usage: ./spack_cache_start.sh; podman build --network=host --shm-size=1g -t spack_openmpi-pdbg -f ./Dockerfile.test_spack_openmpi-pdbg ../../
#
ARG BASE_IMAGE="ubuntu:24.04"
###### Stage 1: Build CP2K dependencies ######
FROM "${BASE_IMAGE}" AS build_deps
RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
bzip2 \
ca-certificates \
cmake \
g++ g++-13 gcc gcc-13 gfortran gfortran-13 \
git \
gnupg \
libssh-dev \
libssl-dev \
libtool \
libtool-bin \
lsb-release \
make \
patch \
pkgconf \
python3 \
python3-dev \
python3-pip \
python3-venv \
unzip \
wget \
xxd \
xz-utils \
zstd \
&& rm -rf /var/lib/apt/lists/*
ARG IMAGE_TAG
ENV IMAGE_TAG=${IMAGE_TAG:-spack_openmpi-pdbg}
ARG SPACK_CACHE="s3://spack-cache --s3-endpoint-url=http://localhost:9000"
# Copy CP2K repository into container
WORKDIR /opt
COPY . cp2k/
# Build CP2K dependencies
WORKDIR /opt/cp2k
RUN ./make_cp2k.sh -bd_only -cv pdbg -gpu none -gv 13 -mpi openmpi -ue -ef openpmd
###### Stage 2: Build CP2K ######
FROM build_deps AS build_cp2k
RUN ./make_cp2k.sh -cv pdbg -gv 13 -gpu none -mpi openmpi -ef openpmd
###### Stage 3: Install CP2K ######
FROM "${BASE_IMAGE}" AS install_cp2k
RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
g++ g++-13 gcc gcc-13 gfortran gfortran-13 \
python3 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /opt/cp2k
# Install CP2K dependencies built with spack
COPY --from=build_cp2k /opt/cp2k/spack/spack/opt/spack ./spack/spack/opt/spack
# Install CP2K
COPY --from=build_cp2k /opt/cp2k/install ./install
# Install CP2K regression tests
COPY --from=build_cp2k /opt/cp2k/tests ./tests
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
# Run CP2K regression test
RUN /opt/cp2k/install/bin/launch /opt/cp2k/install/bin/run_tests
# Create entrypoint and finalise container build
WORKDIR /mnt
ENTRYPOINT ["/opt/cp2k/install/bin/launch"]
CMD ["cp2k", "--help", "--version"]

View file

@ -129,6 +129,14 @@ nodepools: pool-main
build_path: /
dockerfile: /tools/docker/Dockerfile.test_spack_openmpi-psmp
[spack-openmpi-pdbg]
display_name: Spack OpenMPI pdbg
tags: daily
cpu: 32
nodepools: pool-main
build_path: /
dockerfile: /tools/docker/Dockerfile.test_spack_openmpi-pdbg
[conventions]
display_name: Conventions
tags: daily

View file

@ -171,6 +171,17 @@ def main() -> None:
)
)
with OutputFile(f"Dockerfile.test_spack_openmpi-pdbg", args.check) as f:
f.write(
install_cp2k_spack(
version="pdbg",
mpi_mode="openmpi",
feature_flags="-ef openpmd",
testopts="",
image_tag=f.image_tag,
)
)
with OutputFile(f"Dockerfile.test_spack_openmpi-psmp", args.check) as f:
f.write(
install_cp2k_spack(

View file

@ -1,4 +1,5 @@
# Leak suppressions
# MPICH
leak:MPIR_Find_local
leak:MPIR_Find_external
leak:MPIR_Csel_prune
@ -6,6 +7,7 @@ leak:MPIDIU_avt_init
leak:MPIR_Group_create
leak:MPIDIU_alloc_lut
leak:MPI_File_open
# xrootd
leak:getMyFQN
# PEXSI
leak:BcTree_Create
@ -13,3 +15,26 @@ leak:MPIR_Type_contiguous_impl
leak:MPIR_Typerep_init
leak:symbfact_dist
leak:yaksa_type_create_contig
# OpenMPI
leak:avx_component_op_query
leak:check_components.constprop
leak:event_process_active_single_queue
leak:libnbc_comm_query
leak:mca_coll_base_comm_select
leak:mca_coll_basic_comm_query
leak:mca_pml_ob1_add_comm
leak:mca_pml_ob1_comm_init_size
leak:mca_pml_ob1_peer_create
leak:ompi_coll_tuned_comm_query
leak:ompi_comm_init_mpi3
leak:ompi_comm_set_nb
leak:ompi_group_allocate
leak:ompi_group_allocate_plist_w_procs
leak:ompi_mpi_instance_init_common
leak:opal_cstring_create_l
leak:opal_hash_table_init2
leak:opal_hash_table_set_value_ptr
leak:opal_infosubscribe_subscribe
leak:opal_vasprintf
leak:pmix_hash_fetch
leak:PMIx_Value_create