Toolchain: Link MPI dynamically

This commit is contained in:
Ole Schütt 2022-05-10 22:48:18 +02:00 committed by Ole Schütt
parent 895ec07cf5
commit 7cc9bee0fe
32 changed files with 65 additions and 31 deletions

View file

@ -86,7 +86,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_hip.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_hip/cp2k.psmp ] || ldd ./exe/local_hip/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -86,7 +86,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_hip.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_hip/cp2k.psmp ] || ldd ./exe/local_hip/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -87,7 +87,8 @@ RUN /bin/bash -c " \
make -j ARCH=local_cuda VERSION=psmp && \
ln -sf ./cp2k.psmp ./exe/local_cuda/cp2k && \
ln -sf ./cp2k_shell.psmp ./exe/local_cuda/cp2k_shell && \
rm -rf lib obj exe/local_cuda/libcp2k_unittest.psmp"
rm -rf lib obj exe/local_cuda/libcp2k_unittest.psmp && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -87,7 +87,8 @@ RUN /bin/bash -c " \
make -j ARCH=local_cuda VERSION=psmp && \
ln -sf ./cp2k.psmp ./exe/local_cuda/cp2k && \
ln -sf ./cp2k_shell.psmp ./exe/local_cuda/cp2k_shell && \
rm -rf lib obj exe/local_cuda/libcp2k_unittest.psmp"
rm -rf lib obj exe/local_cuda/libcp2k_unittest.psmp && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -87,7 +87,8 @@ RUN /bin/bash -c " \
make -j ARCH=local_cuda VERSION=psmp && \
ln -sf ./cp2k.psmp ./exe/local_cuda/cp2k && \
ln -sf ./cp2k_shell.psmp ./exe/local_cuda/cp2k_shell && \
rm -rf lib obj exe/local_cuda/libcp2k_unittest.psmp"
rm -rf lib obj exe/local_cuda/libcp2k_unittest.psmp && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -77,7 +77,8 @@ RUN /bin/bash -c " \
make -j ARCH=local VERSION=pdbg && \
ln -sf ./cp2k.pdbg ./exe/local/cp2k && \
ln -sf ./cp2k_shell.pdbg ./exe/local/cp2k_shell && \
rm -rf lib obj exe/local/libcp2k_unittest.pdbg"
rm -rf lib obj exe/local/libcp2k_unittest.pdbg && \
( [ ! -f ./exe/local/cp2k.pdbg ] || ldd ./exe/local/cp2k.pdbg | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -77,7 +77,8 @@ RUN /bin/bash -c " \
make -j ARCH=local VERSION=psmp && \
ln -sf ./cp2k.psmp ./exe/local/cp2k && \
ln -sf ./cp2k_shell.psmp ./exe/local/cp2k_shell && \
rm -rf lib obj exe/local/libcp2k_unittest.psmp"
rm -rf lib obj exe/local/libcp2k_unittest.psmp && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -76,7 +76,8 @@ RUN /bin/bash -c " \
make -j ARCH=local VERSION=pdbg && \
ln -sf ./cp2k.pdbg ./exe/local/cp2k && \
ln -sf ./cp2k_shell.pdbg ./exe/local/cp2k_shell && \
rm -rf lib obj exe/local/libcp2k_unittest.pdbg"
rm -rf lib obj exe/local/libcp2k_unittest.pdbg && \
( [ ! -f ./exe/local/cp2k.pdbg ] || ldd ./exe/local/cp2k.pdbg | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -76,7 +76,8 @@ RUN /bin/bash -c " \
make -j ARCH=local VERSION=psmp && \
ln -sf ./cp2k.psmp ./exe/local/cp2k && \
ln -sf ./cp2k_shell.psmp ./exe/local/cp2k_shell && \
rm -rf lib obj exe/local/libcp2k_unittest.psmp"
rm -rf lib obj exe/local/libcp2k_unittest.psmp && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -71,7 +71,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_warn.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_warn VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_warn VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_warn/cp2k.psmp ] || ldd ./exe/local_warn/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -71,7 +71,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_coverage.pdbg ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_coverage VERSION=pdbg &> /dev/null || true )"
( make -j ARCH=local_coverage VERSION=pdbg &> /dev/null || true ) && \
( [ ! -f ./exe/local_coverage/cp2k.pdbg ] || ldd ./exe/local_coverage/cp2k.pdbg | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -82,7 +82,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_cuda.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -82,7 +82,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_cuda.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -82,7 +82,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_cuda.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -72,7 +72,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.pdbg ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=pdbg &> /dev/null || true )"
( make -j ARCH=local VERSION=pdbg &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.pdbg ] || ldd ./exe/local/cp2k.pdbg | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -72,7 +72,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -164,7 +164,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_hip.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_hip/cp2k.psmp ] || ldd ./exe/local_hip/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -164,7 +164,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_hip.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_hip/cp2k.psmp ] || ldd ./exe/local_hip/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -164,7 +164,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_hip.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_hip/cp2k.psmp ] || ldd ./exe/local_hip/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -86,7 +86,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_hip.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_hip/cp2k.psmp ] || ldd ./exe/local_hip/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -86,7 +86,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_hip.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_hip VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_hip/cp2k.psmp ] || ldd ./exe/local_hip/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -85,7 +85,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -73,7 +73,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -71,7 +71,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -71,7 +71,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.pdbg ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=pdbg &> /dev/null || true )"
( make -j ARCH=local VERSION=pdbg &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.pdbg ] || ldd ./exe/local/cp2k.pdbg | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -71,7 +71,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -82,7 +82,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_cuda.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -82,7 +82,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_cuda.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -82,7 +82,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local_cuda.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local_cuda VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local_cuda/cp2k.psmp ] || ldd ./exe/local_cuda/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -71,7 +71,8 @@ RUN /bin/bash -c " \
ln -vs /opt/cp2k-toolchain/install/arch/local.psmp ./arch/ && \
echo 'Compiling cp2k...' && \
source /opt/cp2k-toolchain/install/setup && \
( make -j ARCH=local VERSION=psmp &> /dev/null || true )"
( make -j ARCH=local VERSION=psmp &> /dev/null || true ) && \
( [ ! -f ./exe/local/cp2k.psmp ] || ldd ./exe/local/cp2k.psmp | grep libmpi.so )"
COPY ./data ./data
COPY ./tests ./tests
COPY ./tools/regtesting ./tools/regtesting

View file

@ -337,6 +337,11 @@ def install_cp2k(
else:
run_lines.append(f"( {build_command} &> /dev/null || true )")
# Ensure MPI is dynamically linked, which is needed e.g. for Shifter.
if version.startswith("p"):
binary = f"./exe/{arch}/cp2k.{version}"
run_lines.append(f"( [ ! -f {binary} ] || ldd {binary} | grep libmpi.so )")
input_block = "\n".join(input_lines)
run_block = " && \\\n ".join(run_lines)

View file

@ -59,7 +59,6 @@ case "${with_mpich}" in
FCFLAGS="${FCFLAGS} ${compat_flag}" \
--without-x \
--enable-gl=no \
--disable-shared \
--with-device=ch3 \
> configure.log 2>&1 || tail -n ${LOG_LINES} configure.log
make -j $(get_nprocs) > make.log 2>&1 || tail -n ${LOG_LINES} make.log