[R] Rmpi fails to install

Hugo Mildenberger Hugo.Mildenberger at web.de
Fri Jun 17 13:28:38 CEST 2011


Juergen,

> I try to install Rmpi as root with install.packages("Rmpi").
> It fails with:
> ...

I encountered a similar problem with openmpi-1.5.3 and 
Rmpi_0.5-9.tar.gz. The reason was an unchecked call to 
dlopen("libmpi.so.0").  At least openmpi-1.5.3 does not provide  
"libmpi.so.0" anymore. The patch below corrects for this. 

According to man dlopen, this should work with all POSIX.1-2001 
compliant systems. But possibly R already has an abstraction layer
for loading shared objects?

Here is how to apply this patch locally:

   tar -xvzf Rmpi_0.5-9.tar.gz
   patch -p1 < rmpi-check-dlopen-status.patch
   tar -cvzf  Rmpi_0.5-9a.tar.gz
   R CMD INSTALL --preclean Rmpi_0.5-9a.tar.gz


Best 

Hugo  

---- cut ----

diff -ru a/Rmpi/src/Rmpi.c b/Rmpi/src/Rmpi.c
--- a/Rmpi/src/Rmpi.c   2010-11-30 20:38:01.000000000 +0100
+++ b/Rmpi/src/Rmpi.c   2011-06-17 12:48:37.000000000 +0200
@@ -68,7 +68,11 @@
        else {
 
 #ifdef OPENMPI
-       dlopen("libmpi.so.0", RTLD_GLOBAL | RTLD_LAZY);
+       if (!dlopen("libmpi.so", RTLD_GLOBAL | RTLD_LAZY)) { 
+            Rprintf("%s\n",dlerror());
+            return AsInt(0);
+       }
+
 #endif
 
 #ifndef MPI2

--- cut ----






On Monday 07 March 2011 21:53:05 rose at uni-potsdam.de wrote:
> I try to install Rmpi as root with install.packages("Rmpi").
> It fails with:
> ...
> checking for x86_64-pc-linux-gnu-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
> x86_64-pc-linux-gnu-gcc -std=gnu99 -I/usr/lib64/R/include
> -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
> -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -I/usr/include  -DMPI2
> -DOPENMPI -I/usr/local/include    -fpic  -march=nocona -O2 -pipe
> -fomit-frame-pointer -c RegQuery.c -o RegQuery.o
> x86_64-pc-linux-gnu-gcc -std=gnu99 -I/usr/lib64/R/include
> -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
> -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -I/usr/include  -DMPI2
> -DOPENMPI -I/usr/local/include    -fpic  -march=nocona -O2 -pipe
> -fomit-frame-pointer -c Rmpi.c -o Rmpi.o
> x86_64-pc-linux-gnu-gcc -std=gnu99 -I/usr/lib64/R/include
> -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
> -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -I/usr/include  -DMPI2
> -DOPENMPI -I/usr/local/include    -fpic  -march=nocona -O2 -pipe
> -fomit-frame-pointer -c conversion.c -o conversion.o
> x86_64-pc-linux-gnu-gcc -std=gnu99 -I/usr/lib64/R/include
> -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
> -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -I/usr/include  -DMPI2
> -DOPENMPI -I/usr/local/include    -fpic  -march=nocona -O2 -pipe
> -fomit-frame-pointer -c internal.c -o internal.o
> x86_64-pc-linux-gnu-gcc -std=gnu99 -shared -Wl,-O1 -Wl,--as-needed -o
> Rmpi.so RegQuery.o Rmpi.o conversion.o internal.o -L/usr/lib -lmpi
> -lutil -lpthread -L/usr/lib64/R/lib -lR
> installing to /usr/lib64/R/library/Rmpi/libs
> ** R
> ** demo
> ** inst
> ** preparing package for lazy loading
> ** help
> *** installing help indices
> ** building package indices ...
> ** testing if installed package can be loaded
> /usr/lib64/R/bin/exec/R: symbol lookup
> error: /usr/lib64/openmpi/mca_paffinity_linux.so: undefined symbol:
> mca_base_param_reg_int
> 
> The downloaded packages are in
>          ?/tmp/RtmpLvvl9R/downloaded_packages?
> Updating HTML index of packages in '.Library'
> Warning message:
> In install.packages("Rmpi") :
>    installation of package 'Rmpi' had non-zero exit status
> 
> The system is a gentoo system with openmpi-1.5.1. I am thankful for any
> hint.
> 
> Juergen
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


More information about the R-help mailing list