gpt4 book ai didi

r - 在LAM/MPI集群上安装Rmpi

转载 作者:行者123 更新时间:2023-12-04 13:33:21 29 4
gpt4 key购买 nike

我正在尝试在LAM MPI群集计算机上安装Rmpi软件包。以前我一直在编译和测试一些东西(mpi4py和小型C++程序),所以我确定MPI本身可以工作。但是,链接库时,安装Rmpi软件包失败。

我主要怀疑是调用makefile中的gcc而不是mpicc(我正在尝试在配置中找到要更改此行的行,但到目前为止无法找到它)。

有人在LAM上安装Rmpi有经验吗,您是如何管理的?

体系结构

  • LAM MPI(或者如果存在的话可能是PBS MPI,如何检查?)。可以肯定的是,我有一个mpicpp文件,但我认为它不是所有mpi实现的共同之处
  • R-2.15.2
  • Rmpi​​_0.6-1
  • CentOS版本5.5(最终版),x86_64

  • 从R调用的命令
    install.packages("Rmpi")

    日志
    trying URL 'http://cran.at.r-project.org/src/contrib/Rmpi_0.6-1.tar.gz'
    Content type 'application/x-gzip' length 92977 bytes (90 Kb)
    opened URL
    ==================================================
    downloaded 90 Kb

    * installing *source* package âRmpiâ ...
    ** package âRmpiâ successfully unpacked and MD5 sums checked
    checking for gcc... gcc -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 gcc -std=gnu99 accepts -g... yes
    checking for gcc -std=gnu99 option to accept ISO C89... none needed
    I am here /usr and it is OpenMPI
    Trying to find mpi.h ...
    Found in /usr/include
    Trying to find libmpi.so or libmpich.a ...
    Found libmpi in /usr/lib
    checking for openpty in -lutil... yes
    checking for main in -lpthread... yes
    configure: creating ./config.status
    config.status: creating src/Makevars
    ** libs
    gcc -std=gnu99 -I/g/software/linux/pack/r-2.15.2/centos-5/lib64/R/include -DNDEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I/usr/include -DMPI2 -DOPENMPI -I/usr/local/include -fpic -g -O2 -c RegQuery.c -o RegQuery.o
    gcc -std=gnu99 -I/g/software/linux/pack/r-2.15.2/centos-5/lib64/R/include -DNDEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I/usr/include -DMPI2 -DOPENMPI -I/usr/local/include -fpic -g -O2 -c Rmpi.c -o Rmpi.o
    gcc -std=gnu99 -I/g/software/linux/pack/r-2.15.2/centos-5/lib64/R/include -DNDEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I/usr/include -DMPI2 -DOPENMPI -I/usr/local/include -fpic -g -O2 -c conversion.c -o conversion.o
    gcc -std=gnu99 -I/g/software/linux/pack/r-2.15.2/centos-5/lib64/R/include -DNDEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I/usr/include -DMPI2 -DOPENMPI -I/usr/local/include -fpic -g -O2 -c internal.c -o internal.o
    gcc -std=gnu99 -shared -L/usr/local/lib64 -o Rmpi.so RegQuery.o Rmpi.o conversion.o internal.o -L/usr/lib -lmpi -lutil -lpthread -L/g/software/linux/pack/r-2.15.2/centos-5/lib64/R/lib -lR
    /usr/bin/ld: skipping incompatible /usr/lib/libutil.so when searching for -lutil
    /usr/bin/ld: skipping incompatible /usr/lib/libutil.a when searching for -lutil
    /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
    /usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread
    /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
    /usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
    installing to /home/andrejev/R/x86_64-unknown-linux-gnu-library/2.15/Rmpi/libs
    ** R
    ** demo
    ** inst
    ** preparing package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded
    Error : .onLoad failed in loadNamespace() for 'Rmpi', details:
    call: dyn.load(file, DLLpath = DLLpath, ...)
    error: unable to load shared object '/home/andrejev/R/x86_64-unknown-linux-gnu-library/2.15/Rmpi/libs/Rmpi.so':
    /usr/lib/libmpi.so.0: undefined symbol: _kio
    Error: loading failed
    Execution halted
    ERROR: loading failed
    * removing â/home/andrejev/R/x86_64-unknown-linux-gnu-library/2.15/Rmpiâ

    The downloaded source packages are in
    â/tmp/Rtmp5qzeqp/downloaded_packagesâ
    Warning message:
    In install.packages("Rmpi") :
    installation of package âRmpiâ had non-zero exit status

    最佳答案

    我们有一个非常相似的设置。我最近没有接触过足够多的信息,无法与您的特定情况进行交流,但是我可以传递一些使我们起步运行的命令...

    正如Dirk所提到的,对我们来说,第一步是要运行OpenMPI。设置完成后,您需要确保正确设置了LD_LIBRARY_PATH:

    export LD_LIBRARY_PATH=/opt/openmpiv2/lib/:$LD_LIBRARY_PATH

    最终为我们安装了Rmpi的命令(在运行上述命令并启动R之后)是:
    install.packages("Rmpi", configure.args = c("--with-Rmpi-include=/opt/openmpiv2/include/", "--with-Rmpi-libpath=/opt/openmpiv2/lib/", "--with-Rmpi-type=OPENMPI", "--with-mpi=/opt/openmpiv2/"))

    哪个为我们成功安装了软件包。然后,我们可以使用以下命令运行作业:
    qsub -I -l nodes=2:ppn=12
    /opt/openmpiv2/bin/mpirun --hostfile $PBS_NODEFILE -n 1 R --slave -f rmpitest.R

    这些命令可能对我们的设置非常特定,以至于它们可能没有用,但是希望此处的某些命令可以为您节省一些时间!

    就像@Sergej在下面提出的那样,一个更通用的解决方案可能是:
    install.packages(
    "Rmpi",
    configure.args = c(
    "--with-Rmpi-include=/usr/include/", # This is where LAM's mpi.h is located
    "--with-Rmpi-libpath=/usr/lib/", # This is where liblam.so is located (actually as I type it mine was located in /usr/lib64/liblam.so.0, so maybe this is not needed at all)
    "--with-Rmpi-type=LAM" # This says that the type is LAM (there is also OPENMPI and MPICH)
    ))

    我们的设置:RHEL 5,Rmpi 0.5-9,OpenMPI 1.4.3。,R 2.15.0

    关于r - 在LAM/MPI集群上安装Rmpi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570873/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com