2017-03-29 17 views
1

Ich habe eine neue Ubuntu-16.04.2-Desktop-AMD64-Maschine auf VM VirtualBox erstellt und möchte die R-Umgebung mit Rmpi ​​verwenden können.Installieren von Rmpi ​​unter Ubuntu 16.04 VirtualBox

Beide der folgenden Ansätze gibt einen ähnlichen Fehler.

aktualisiert vereinfacht Präbuildereignis binären Ansatz:

Wenn Ubuntu installiert hatte ich ein Terminal geöffnet und ausgeführt, um die folgenden Befehle:

~$ sudo apt-get update 
~$ sudo apt-get install openmpi-bin 
~$ sudo apt-get install r-base 
~$ sudo apt-get install r-cran-rmpi 
~$ R 

Dadurch wird die R-Terminal geöffnet und ich die Follow-Funktion aufrufen die ergab einen Fehler:

> library(Rmpi) 
libmpi.so: cannot open shared object file: No such file or directory 
Error : .onLoad failed in loadNamespace() for 'Rmpi', details: 
call: fun(libname, pkgname) 
error: Cannot start MPI_Init(). Exit 
Error: package or namespace load failed for ‘Rmpi’ 

Alternative Ansätze, die ich inc versucht haben, Verwenden Sie eine lokale OpenMPI-Installation und verwenden Sie die R-Funktion install.packages, um das Rmpi-Paket zu installieren (siehe unten). Dies alles führte zu demselben Fehler.

Ich habe auch versucht mit MPICH durch Substitution ~$ sudo apt-get install mpich als zweiter Befehl in der oben genannten Prozedur (einschließlich der Verwendung der R-Funktion für die Installation des Pakets), was zu einem noch lästigen Laufzeitfehler führt.

Weiß jemand, was ich falsch gemacht habe oder was ich tun kann, um diesen Installationsfehler zu beheben?

Oder kann jemand erfolgreich eine VirtualBox-Maschine mit Rmpi ​​mit einer Linux-Distribution oder einem Image mit vorinstallierten Komponenten installieren?

Ursprüngliche lokale Installation Ansatz:

Ich habe die Anweisungen auf this blog gefolgt OpenMPI Version 2.1.0 kompilieren und zu installieren, um es herunterzuladen. Allerdings, wenn ich versuche, das Paket in R zu installieren mit:

> install.packages("Rmpi", configure.args = 
    c("--with-Rmpi-include=/home/jormunr/openmpi/include", 
    "--with-Rmpi-libpath=/home/jormunr/openmpi/lib", 
    "--with-Rmpi-type=OPENMPI", 
    "--with-mpi=/home/jormunr/openmpi/")) 

es gibt den folgenden Fehlern

Error: .onLoad failed in loadNamespace() for 'Rmpi', details: 
    call: dyn.load(file, DLLpath = DLLpath, ...) 
    error: unable to load shared object '/home/jormunr/R/x86_64-pc-linux-gnu-library/3.2/Rmpi/libs/Rmpi.so': 
libmpi.so.20: cannot open shared object file: No such file or directory 
Error: loading failed 
Execution halted 
ERROR: loading failed 

ich sehen kann, dass die ‚libmpi.so.20‘ Datei im/home/jormunr/openmpi/lib, die ich als einen der Parameter für die Installation angegeben habe.

+0

Do 'sudo apt-get installiere r-cran-rmpi, da wir Rmpi ​​als vorgefertigte Binärdatei haben. Wenn Sie eine lokale OpenMPI-Installation verwenden müssen, überprüfen Sie den autoconf-Code. –

+0

Exportieren Sie LD_LIBRARY_PATH =/home/jormunr/openmpi/lib: $ LD_LIBRARYP_PATH', bevor Sie R starten. Sie können dies auch in die Startdatei Ihrer Shell einfügen. Es ermöglicht dem Laufzeit-Link-Editor, die MPI-Bibliothek zu finden. –

+0

