連結到 openmpi 庫 Ubuntu 14.04 時出現問題

連結到 openmpi 庫 Ubuntu 14.04 時出現問題

我有一個在 OpenSuse 13.2 上運行的可執行檔。它連結到共享庫。有些庫附帶可執行文件,而其他庫則在系統上檢測到。我想看看是否可以在 Ubuntu 14.04 上執行在 OpenSuse 13.2 上編譯的版本。我一直在安裝在可執行檔上使用“ldd”時看到的缺少的庫(如 gfortran、libblas、liblapack)。它需要 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)

我對在系統之間移動軟體和連結到可用共享庫的概念很陌生。如果在 Ubuntu 14.04 上安裝 openmpi 軟體包後可執行檔無法找到這兩個庫,我是否應該斷定該程式無法從 OpenSuse 移植到 Ubuntu?

答案1

您不能只是將可執行檔或二進位檔案從一個發行版複製到另一個發行版。如果你幸運的話它會起作用,但大多數都會失敗。
如果您有原始程式碼,您可以在 Ubuntu 上重新編譯軟體,使其可以正常運作。

在建立可在任何發行版上運行的應用程式容器方面也做出了一些努力。我認為 MPI 相關的東西奇點可能是撰寫本文時的最佳選擇。但根據您的情況,您需要在 Suse 13.2 系統上建立應用程式容器。

相關內容