[gmx-users] Re: gromacs 4.6.2 MPI distribution location problems

Mark Abraham mark.j.abraham at gmail.com
Wed Jun 12 14:52:10 CEST 2013


On Wed, Jun 12, 2013 at 12:42 AM, sirishkaushik <kaushik.lakkaraju at gmail.com
> wrote:

> Note that this works fine with 4.5.5.
>
> when I installed using:
>
> ./configure CPPFLAGS="-I/home/kaushik/fftw-new/include"
> LDFLAGS="-L/home/kaushik/fftw-new/lib" --enable-mpi --prefix
> /home/kaushik/gromacs_executable/gromacs-old
>
> ldd mdrun on the 4.5.5 version correctly points to the fftw and the mpi
> locations:
>
>
>         linux-vdso.so.1 =>  (0x00007fff6a302000)
>         libfftw3f.so.3 => /home/kaushik/fftw-new/lib/libfftw3f.so.3
> (0x00007f2e7a6e2000)
>         libmpi.so.1 => /usr/local/lib/libmpi.so.1 (0x00007f2e7a340000)
>         libnsl.so.1 => /lib/libnsl.so.1 (0x00007f2e7a11b000)
>         libm.so.6 => /lib/libm.so.6 (0x00007f2e79e99000)
>         libdl.so.2 => /lib/libdl.so.2 (0x00007f2e79c95000)
>         libnuma.so.1 => /usr/lib/libnuma.so.1 (0x00007f2e79a8c000)
>         librt.so.1 => /lib/librt.so.1 (0x00007f2e79884000)
>         libutil.so.1 => /lib/libutil.so.1 (0x00007f2e79681000)
>         libpthread.so.0 => /lib/libpthread.so.0 (0x00007f2e79464000)
>         libc.so.6 => /lib/libc.so.6 (0x00007f2e79102000)
>         libmpi.so.0 => /usr/lib/libmpi.so.0 (0x00007f2e78e52000)
>         /lib64/ld-linux-x86-64.so.2 (0x00007f2e7a9f4000)
>         libopen-rte.so.0 => /usr/lib/libopen-rte.so.0 (0x00007f2e78c05000)
>         libopen-pal.so.0 => /usr/lib/libopen-pal.so.0 (0x00007f2e789b0000)
>
>
> However, with 4.6.2, when I install using:
>
> cmake -DCMAKE_INSTALL_PREFIX=/home/kaushik/gromacs_executable/gromacs-mpi
> -DGMX_THREADS=DGMX_X11=OFF -DGMX_MPI=ON
> -DCMAKE_PREFIX_PATH=/home/kaushik/fftw-new -DGMX_DEFAULT_SUFFIX=OFF
> -DMPI_INCLUDE_PATH=/usr/local/include -DMPI_COMPILER=/usr/local/bin/mpicxx
>

cmake -DCMAKE_C_COMPILER=/usr/local/bin/mpicc should Just Work.

its now pointing to the wrong MPI libraries causing the crash with the
> mpirun:
>
> ldd mdrun:
>         linux-vdso.so.1 =>  (0x00007fffba9ff000)
>         libfftw3f.so.3 => /home/kaushik/fftw-new/lib/libfftw3f.so.3
> (0x00007f32c6785000)
>         libmpi_cxx.so.0 => /usr/lib/libmpi_cxx.so.0 (0x00007f32c655e000)
>         libmpi.so.0 => /usr/lib/libmpi.so.0 (0x00007f32c62ae000)
>         libdl.so.2 => /lib/libdl.so.2 (0x00007f32c60aa000)
>         libm.so.6 => /lib/libm.so.6 (0x00007f32c5e27000)
>         libnuma.so.1 => /usr/lib/libnuma.so.1 (0x00007f32c5c1f000)
>         librt.so.1 => /lib/librt.so.1 (0x00007f32c5a17000)
>         libnsl.so.1 => /lib/libnsl.so.1 (0x00007f32c57fe000)
>         libutil.so.1 => /lib/libutil.so.1 (0x00007f32c55fb000)
>         libpthread.so.0 => /lib/libpthread.so.0 (0x00007f32c53df000)
>         libgomp.so.1 => /usr/local/lib64/libgomp.so.1 (0x00007f32c51d0000)
>         libc.so.6 => /lib/libc.so.6 (0x00007f32c4e6e000)
>         libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6
> (0x00007f32c4b67000)
>         libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1
> (0x00007f32c4951000)
>         libopen-rte.so.0 => /usr/lib/libopen-rte.so.0 (0x00007f32c4705000)
>         /lib64/ld-linux-x86-64.so.2 (0x00007f32c6a97000)
>         libopen-pal.so.0 => /usr/lib/libopen-pal.so.0 (0x00007f32c44af000)
>
>
> Is this a potential bug, as in the gromacs compilation is picking up the
> /usr/lib/ and /usr/include (old MPI locations) despite manually specifying
> it using -DMPI_INCLUDE, etc?
>

Perhaps, but it is not yet clear where the problem lies. In cmake, we try
to compile an MPI test program with the compiler you've made available, and
just use that compiler if it works. This combines nicely with modern MPI
wrapper compilers, hence the above suggestion. Otherwise, in cmake we try
to do some detection, and that presumably leads to your symptoms. It might
be possible to work around that by setting CMAKE_PREFIX_PATH=/usr/local, so
that the detection finds the version you want.

Mark



More information about the gromacs.org_gmx-users mailing list