Ubuntu: Trouble linking to openmpi libraries Ubuntu 14.04



Question:

I have an executable that runs on OpenSuse 13.2. It links to shared libraries. Some of the libraries come with the executable, and others are detected on the system. I am trying to see if I can run a version that was compiled on OpenSuse 13.2 on Ubuntu 14.04. I've been installing the missing libraries ( like gfortran, libblas, liblapack) that I see when I use 'ldd' on the exectuable. It requires some libraries from the openmpi package. I used: sudo apt-get install openmpi-bin libopenmpi-dev

The executable can't seem to locate 2 libraries however:

libmpi_usempi.so.1

libmpi_mpifh.so.2

On OpenSuse, if I use 'ldd' on those libraries they contain: libmpi_mpifh.so.2:

linux-vdso.so.1 (0x00007fff433d9000)  libmpi.so.1 => /usr/lib64/mpi/gcc/openmpi/lib64/libmpi.so.1 (0x00007f7b4ccf3000)  libopen-pal.so.5 => /usr/lib64/mpi/gcc/openmpi/lib64/libopen-pal.so.5 (0x00007f7b4ca32000)  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7b4c7ea000)  libc.so.6 => /lib64/libc.so.6 (0x00007f7b4c442000)  libopen-rte.so.5 => /usr/lib64/mpi/gcc/openmpi/lib64/libopen-rte.so.5 (0x00007f7b4c1d2000)  libdl.so.2 => /lib64/libdl.so.2 (0x00007f7b4bfce000)  librt.so.1 => /lib64/librt.so.1 (0x00007f7b4bdc6000)  libutil.so.1 => /lib64/libutil.so.1 (0x00007f7b4bbc2000)  /lib64/ld-linux-x86-64.so.2 (0x00007f7b4d212000)  

libmpi_usempi.so.1:

linux-vdso.so.1 (0x00007fff9adfc000)  libmpi_mpifh.so.2 => /usr/lib64/mpi/gcc/openmpi/lib64/libmpi_mpifh.so.2 (0x00007f13809a3000)  libmpi.so.1 => /usr/lib64/mpi/gcc/openmpi/lib64/libmpi.so.1 (0x00007f13806d2000)  libopen-pal.so.5 => /usr/lib64/mpi/gcc/openmpi/lib64/libopen-pal.so.5 (0x00007f1380412000)  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f13801ca000)  libc.so.6 => /lib64/libc.so.6 (0x00007f137fe21000)  libopen-rte.so.5 => /usr/lib64/mpi/gcc/openmpi/lib64/libopen-rte.so.5 (0x00007f137fbb2000)  libdl.so.2 => /lib64/libdl.so.2 (0x00007f137f9ae000)  librt.so.1 => /lib64/librt.so.1 (0x00007f137f7a5000)  libutil.so.1 => /lib64/libutil.so.1 (0x00007f137f5a2000)  /lib64/ld-linux-x86-64.so.2 (0x00007f1380e8c000)  

I'm new to the concept of moving software between systems and linking to available shared libraries. If the executable can not locate those two libraries after installing the openmpi package on Ubuntu 14.04, should I conclude that this program can not be ported to Ubuntu from OpenSuse?


Solution:1

You cannot just copy an executable or binary from one distribution to another. If you are lucky it will work, bust mostly will fail.
If you have the source code, you could recompile the software on Ubuntu which should make it work.

There are also some effort in building application containers, that will run on any distribution. I think for MPI related stuff Singularity might be the best choice at the time of this writing. But you will need to build the application container on a Suse 13.2 system in your case.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »