【问题标题】:Rmpi on Ubuntu 21.04 Desktop with MPICH Virgin Build DoMPI带有 MPICH Virgin Build DoMPI 的 Ubuntu 21.04 桌面上的 Rmpi
【发布时间】:2021-10-18 22:42:23
【问题描述】:

我在 Z820 Intel Xeon(R) CPU E5-2643 v2 @ 3.50GHz × 24 上构建了 64 位 Ubuntu 21.04 的原始版本。操作系统是使用默认设置安装的。

MPICH 安装:

对于特定系统 mpich 版本 3.4.2 通过以下步骤。

cd /home/rmpitest/Downloads
tar xfz mpich-3.4.2.tar.gz
cd /home/rmpitest/mpich-install
mkdir /tmp/rmpitest/mpich-3.4.2
cd /tmp/rmpitest/mpich-3.4.2
sudo apt-get install build-essential
/home/rmpitest/Downloads/mpich-3.4.2/configure -prefix=/home/rmpitest/mpich-install --with-device=ch4:ofi FFLAGS=-fallow-argument-mismatch --disable-fortran |& tee c.txt # I'm not sure why I had to disable Fortran but I don't think I need it. 
make 2>&1 | tee m.txt 
make install |& tee mi.txt
export PATH=/home/v22da/mpich-install/bin:$PATH
rmpitest@rmpitest-HP-Z820-Workstation:/tmp/rmpitest/mpich-3.4.2$ which mpicc
/home/rmpitest/mpich-install/bin/mpicc
rmpitest@rmpitest-HP-Z820-Workstation:/tmp/rmpitest/mpich-3.4.2$ which mpiexec
/home/rmpitest/mpich-install/bin/mpiexec

R 安装:

sudo apt install r-base
download Rmpi
https://cran.r-project.org/src/contrib/Rmpi_0.6-9.1.tar.gz
sudo R CMD INSTALL Rmpi_0.6-9.1.tar.gz
# fails to find mpi.h
# so 
sudo R CMD INSTALL ../Downloads/Rmpi_0.6-9.1.tar.gz --configure-args="--with-mpi=/home/rmpitest/mpich-install --with-Rmpi-type=MPICH"

结果:

Error: package or namespace load failed for ‘Rmpi’:
 .onLoad failed in loadNamespace() for 'Rmpi', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/local/lib/R/site-library/00LOCK-Rmpi/00new/Rmpi/libs/Rmpi.so':
  libmpi.so.12: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/usr/local/lib/R/site-library/Rmpi’

这和我想象的一样简单的 mpi 安装在这里失败了吗?

【问题讨论】:

    标签: r snow dompi


    【解决方案1】:

    认为您的一些问题来自混合和匹配包管理器。我相信你现在可能已经解决了这个问题,但我会:

    a) 单独为 Rmpi​​ 使用 R 的 install.packages() 函数;应该引入依赖项

    b) 导出 R_LIBS=~/somewhere/local 这样您就不会破坏系统包

    c) MPI 在单台计算机上本身就是一种开销——您可能知道,它确实是为集群设计的。 doMPI 包为 R 的 foreach () %dopar% {} 结构提供了一个临时工作的后端,如果您在将代码部署到集群之前在本地机器上开发代码,那么在许多方面使用和安装 library(parallel) 和/ 或 library(foreach) 并从中使用 dopar 函数。您可能使用的集群可能有自己的方法来管理“图书馆乐趣和游戏”——例如模块加载——根据我的经验,更改调用哪个库非常容易。您可能还需要集群上的本地R_LIBS,因为您无法修改系统库(以避免破坏其他人的东西)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-23
      • 2023-03-08
      • 2022-09-23
      • 2012-09-12
      • 2017-12-12
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      相关资源
      最近更新 更多