@DirkEddelbuettel - danke für deinen Kommentar. Ich bin sehr glücklich, die Prebuild-Binärdatei zu verwenden. Ich habe versucht, das 'sudo apt-get installieren r-cran-rmpi' zu verwenden, um die Binärdatei zu bekommen, aber als ich in R kam und es mit 'library (Rmpi)' geladen habe, bekam ich den gleichen Fehler: libmpi.so: kann nicht open shared object file: Keine solche Datei oder Verzeichnis Fehler: .onLoad fehlgeschlagen in loadNamespace() für 'Rmpi', Details: Aufruf: fun (libname, pkgname) Fehler: Kann MPI_Init() nicht starten. Exit Fehler: Paket oder Namespace laden für 'Rmpi' –

Antwort

0

[Haftungsausschluss: Ich bin kein Linux-Experte und habe nur Benutzerkenntnisse. Etwaige Beiträge oder Korrekturen von einem Experten werden sehr geschätzt.]

Pre-Build-Binary-Ansatz

Obwohl verschiedene Weise versucht, die vorkompilierte Binaries installieren ich nicht verwalten diese Option, um zu arbeiten. Dies beinhaltete die Ausführung des Befehls 'sudo apt-get install r-cran-rmpi' im Terminal, um die vorgefertigten r-cran-rmpi-Pakete zu installieren, die automatisch auch das Paket libopenmpi1.10 installieren, das eine gelistete Voraussetzung ist. Es scheint jedoch, dass die Datei "libmpi.so" nicht im libopenmpi1.10-Paket enthalten ist, sondern von der Rmpi-Bibliothek erwartet wird, die einen Fehler in der R-Umgebung verursacht, dass sie diese Datei nicht finden kann.

Lokale Installation Ansatz

Die lokale Installation hat schließlich mit einigen Änderungen folgen. Ich habe ein neues ubuntu-16.04.2-desktop-amd64 VirtualBox-Image mit Standardeinstellungen erstellt, mit Ausnahme von 2048 MB Arbeitsspeicher und 32 GB Festplattenspeicher. Nach der Installation habe ich ein Terminal geöffnet und die Befehle von the Jovinge Lab website mit dem vorletzten Befehl ausgeführt, der den Pfad des Laufzeit-Linkeditors ändert und die Funktion install.package() von R aktiviert, um die Datei 'libmpi.so' zu finden. (Veränderte auch die Version 1.10.6, da dies die neueste Version Veröffentlichung von Version 1 - siehe unten für die Version 2)

~$ cd /home/jormunr 
~$ wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.2.tar.gz 
~$ tar -zxvf openmpi-1.10.6.tar.gz 
~$ cd openmpi-1.10.2 
~$ ./configure --prefix=/home/jormunr 
~$ make 
~$ make install 
~$ sudo apt-get install r-base 
~$ export LD_LIBRARY_PATH=/home/jormunr/lib:$LD_LIBRARY_PATH 
~$ R 

Dies öffnet ein R-Terminal und ich aufgerufen, um die Funktion:

> install.packages("Rmpi", configure.args = 
+ c("--with-Rmpi-include=/home/jormunr/include/", 
+ "--with-Rmpi-libpath=/home/jormunr/lib/", 
+ "--with-Rmpi-type=OPENMPI", 
+ "--with-mpi=/home/jormunr/")) 

Dies nun fehlerfrei ausgeführt und ich kann es mit den folgenden R-Anweisungen testen:

> library("Rmpi") 
> mpi.spawn.Rslaves() 
master (rank 0, comm. 1) of size 2 is running on: Valhalla 
slave1 (rank 1, comm. 1) of size 2 is running on: Valhalla 
> mpi.close.Rslaves() 
[1] 1 
> mpi.quit() 

Als ich diesen Vorgang mit der OpenMPI Version versuchte 2.1.0 die erfolgreich abgeschlossene Installation aber das abo Der Test hatte Probleme; Die Funktion mpi.spawn.Rslaves() wurde beendet, aber mpi.close.Rslaves() wurde nicht abgeschlossen - sie kehrte nie zurück und das Terminal blieb hängen.

Verwandte Themen