Problemas para vincular bibliotecas openmpi Ubuntu 14.04

Problemas para vincular bibliotecas openmpi Ubuntu 14.04

Eu tenho um executável que roda no OpenSuse 13.2. Ele se conecta a bibliotecas compartilhadas. Algumas das bibliotecas vêm com o executável e outras são detectadas no sistema. Estou tentando ver se consigo rodar uma versão que foi compilada no OpenSuse 13.2 no Ubuntu 14.04. Estou instalando as bibliotecas ausentes (como gfortran, liblas, liblapack) que vejo quando uso 'ldd' no executável. Requer algumas bibliotecas do pacote openmpi. Eu usei: sudo apt-get install openmpi-bin libopenmpi-dev

No entanto, o executável não consegue 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 movimentação de software entre sistemas e vinculação a bibliotecas compartilhadas disponíveis. Se o executável não conseguir localizar essas duas bibliotecas após 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?

Responder1

Você não pode simplesmente copiar um executável ou binário de uma distribuição para outra. Se você tiver sorte, funcionará, mas a falha geralmente falhará.
Se você tiver o código-fonte, poderá recompilar o software no Ubuntu, o que deverá fazê-lo funcionar.

Há também algum esforço na construção de contêineres de aplicativos, que serão executados em qualquer distribuição. Eu acho que para coisas relacionadas ao MPISingularidadepode ser a melhor escolha no momento em que este livro foi escrito. Mas você precisará construir o contêiner do aplicativo em um sistema Suse 13.2 no seu caso.

informação relacionada