From 7cc9bee0fe7963812c2eb4e30113c4c1f6c7cc1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Sch=C3=BCtt?= Date: Tue, 10 May 2022 22:48:18 +0200 Subject: [PATCH] Toolchain: Link MPI dynamically --- tools/docker/Dockerfile.build_hip_rocm_Mi100 | 3 ++- tools/docker/Dockerfile.build_hip_rocm_Mi50 | 3 ++- tools/docker/Dockerfile.prod_cuda_A100 | 3 ++- tools/docker/Dockerfile.prod_cuda_P100 | 3 ++- tools/docker/Dockerfile.prod_cuda_V100 | 3 ++- tools/docker/Dockerfile.prod_generic_pdbg | 3 ++- tools/docker/Dockerfile.prod_generic_psmp | 3 ++- tools/docker/Dockerfile.prod_pdbg | 3 ++- tools/docker/Dockerfile.prod_psmp | 3 ++- tools/docker/Dockerfile.test_conventions | 3 ++- tools/docker/Dockerfile.test_coverage-pdbg | 3 ++- tools/docker/Dockerfile.test_cuda_A100 | 3 ++- tools/docker/Dockerfile.test_cuda_P100 | 3 ++- tools/docker/Dockerfile.test_cuda_V100 | 3 ++- tools/docker/Dockerfile.test_generic_pdbg | 3 ++- tools/docker/Dockerfile.test_generic_psmp | 3 ++- tools/docker/Dockerfile.test_hip_cuda_A100 | 3 ++- tools/docker/Dockerfile.test_hip_cuda_P100 | 3 ++- tools/docker/Dockerfile.test_hip_cuda_V100 | 3 ++- tools/docker/Dockerfile.test_hip_rocm_Mi100 | 3 ++- tools/docker/Dockerfile.test_hip_rocm_Mi50 | 3 ++- tools/docker/Dockerfile.test_intel-psmp | 3 ++- tools/docker/Dockerfile.test_manual | 3 ++- tools/docker/Dockerfile.test_openmpi-psmp | 3 ++- tools/docker/Dockerfile.test_pdbg | 3 ++- tools/docker/Dockerfile.test_performance | 3 ++- tools/docker/Dockerfile.test_performance_cuda_A100 | 3 ++- tools/docker/Dockerfile.test_performance_cuda_P100 | 3 ++- tools/docker/Dockerfile.test_performance_cuda_V100 | 3 ++- tools/docker/Dockerfile.test_psmp | 3 ++- tools/docker/generate_dockerfiles.py | 5 +++++ tools/toolchain/scripts/stage1/install_mpich.sh | 1 - 32 files changed, 65 insertions(+), 31 deletions(-) diff --git a/tools/docker/Dockerfile.build_hip_rocm_Mi100 b/tools/docker/Dockerfile.build_hip_rocm_Mi100 index 543b2b9bda..0c3846a378 100644 --- a/tools/docker/Dockerfile.build_hip_rocm_Mi100 +++ b/tools/docker/Dockerfile.build_hip_rocm_Mi100 @@ -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 diff --git a/tools/docker/Dockerfile.build_hip_rocm_Mi50 b/tools/docker/Dockerfile.build_hip_rocm_Mi50 index 42de7308d6..7e440f5632 100644 --- a/tools/docker/Dockerfile.build_hip_rocm_Mi50 +++ b/tools/docker/Dockerfile.build_hip_rocm_Mi50 @@ -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 diff --git a/tools/docker/Dockerfile.prod_cuda_A100 b/tools/docker/Dockerfile.prod_cuda_A100 index d685bf0097..2767523d8e 100644 --- a/tools/docker/Dockerfile.prod_cuda_A100 +++ b/tools/docker/Dockerfile.prod_cuda_A100 @@ -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 diff --git a/tools/docker/Dockerfile.prod_cuda_P100 b/tools/docker/Dockerfile.prod_cuda_P100 index d65c6ae072..f33ccf044a 100644 --- a/tools/docker/Dockerfile.prod_cuda_P100 +++ b/tools/docker/Dockerfile.prod_cuda_P100 @@ -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 diff --git a/tools/docker/Dockerfile.prod_cuda_V100 b/tools/docker/Dockerfile.prod_cuda_V100 index 9ed374de95..ff3fa8a10d 100644 --- a/tools/docker/Dockerfile.prod_cuda_V100 +++ b/tools/docker/Dockerfile.prod_cuda_V100 @@ -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 diff --git a/tools/docker/Dockerfile.prod_generic_pdbg b/tools/docker/Dockerfile.prod_generic_pdbg index be0d9776e4..becb051cde 100644 --- a/tools/docker/Dockerfile.prod_generic_pdbg +++ b/tools/docker/Dockerfile.prod_generic_pdbg @@ -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 diff --git a/tools/docker/Dockerfile.prod_generic_psmp b/tools/docker/Dockerfile.prod_generic_psmp index 30c145d3e2..e5528db608 100644 --- a/tools/docker/Dockerfile.prod_generic_psmp +++ b/tools/docker/Dockerfile.prod_generic_psmp @@ -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 diff --git a/tools/docker/Dockerfile.prod_pdbg b/tools/docker/Dockerfile.prod_pdbg index 78426d42ca..17c487e415 100644 --- a/tools/docker/Dockerfile.prod_pdbg +++ b/tools/docker/Dockerfile.prod_pdbg @@ -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 diff --git a/tools/docker/Dockerfile.prod_psmp b/tools/docker/Dockerfile.prod_psmp index 10cb499d4e..78519e4e46 100644 --- a/tools/docker/Dockerfile.prod_psmp +++ b/tools/docker/Dockerfile.prod_psmp @@ -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 diff --git a/tools/docker/Dockerfile.test_conventions b/tools/docker/Dockerfile.test_conventions index 6ca26596ce..06b403a1ac 100644 --- a/tools/docker/Dockerfile.test_conventions +++ b/tools/docker/Dockerfile.test_conventions @@ -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 diff --git a/tools/docker/Dockerfile.test_coverage-pdbg b/tools/docker/Dockerfile.test_coverage-pdbg index 15b479b5fc..f20e558445 100644 --- a/tools/docker/Dockerfile.test_coverage-pdbg +++ b/tools/docker/Dockerfile.test_coverage-pdbg @@ -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 diff --git a/tools/docker/Dockerfile.test_cuda_A100 b/tools/docker/Dockerfile.test_cuda_A100 index e08e8d94b6..1dac284df0 100644 --- a/tools/docker/Dockerfile.test_cuda_A100 +++ b/tools/docker/Dockerfile.test_cuda_A100 @@ -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 diff --git a/tools/docker/Dockerfile.test_cuda_P100 b/tools/docker/Dockerfile.test_cuda_P100 index 33920a3216..de62d110da 100644 --- a/tools/docker/Dockerfile.test_cuda_P100 +++ b/tools/docker/Dockerfile.test_cuda_P100 @@ -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 diff --git a/tools/docker/Dockerfile.test_cuda_V100 b/tools/docker/Dockerfile.test_cuda_V100 index 21c3de294e..b0294d6090 100644 --- a/tools/docker/Dockerfile.test_cuda_V100 +++ b/tools/docker/Dockerfile.test_cuda_V100 @@ -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 diff --git a/tools/docker/Dockerfile.test_generic_pdbg b/tools/docker/Dockerfile.test_generic_pdbg index 0e96e03c4e..2f4d366950 100644 --- a/tools/docker/Dockerfile.test_generic_pdbg +++ b/tools/docker/Dockerfile.test_generic_pdbg @@ -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 diff --git a/tools/docker/Dockerfile.test_generic_psmp b/tools/docker/Dockerfile.test_generic_psmp index 455af047f8..4c8cb512e5 100644 --- a/tools/docker/Dockerfile.test_generic_psmp +++ b/tools/docker/Dockerfile.test_generic_psmp @@ -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 diff --git a/tools/docker/Dockerfile.test_hip_cuda_A100 b/tools/docker/Dockerfile.test_hip_cuda_A100 index 6e1c86efc9..709aa8f586 100644 --- a/tools/docker/Dockerfile.test_hip_cuda_A100 +++ b/tools/docker/Dockerfile.test_hip_cuda_A100 @@ -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 diff --git a/tools/docker/Dockerfile.test_hip_cuda_P100 b/tools/docker/Dockerfile.test_hip_cuda_P100 index fab99e645c..fd5a22a11b 100644 --- a/tools/docker/Dockerfile.test_hip_cuda_P100 +++ b/tools/docker/Dockerfile.test_hip_cuda_P100 @@ -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 diff --git a/tools/docker/Dockerfile.test_hip_cuda_V100 b/tools/docker/Dockerfile.test_hip_cuda_V100 index 499cc594a8..0689937554 100644 --- a/tools/docker/Dockerfile.test_hip_cuda_V100 +++ b/tools/docker/Dockerfile.test_hip_cuda_V100 @@ -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 diff --git a/tools/docker/Dockerfile.test_hip_rocm_Mi100 b/tools/docker/Dockerfile.test_hip_rocm_Mi100 index b11f9ba609..0744aeb87e 100644 --- a/tools/docker/Dockerfile.test_hip_rocm_Mi100 +++ b/tools/docker/Dockerfile.test_hip_rocm_Mi100 @@ -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 diff --git a/tools/docker/Dockerfile.test_hip_rocm_Mi50 b/tools/docker/Dockerfile.test_hip_rocm_Mi50 index 08918d861b..baab24e807 100644 --- a/tools/docker/Dockerfile.test_hip_rocm_Mi50 +++ b/tools/docker/Dockerfile.test_hip_rocm_Mi50 @@ -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 diff --git a/tools/docker/Dockerfile.test_intel-psmp b/tools/docker/Dockerfile.test_intel-psmp index 7a704a4818..59b2e0c126 100644 --- a/tools/docker/Dockerfile.test_intel-psmp +++ b/tools/docker/Dockerfile.test_intel-psmp @@ -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 diff --git a/tools/docker/Dockerfile.test_manual b/tools/docker/Dockerfile.test_manual index 9ca0c380e6..519eba0a36 100644 --- a/tools/docker/Dockerfile.test_manual +++ b/tools/docker/Dockerfile.test_manual @@ -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 diff --git a/tools/docker/Dockerfile.test_openmpi-psmp b/tools/docker/Dockerfile.test_openmpi-psmp index 3c7bf11fb9..67b187be78 100644 --- a/tools/docker/Dockerfile.test_openmpi-psmp +++ b/tools/docker/Dockerfile.test_openmpi-psmp @@ -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 diff --git a/tools/docker/Dockerfile.test_pdbg b/tools/docker/Dockerfile.test_pdbg index 2c00b23d20..1e824d7455 100644 --- a/tools/docker/Dockerfile.test_pdbg +++ b/tools/docker/Dockerfile.test_pdbg @@ -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 diff --git a/tools/docker/Dockerfile.test_performance b/tools/docker/Dockerfile.test_performance index da87e648cc..a43d140dd9 100644 --- a/tools/docker/Dockerfile.test_performance +++ b/tools/docker/Dockerfile.test_performance @@ -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 diff --git a/tools/docker/Dockerfile.test_performance_cuda_A100 b/tools/docker/Dockerfile.test_performance_cuda_A100 index 1513e15b44..7a59c46696 100644 --- a/tools/docker/Dockerfile.test_performance_cuda_A100 +++ b/tools/docker/Dockerfile.test_performance_cuda_A100 @@ -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 diff --git a/tools/docker/Dockerfile.test_performance_cuda_P100 b/tools/docker/Dockerfile.test_performance_cuda_P100 index d39a38fdd7..6ae81548c0 100644 --- a/tools/docker/Dockerfile.test_performance_cuda_P100 +++ b/tools/docker/Dockerfile.test_performance_cuda_P100 @@ -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 diff --git a/tools/docker/Dockerfile.test_performance_cuda_V100 b/tools/docker/Dockerfile.test_performance_cuda_V100 index aeafd559b5..678d72fe1a 100644 --- a/tools/docker/Dockerfile.test_performance_cuda_V100 +++ b/tools/docker/Dockerfile.test_performance_cuda_V100 @@ -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 diff --git a/tools/docker/Dockerfile.test_psmp b/tools/docker/Dockerfile.test_psmp index 0b8c5ab1f4..fb2073b829 100644 --- a/tools/docker/Dockerfile.test_psmp +++ b/tools/docker/Dockerfile.test_psmp @@ -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 diff --git a/tools/docker/generate_dockerfiles.py b/tools/docker/generate_dockerfiles.py index 3e8882baf5..471165792e 100755 --- a/tools/docker/generate_dockerfiles.py +++ b/tools/docker/generate_dockerfiles.py @@ -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) diff --git a/tools/toolchain/scripts/stage1/install_mpich.sh b/tools/toolchain/scripts/stage1/install_mpich.sh index 0abfb4fc32..f348cfb631 100755 --- a/tools/toolchain/scripts/stage1/install_mpich.sh +++ b/tools/toolchain/scripts/stage1/install_mpich.sh @@ -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