Problemas para vincular bibliotecas openmpi Ubuntu 14.04

Problemas para vincular bibliotecas openmpi Ubuntu 14.04

Tengo un ejecutable que se ejecuta en OpenSuse 13.2. Se vincula a bibliotecas compartidas. Algunas de las bibliotecas vienen con el ejecutable y otras se detectan en el sistema. Estoy intentando ver si puedo ejecutar una versión compilada en OpenSuse 13.2 en Ubuntu 14.04. He estado instalando las bibliotecas que faltan (como gfortran, libblas, liblapack) que veo cuando uso 'ldd' en el ejecutable. Requiere algunas bibliotecas del paquete openmpi. Usé: sudo apt-get install openmpi-bin libopenmpi-dev

Sin embargo, parece que el ejecutable no puede localizar 2 bibliotecas:

libmpi_usempi.so.1

libmpi_mpifh.so.2

En OpenSuse, si uso 'ldd' en esas bibliotecas, estas contienen: 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)

Soy nuevo en el concepto de mover software entre sistemas y vincularlo a bibliotecas compartidas disponibles. Si el ejecutable no puede ubicar esas dos bibliotecas después de instalar el paquete openmpi en Ubuntu 14.04, ¿debo concluir que este programa no se puede portar a Ubuntu desde OpenSuse?

Respuesta1

No puedes simplemente copiar un ejecutable o binario de una distribución a otra. Si tiene suerte, funcionará, la mayoría de las veces fracasará.
Si tiene el código fuente, puede recompilar el software en Ubuntu, lo que debería hacerlo funcionar.

También se están realizando algunos esfuerzos para crear contenedores de aplicaciones, que se ejecutarán en cualquier distribución. Creo que para cosas relacionadas con MPISingularidadpodría ser la mejor opción en el momento de escribir este artículo. Pero, en su caso, necesitará crear el contenedor de la aplicación en un sistema Suse 13.2.

información relacionada