Skip to content

Issue with static linking of mpi

by default, I see the following links on the complied code.

libopenblas.so.0 => /home/vigeesh/conda/envs/gris_env/lib/libopenblas.so.0 (0x00007fbbe7119000)
libmpi.so.12 => /home/vigeesh/conda/envs/gris_env/lib/libmpi.so.12 (0x00007fbbe65ad000)
libmpifort.so.12 => /home/vigeesh/conda/envs/gris_env/lib/libmpifort.so.12 (0x00007fbbe9240000)
libgfortran.so.5 => /home/vigeesh/conda/envs/gris_env/lib/libgfortran.so.5 (0x00007fbbe640d000)

but if I have mpi loaded, even before I compile.

module load mpi/openmpi-x86_64

then, mpi seems to not use the conda path.

libopenblas.so.0 => /home/vigeesh/conda/envs/gris_env/lib/libopenblas.so.0 (0x00007effb110c000)
libmpi.so.12 => /usr/lib64/openmpi/lib/libmpi.so.12 (0x00007effb0e28000)
libmpifort.so.12 => /home/vigeesh/conda/envs/gris_env/lib/libmpifort.so.12 (0x00007effb3233000)
libgfortran.so.5 => /home/vigeesh/conda/envs/gris_env/lib/libgfortran.so.5 (0x00007effb0c88000)

I guess, this a problem with mpif90 provided by mpi4py, although it seems to use proper rpath

the default, shows,

$ /usr/lib64/openmpi/bin/mpif90 -showme
gfortran -I/usr/include/openmpi-x86_64 -pthread -m64 -I/usr/lib64/openmpi/lib -Wl,-rpath -Wl,/usr/lib64/openmpi/lib -Wl,--enable-new-dtags -L/usr/lib64/openmpi/lib -lmpi_usempi -lmpi_mpifh -lmpi

the conda one, shows,

$ /home/vigeesh/conda/envs/gris_env/bin/mpif90 -show
x86_64-conda-linux-gnu-gfortran -I/home/vigeesh/conda/envs/gris_env/include -L/home/vigeesh/conda/envs/gris_env/lib -Wl,-rpath,/home/vigeesh/conda/envs/gris_env/lib -I/home/vigeesh/conda/envs/gris_env/include -I/home/vigeesh/conda/envs/gris_env/include -L/home/vigeesh/conda/envs/gris_env/lib -lmpifort -Wl,-rpath -Wl,/home/vigeesh/conda/envs/gris_env/lib -Wl,--enable-new-dtags -lmpi