Problemas relacionados a bibliotecas openmpi Ubuntu 14.04

0

Eu tenho um executável que roda no OpenSuse 13.2. Links para bibliotecas compartilhadas. Algumas das bibliotecas vêm com o executável e outras são detectadas no sistema. Eu estou tentando ver se eu posso executar uma versão que foi compilada no OpenSuse 13.2 no Ubuntu 14.04. Eu tenho instalado as bibliotecas que faltam (como gfortran, libblas, liblapack) que vejo quando uso 'ldd' no exectuable. Requer algumas bibliotecas do pacote openmpi. Eu usei: sudo apt-get instalar openmpi-bin libopenmpi-dev

O executável parece não conseguir localizar 2 bibliotecas:

libmpi_usempi.so.1

libmpi_mpifh.so.2

No OpenSuse, se eu usar 'ldd' nessas bibliotecas, elas contêm: 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)

Sou novo no conceito de mover software entre sistemas e vincular a bibliotecas compartilhadas disponíveis. Se o executável não conseguir localizar essas duas bibliotecas depois de instalar o pacote openmpi no Ubuntu 14.04, devo concluir que este programa não pode ser portado para o Ubuntu a partir do OpenSuse?

    
por wandadars 09.06.2017 / 23:34

1 resposta

0

Você não pode simplesmente copiar um executável ou binário de uma distribuição para outra. Se você tiver sorte, vai funcionar, busto na maior parte irá falhar.
Se você tem o código fonte, você pode recompilar o software no Ubuntu, o que deve fazê-lo funcionar.

Há também algum esforço na criação de contêineres de aplicativos, que serão executados em qualquer distribuição. Eu acho que para coisas relacionadas a MPI, a Singularidade pode ser a melhor escolha no momento da redação deste artigo. Mas você precisará construir o container de aplicativos em um sistema Suse 13.2 no seu caso.

    
por Thomas 10.06.2017 / 11:18