Skip to content

Commit e05c98f

Browse files
integrated in-person review comments : removed local install of mpich with shared mem support, include git in the temporary velocdl stage, remove use of pip to download tools needed to install veloc, install veloc in /opt/veloc
1 parent 7d92df9 commit e05c98f

3 files changed

Lines changed: 49 additions & 95 deletions

File tree

.github/workflows/debuntu_docker_images.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ jobs:
1414
base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable']
1515
mpi: ['openmpi', 'mpich']
1616
variant: ['mini', 'all', 'pdi']
17+
# exclude debian/unstable + mpich as debian/unstable mpich package
18+
# does not allow building with shared mem support needed by VeloC
19+
exclude:
20+
- { base: 'debian/unstable', mpi: mpich, variant : all}
21+
- { base: 'debian/unstable', mpi: mpich, variant : mini}
1722
runs-on: ubuntu-latest
1823
steps:
1924
- name: Compute tags, distro & version

debuntu/all/Dockerfile

Lines changed: 24 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -77,68 +77,43 @@ RUN set -ex \
7777

7878
FROM main AS velocdl
7979

80-
RUN if pip3 install --help | grep -q -- --break-system-packages; then \
81-
pip3 install --break-system-packages beautifulsoup4 wget; \
82-
else \
83-
pip3 install beautifulsoup4 wget; \
84-
fi
85-
86-
WORKDIR /usr/veloc-src
87-
RUN git clone https://github.com/ECP-VeloC/VELOC.git . \
88-
&& mkdir -p /usr/local \
89-
&& python3 auto-install.py /usr/local
90-
91-
# stage : mpich download enabling options for shared memory support
92-
# shared mem support is needed for VeloC
93-
FROM main AS mpichdl
94-
ARG MPI
95-
ARG DISTRO
96-
ARG DISTRO_VERSION
97-
80+
# install tools needed by VeloC install script
9881
RUN set -ex \
99-
&& if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \
100-
apt-get update -y \
101-
&& apt-get install -y --no-install-recommends dpkg-dev \
102-
&& printf "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main\n" \
103-
> /etc/apt/sources.list.d/debian-src.sources \
104-
&& apt-get update -y \
105-
&& apt-get source mpich \
106-
&& cd mpich-* \
107-
&& ./configure \
108-
--prefix=/usr/local \
109-
--with-ch4-shmmods=posix \
110-
--with-device=ch4:ucx \
111-
--enable-shared \
112-
--disable-static \
113-
FC=gfortran \
114-
&& make -j$(nproc) \
115-
&& make install \
116-
&& ldconfig; \
117-
fi
82+
&& apt-get update \
83+
&& apt-get install -y --no-install-recommends \
84+
git \
85+
python3-wget \
86+
python3-bs4 \
87+
&& rm -rf /var/lib/apt/lists/*
88+
89+
WORKDIR /opt/src
90+
91+
# Clone VeloC repository
92+
RUN git clone -b 'veloc-1.8' --single-branch --depth 1 \
93+
https://github.com/ECP-VeloC/veloc.git veloc
94+
95+
WORKDIR /opt/src/veloc
96+
97+
# Run VeloC install script
98+
RUN mkdir -p /opt/veloc \
99+
&& ./auto-install.py /opt/veloc
100+
118101

119102
# stage : complete image
120103

121104
FROM main AS complete-main
122105
ARG DISTRO
123106
ARG DISTRO_VERSION
124107
ARG MPI
125-
COPY --from=velocdl /usr/local /usr/local_veloc
126-
COPY --from=mpichdl /usr/local /usr/local_mpich
127-
RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \
128-
cp -a /usr/local_mpich/. /usr/local/ \
129-
&& rm -rf /usr/local_mpich; \
130-
else \
131-
rm -rf /usr/local_mpich; \
132-
fi
133-
RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \
134-
&& ldconfig
135-
136-
ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH}
137108

109+
COPY --from=velocdl /opt/veloc /opt/veloc
110+
111+
ENV CMAKE_PREFIX_PATH=/opt/veloc:${CMAKE_PREFIX_PATH}
138112
ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION}
139113
ENV PDI_COMPILER=gcc
140114
ENV PDI_MPI=${MPI}
141115
ENV PDI_LIBS=provided
116+
ENV LD_LIBRARY_PATH="/opt/veloc/lib"
142117
# only required for openmpi but...
143118
ENV OMPI_MCA_rmaps_base_oversubscribe=1
144119
ENV PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe

debuntu/mini/Dockerfile

Lines changed: 20 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -68,67 +68,41 @@ RUN set -ex \
6868

6969
FROM main AS velocdl
7070

71-
RUN if pip3 install --help | grep -q -- --break-system-packages; then \
72-
pip3 install --break-system-packages beautifulsoup4 wget; \
73-
else \
74-
pip3 install beautifulsoup4 wget; \
75-
fi
71+
# install tools needed by VeloC install script
72+
RUN set -ex \
73+
&& apt-get update \
74+
&& apt-get install -y --no-install-recommends \
75+
git \
76+
python3-wget \
77+
python3-bs4 \
78+
&& rm -rf /var/lib/apt/lists/*
7679

77-
WORKDIR /usr/veloc-src
78-
RUN git clone https://github.com/ECP-VeloC/VELOC.git . \
79-
&& mkdir -p /usr/local \
80-
&& python3 auto-install.py /usr/local
80+
WORKDIR /opt/src
8181

82-
# stage : mpich download (with options for shared memory support)
82+
# Clone VeloC repository
83+
RUN git clone -b 'veloc-1.8' --single-branch --depth 1 \
84+
https://github.com/ECP-VeloC/veloc.git veloc
8385

84-
FROM main AS mpichdl
85-
ARG MPI
86-
ARG DISTRO
87-
ARG DISTRO_VERSION
86+
WORKDIR /opt/src/veloc
8887

89-
RUN set -ex \
90-
&& if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \
91-
apt-get update -y \
92-
&& apt-get install -y --no-install-recommends dpkg-dev \
93-
&& printf "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main\n" \
94-
> /etc/apt/sources.list.d/debian-src.sources \
95-
&& apt-get update -y \
96-
&& apt-get source mpich \
97-
&& cd mpich-* \
98-
&& ./configure \
99-
--prefix=/usr/local \
100-
--with-ch4-shmmods=posix \
101-
--with-device=ch4:ucx \
102-
--enable-shared \
103-
--disable-static \
104-
FC=gfortran \
105-
&& make -j$(nproc) \
106-
&& make install \
107-
&& ldconfig; \
108-
fi
88+
# Run VeloC install script
89+
RUN mkdir -p /opt/veloc \
90+
&& ./auto-install.py /opt/veloc
10991

11092
# stage : complete image
11193

11294
FROM main AS complete-main
11395
ARG DISTRO
11496
ARG DISTRO_VERSION
11597
ARG MPI
116-
COPY --from=velocdl /usr/local /usr/local_veloc
117-
COPY --from=mpichdl /usr/local /usr/local_mpich
118-
RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \
119-
cp -a /usr/local_mpich/. /usr/local/ \
120-
&& rm -rf /usr/local_mpich; \
121-
else \
122-
rm -rf /usr/local_mpich; \
123-
fi
124-
RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \
125-
&& ldconfig
126-
127-
ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH}
12898

99+
COPY --from=velocdl /opt/veloc /opt/veloc
100+
101+
ENV CMAKE_PREFIX_PATH=/opt/veloc:${CMAKE_PREFIX_PATH}
129102
ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION}
130103
ENV PDI_COMPILER=gcc
131104
ENV PDI_MPI=${MPI}
105+
ENV LD_LIBRARY_PATH="/opt/veloc/lib"
132106
# only required for openmpi but...
133107
ENV OMPI_MCA_rmaps_base_oversubscribe=1
134108
ENV PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe

0 commit comments

Comments
 (0)