簡體   English   中英

在Ubuntu 16.04 VirtualBox上安裝Rmpi

[英]Installing Rmpi on Ubuntu 16.04 VirtualBox

我在VM VirtualBox上創建了新的ubuntu-16.04.2-desktop-amd64計算機,我希望能夠將R環境與Rmpi一起使用。

以下兩種方法都給出了類似的錯誤。

更新了簡化的預構建二進制方法:

安裝Ubuntu后,我打開了一個終端並執行以下命令:

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

這打開了R終端,我調用了跟隨函數,導致了錯誤:

> 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’

我嘗試過的替代方法包括使用本地OpenMPI安裝和使用R函數install.packages安裝Rmpi軟件包(請參見下文)。 這些都導致了相同的錯誤。

我還嘗試通過將~$ sudo apt-get install mpich替換為上述過程中的第二個命令來使用MPICH(包括使用R函數安裝軟件包),這會導致更加繁重的運行時錯誤。

有人知道我做錯了什么或者我可以解決該安裝錯誤嗎?

或者,是否有人能夠使用任何Linux發行版或具有預安裝組件的映像成功地使用Rmpi安裝VirtualBox計算機?

原始本地安裝方法:

我已按照此博客上的說明下載OpenMPI 2.1.0版,進行編譯和安裝。 但是,當我嘗試通過以下方式在R中安裝軟件包時:

> 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/"))

它給出了以下錯誤

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

我可以看到“ libmpi.so.20”文件位於/ home / jormunr / openmpi / lib中,該文件是我作為安裝參數之一提供的。

[免責聲明:我不是Linux專家,僅具有用戶級技能。 專家的任何貢獻或糾正,將不勝感激。]

預生成二進制方法

盡管嘗試了各種方法來安裝預構建的二進制文件,但我沒有設法使該選項起作用。 這涉及在終端中執行命令“ sudo apt-get install r-cran-rmpi”以安裝r-cran-rmpi預先構建的軟件包,該軟件包還自動安裝列出的先決條件libopenmpi1.10軟件包。 但是,似乎文件'libmpi.so'沒有包含在libopenmpi1.10包中,而是Rmpi庫期望的,這會在R環境中導致找不到該文件的錯誤。

本地安裝方法

進行了一些修改,最終使本地安裝成功。 我使用默認設置創建了一個新的ubuntu-16.04.2-desktop-amd64 VirtualBox映像,除了2048MB的內存和32GB的硬盤空間。 安裝后,我打開了一個終端並執行了Jovinge Lab網站上的命令,其中包括倒數第二個命令,該命令修改了運行時鏈接編輯器的路徑,並使R的install.package()函數可以找到“ libmpi.so”文件。 (還將版本更改為1.10.6,因為這是版本1的最新版本-請參閱下面的版本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

這將打開R終端,並調用了該函數:

> 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/"))

現在可以正確執行該命令,並且可以使用以下R語句對其進行測試:

> 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()

當我使用OpenMPI版本2.1.0嘗試此過程時,安裝成功完成,但是上述測試存在問題; mpi.spawn.Rslaves()函數已完成,但mpi.close.Rslaves()未完成–從未返回,並且終端被掛起。

我遇到了類似的挑戰。 我找到了libopenmpi-dev是秘密的解決方案。

sudo apt-get install openmpi-common openmpi-bin libopenmpi-dev r-base
sudo apt-get install r-cran-rmpi
sudo su
R
install.packages("doMPI", dependencies=TRUE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM