Probleme beim Verknüpfen mit OpenMPI-Bibliotheken Ubuntu 14.04

Probleme beim Verknüpfen mit OpenMPI-Bibliotheken Ubuntu 14.04

Ich habe eine ausführbare Datei, die unter OpenSuse 13.2 läuft. Sie ist mit gemeinsam genutzten Bibliotheken verknüpft. Einige der Bibliotheken sind in der ausführbaren Datei enthalten, andere werden auf dem System erkannt. Ich versuche herauszufinden, ob ich eine Version, die unter OpenSuse 13.2 kompiliert wurde, unter Ubuntu 14.04 ausführen kann. Ich habe die fehlenden Bibliotheken (wie gfortran, libblas, liblapack) installiert, die ich sehe, wenn ich „ldd“ auf der ausführbaren Datei verwende. Es sind einige Bibliotheken aus dem OpenMPI-Paket erforderlich. Ich habe Folgendes verwendet: sudo apt-get install openmpi-bin libopenmpi-dev

Die ausführbare Datei kann jedoch zwei Bibliotheken nicht finden:

libmpi_usempi.so.1

libmpi_mpifh.so.2

Wenn ich unter OpenSuse „ldd“ für diese Bibliotheken verwende, enthalten sie: 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)

Das Verschieben von Software zwischen Systemen und das Verknüpfen mit verfügbaren gemeinsam genutzten Bibliotheken ist für mich neu. Wenn die ausführbare Datei diese beiden Bibliotheken nach der Installation des OpenMPI-Pakets auf Ubuntu 14.04 nicht finden kann, muss ich dann davon ausgehen, dass dieses Programm nicht von OpenSuse auf Ubuntu portiert werden kann?

Antwort1

Sie können eine ausführbare Datei oder Binärdatei nicht einfach von einer Distribution in eine andere kopieren. Wenn Sie Glück haben, funktioniert es, aber meistens schlägt es fehl.
Wenn Sie den Quellcode haben, können Sie die Software unter Ubuntu neu kompilieren, damit sie funktioniert.

Es gibt auch einige Bemühungen, Anwendungscontainer zu erstellen, die auf jeder Distribution laufen. Ich denke, für MPI-bezogene SachenSingularitätkönnte zum Zeitpunkt des Schreibens dieses Artikels die beste Wahl sein. In Ihrem Fall müssen Sie den Anwendungscontainer jedoch auf einem Suse 13.2-System erstellen.

verwandte Informationen