Проблема с подключением к библиотекам openmpi Ubuntu 14.04

Проблема с подключением к библиотекам openmpi Ubuntu 14.04

У меня есть исполняемый файл, который работает на OpenSuse 13.2. Он ссылается на общие библиотеки. Некоторые библиотеки поставляются с исполняемым файлом, а другие обнаруживаются в системе. Я пытаюсь проверить, смогу ли я запустить версию, скомпилированную на OpenSuse 13.2, на Ubuntu 14.04. Я устанавливал недостающие библиотеки (например, gfortran, libblas, liblapack), которые я вижу, когда использую 'ldd' на исполняемом файле. Для этого требуются некоторые библиотеки из пакета openmpi. Я использовал: sudo apt-get install openmpi-bin libopenmpi-dev

Однако исполняемый файл, похоже, не может найти 2 библиотеки:

libmpi_usempi.so.1

libmpi_mpifh.so.2

В OpenSuse, если я использую «ldd» для тех библиотек, которые они содержат: 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)

Я новичок в концепции перемещения программного обеспечения между системами и привязки к доступным общим библиотекам. Если исполняемый файл не может найти эти две библиотеки после установки пакета openmpi в Ubuntu 14.04, следует ли мне сделать вывод, что эта программа не может быть перенесена в Ubuntu из OpenSuse?

решение1

Вы не можете просто скопировать исполняемый или двоичный файл из одного дистрибутива в другой. Если вам повезет, это сработает, в большинстве случаев это не сработает.
Если у вас есть исходный код, вы можете перекомпилировать программное обеспечение на Ubuntu, что должно заставить его работать.

Также есть некоторые усилия по созданию контейнеров приложений, которые будут работать на любом дистрибутиве. Я думаю, для вещей, связанных с MPIСингулярностьможет быть лучшим выбором на момент написания этой статьи. Но в вашем случае вам нужно будет построить контейнер приложения на системе Suse 13.2.

Связанный контент