【问题标题】:Installing Rmpi on centos with intel mpi用 intel mpi 在 centos 上安装 Rmpi
【发布时间】:2016-03-30 22:23:51
【问题描述】:

我正在尝试在 R 中的包中安装 Rmpi​​,并安装了 intel mpi。首先我下载了​​Rmpi,并通过以下命令进行处理:

命令行

R CMD INSTALL --configure-args="--with-mpi=/opt/intel_2015/impi/5.0.1.035/intel64/" Rmpi_0.6-5.tar.gz

但它没有安装,而是显示以下结果:

日志

* installing to library ‘/home/user/R/x86_64-pc-linux-gnu-library/3.2’
* installing *source* package ‘Rmpi’ ...
** package ‘Rmpi’ successfully unpacked and MD5 sums checked
checking for gcc... icc -std=gnu99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether icc -std=gnu99 accepts -g... yes
checking for icc -std=gnu99 option to accept ISO C89... none needed
Trying to find mpi.h ...
Found in /opt/intel_2015/impi/5.0.1.035/intel64//include
Trying to find libmpi.so or libmpich.a ...
Found libmpi in /opt/intel_2015/impi/5.0.1.035/intel64//lib
checking for openpty in -lutil... yes
checking for main in -lpthread... yes
configure: error: Unknown type of mpi: use --with-Rmpi-type or RMPI_TYPE to specify it
ERROR: configuration failed for package ‘Rmpi’
* removing ‘/home/user/R/x86_64-pc-linux-gnu-library/3.2/Rmpi’
* restoring previous ‘/home/user/R/x86_64-pc-linux-gnu-library/3.2/Rmpi’

然后我用--with-Rmpi-type='MPI2CH'--with-Rmpi-type='OPENMPI'都没用,我知道一定是mpi类型的问题。但是我尝试了我能找到的一切,仍然无法弄清楚。 架构

  • Centos 6.7 最终版
  • R-3.2.3
  • Rmpi_0.6-5

以下是我的.bashrc intel 文件

source /opt/intel_2015/bin/compilervars.sh intel64
source /opt/intel_2015/impi/5.0.1.035/bin64/mpivars.sh
source /opt/intel_2015/composer_xe_2015.0.090/mkl/bin/mklvars.sh intel64
source /opt/intel_2015/bin/iccvars.sh intel64

在我尝试了以下命令后:

R CMD INSTALL --configure-args="\
--with-Rmpi-include='/opt/intel_2015/impi/5.0.1.035/intel64/include' \
--with-Rmpi-libpath='/opt/intel_2015/impi/5.0.1.035/intel64/lib' \
--with-mpi='/opt/intel_2015/impi/5.0.1.035/intel64' \
--with-Rmpi-type='OPENMPI' " Rmpi_0.6-5.tar.gz

它显示以下结果,仍然有问题,但很有希望:

* installing *source* package ‘Rmpi’ ...
** package ‘Rmpi’ successfully unpacked and MD5 sums checked
checking for openpty in -lutil... no
checking for main in -lpthread... no
configure: creating ./config.status
config.status: creating src/Makevars
** libs
icc -std=gnu99 -I/opt/R-3.2.3MKL/lib64/R/include -DNDEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I/opt/intel_2015/impi/5.0.1.035/intel64/include  -DMPI2 -DOPENMPI -I/usr/local/include    -fpic  -ip -O3 -opt-mem-layout-trans=3 -xHost -march=core-avx2 -wd188 -fp-model precise  -c Rmpi.c -o Rmpi.o
icc -std=gnu99 -I/opt/R-3.2.3MKL/lib64/R/include -DNDEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I/opt/intel_2015/impi/5.0.1.035/intel64/include  -DMPI2 -DOPENMPI -I/usr/local/include    -fpic  -ip -O3 -opt-mem-layout-trans=3 -xHost -march=core-avx2 -wd188 -fp-model precise  -c conversion.c -o conversion.o
icc -std=gnu99 -I/opt/R-3.2.3MKL/lib64/R/include -DNDEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I/opt/intel_2015/impi/5.0.1.035/intel64/include  -DMPI2 -DOPENMPI -I/usr/local/include    -fpic  -ip -O3 -opt-mem-layout-trans=3 -xHost -march=core-avx2 -wd188 -fp-model precise  -c internal.c -o internal.o
icc -std=gnu99 -shared -L/usr/local/lib64 -o Rmpi.so Rmpi.o conversion.o internal.o -L/opt/intel_2015/impi/5.0.1.035/intel64/lib -lmpi
installing to /home/user/R/x86_64-pc-linux-gnu-library/3.2/Rmpi/libs
** R
** demo
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (Rmpi)

【问题讨论】:

    标签: r mpi cluster-computing


    【解决方案1】:

    请试试这个:

    我发现是依赖错误。我的意思是,如果 OpenMPI 被编译为动态加载扩展,那么 Rmpi 不起作用,这是现在的默认安装。如果您的 OpenMPI >= 1.x(并且对于 1.x.x 的某些安装),您将需要从禁用 dlopen 的源安装它。

    所以:

    尝试卸载所有MPI接口,重新安装OpenMPI 使用“--enabled-shared --disable-dlopen”命令,Rmpi 应该可以 在 R 中成功安装。

    R CMD INSTALL Rmpi_0.6-5.tar.gz --configure-args="--with-mpi=/usr/local/ --with-Rmpi-type=OPENMPI --enabled-shared --disable-dlopen"
    

    我希望它对你有用。但不要放弃:)

    【讨论】:

    • 你的意思是我不能用intel mpi安装Rmpi,我必须安装OpenMPI?但我无权删除服务器上的 Intel mpi。有什么选择吗?
    • 对于 intel mpi,您需要查看文档,即 centOS 中 RMPI 的版本信息。实际上问题是版本不匹配。
    • 我已经放弃尝试在没有 openmpi 的服务器上安装 Rmpi​​。在我联系管理员并帮助我安装 openmpi 后,它神奇地安装了,您的命令没有任何错误。但是 with-mpi 部分仍然设置为 intel mpi。谢谢!
    • 很高兴听到这个消息,当您对它更加熟悉时,应该尝试使用IntelMPI。请考虑对答案进行投票,以便其他人可以作为值得信赖的答案获得帮助
    猜你喜欢
    • 2013-04-17
    • 2017-08-23
    • 2020-01-21
    • 2018-09-11
    • 2013-09-01
    • 2015-08-08
    • 2012-11-02
    • 2019-02-05
    • 2011-02-10
    相关资源
    最近更新 更多