Installation error of GMX+CP2K on WSL

GROMACS version: 2023
GROMACS modification: Yes/No

Dear Gromacs community:

I tried to install GROMACS 2023 in combination with CP2K.2023.1 on WSL.I successfully install cp2k.2023.1 and tried to install gromacs, then I got this error at the end:

[100%] Building CXX object src/programs/CMakeFiles/gmx_objlib.dir/gmx.cpp.o
[100%] Building CXX object src/programs/CMakeFiles/gmx_objlib.dir/legacymodules.cpp.o
[100%] Built target gmx_objlib
[100%] Linking CXX executable ../../bin/gmx_d
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/lib/local/psmp/libcp2k.a(message_passing.o): in function `__message_passing_MOD_mp_stop':
/home/fyy/soft/cp2k-2023.1/src/mpiwrap/message_passing.F:1166: undefined reference to `mpi_error_string_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/lib/local/psmp/libcp2k.a(message_passing.o): in function `__message_passing_MOD_mp_iallgatherv_iv_internal.constprop.0':
/home/fyy/soft/cp2k-2023.1/src/mpiwrap/message_passing.fypp:2609: undefined reference to `mpi_iallgatherv_'
......
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/lib/local/psmp/exts/dbcsr/libdbcsr.a(dbcsr_mpiwrap.o): in function `__dbcsr_mpiwrap_MOD_mp_abort':
/home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:730: undefined reference to `mpi_abort_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/lib/local/psmp/exts/dbcsr/libdbcsr.a(dbcsr_mpiwrap.o): in function `__dbcsr_mpiwrap_MOD_mp_world_finalize':
/home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:531: undefined reference to `mpi_barrier_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:526: undefined reference to `mpi_finalize_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/lib/local/psmp/exts/dbcsr/libdbcsr.a(dbcsr_mpiwrap.o): in function `__dbcsr_mpiwrap_MOD_mp_reordering':
/home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:480: undefined reference to `mpi_comm_group_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:504: undefined reference to `mpi_group_incl_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:480: undefined reference to `mpi_comm_create_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:480: undefined reference to `mpi_group_free_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:480: undefined reference to `mpi_group_free_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/lib/local/psmp/exts/dbcsr/libdbcsr.a(dbcsr_mpiwrap.o): in function `__dbcsr_mpiwrap_MOD_mp_world_init':
/home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:460: undefined reference to `mpi_comm_set_errhandler_'
/usr/bin/ld: /home/fyy/soft/cp2k-2023.1/exts/dbcsr/src/mpi/dbcsr_mpiwrap.F:453: undefined reference to `mpi_init_thread_'
collect2: error: ld returned 1 exit status
make[2]: *** [src/programs/CMakeFiles/gmx.dir/build.make:95: bin/gmx_d] Error 1
make[1]: *** [CMakeFiles/Makefile2:5782: src/programs/CMakeFiles/gmx.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

I can’t understand these errors, they look like they are related to mpi and modules. I have installed fftw, plumed, mpich, openmpi and modules useing apt-get before, so I don’t know what’s the problem is. I lowered the version of gmx and cp2k but the problem is still there.

I installed cp2k with:
./install_cp2k_toolchain.sh --with-libxsmm=install --with-elpa=no --with-libxc=install --with-libint=install --with-gsl=no --with-libvdwxc=no --with-spglib=no --with-hdf5=no --with-spfft=no --with-cosma=no --with-libvori=no --with-sirius=no --with-scalapack=install --with-openblas=system --with-fftw=system --with-openmpi=system --with-plumed=system --with-cmake=system

And installed gromacs with:

sudo cmake .. -DCMAKE_INSTALL_PREFIX=/home/fyy/softwares/gmx_qm_gpu -DBUILD_SHARED_LIBS=OFF -DGMXAPI=OFF -DGMX_INSTALL_NBLIB_API=OFF -DGMX_FFT_LIBRARY=fftw3 -DGMX_SIMD=AVX2_256 -DGMX_DOUBLE=ON -DGMX_CP2K=ON -DCP2K_DIR=/home/fyy/soft/cp2k-2023.1/lib/local/psmp -DCP2K_LINKER_FLAGS="-Wl,--enable-new-dtags -pthread -L/usr/lib/x86_64-linux-gnu/openmpi/lib -L'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/fftw-3.3.10/lib' -Wl,-rpath,'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/fftw-3.3.10/lib' -L'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/libint-v2.6.0-cp2k-lmax-5/lib' -L'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/libxc-6.0.0/lib' -Wl,-rpath,'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/libxc-6.0.0/lib' -L'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/libxsmm-1.17/lib' -Wl,-rpath,'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/libxsmm-1.17/lib' -L'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/scalapack-2.2.1/lib' -Wl,-rpath,'/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/scalapack-2.2.1/lib' -L'/usr/local/plumed2.90/lib' -Wl,-rpath,'/usr/local/plumed2.90/lib' -lplumed -ldl -lstdc++ -lz -ldl -lscalapack -lxsmmf -lxsmm -ldl -lpthread -lxcf03 -lxc -lint2 -lfftw3_mpi -lfftw3 -lfftw3_omp -lmpi_cxx -lmpi -lopenblas -lstdc++" -DCMAKE_PREFIX_PATH='/home/fyy/soft/cp2k-2023.1/tools/toolchain/install/fftw-3.3.10/'

Please let me know if you have any suggestions. Thank you very much for your help!

Best

aw10279

Summary

This text will be hidden

Hi,

Seems like you are compiled CP2K with MPI but GROMACS is configured without MPI

This really works! I just added -DGMX_MPI=ON and it finished perfectly! Thank you so much!

@aw10279 can you please tell me the command you used. as i am also facing the same issue
i am using this command:
%%bash

wget ftp://ftp.gromacs.org/gromacs/gromacs-2021.tar.gz

tar xfz gromacs-2021.tar.gz

cd /content/gromacs-2021

mkdir /content/gromacs-2021/build

cd /content/gromacs-2021/build

cmake … -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=CUDA

make -j 2

make install

source /usr/local/gromacs/bin/GMXRC

my command is just like:
sudo cmake … -DCMAKE_INSTALL_PREFIX=/home/fyy/softwares/gmx_cp2k -DBUILD_SHARED_LIBS=OFF -DGMXAPI=OFF -DGMX_INSTALL_NBLIB_API=OFF -DGMX_SIMD=AVX2_256 -DGMX_DOUBLE=ON -DGMX_CP2K=ON -DGMX_MPI=ON

-DGMX_DOUBLE, -DCMAKE_INSTALL_PREFIX and DGMX_SIMD are optional, others must be like this.

i am new to do this, can you please help me to modify my command ?