在 Ubuntu 上使用 openmpi 3.0.0 加载 Rmpi​​ 抛出错误

loading Rmpi with openmpi 3.0.0 on Ubuntu throwing error

我在尝试安装 Rmpi​​ 时遇到了一些库问题,在 Ubuntu 16.04 上从源代码安装了 openmpi 3.0.0 到 /usr/local。

open mpi 似乎安装正确,mpirun --version 有效

当我尝试使用此命令安装 Rmpi​​ 时

sudo R CMD INSTALL ./Downloads/Rmpi_0.6-6.tar.gz --configure-args="--with-Rmpi-type={OPENMPI}"

它编译正常,并找到库

I am here /usr/local and it is OpenMPI
Trying to find mpi.h ...
Found in /usr/local/include
Trying to find libmpi.so or libmpich.a ...
Found libmpi in /usr/local/lib
checking for orted... yes
checking for openpty in -lutil... yes
checking for main in -lpthread... yes
configure: creating ./config.status

但是当它进行负载测试时我得到

** testing if installed package can be loaded
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
***    and potentially your MPI job)

我已经尝试了很多东西,但仍然没有运气。我怎样才能追踪到 mpi 连接中的错误?

根据评论区的各种交流,Rmpi 使用 Open MPI 作为插件时似乎存在问题。

solution/workaround 是从头开始重建 Open MPI 并使用 --disable-dlopen 参数进行配置。

这可能与 Open MPI

中讨论的问题有关

如果有人在安装Rmpi时仍然遇到类似的问题(未定义的符号:mpi_universe_size): Ubuntu 18.04 上的 R 3.5.1 安装 libopenmpi-dev 已解决该问题。