Earlier this year, I had a Linux system with R / MPICH2 / Rmpi doing
distributed decision forest computations very nicely on the Amazon cloud.
Unfortunately, part of that build was undocumented and is no longer
available to me.  I have been trying to reproduce the build, but keep
running into various problems.

 

In all cases I start with a 32-bit Ubuntu 8.10 Intrepid base install from
Alestic, and install the latest R binary from Ubuntu using apt-get (this
turns out to be R version 2.10.1).  I then add some version of MPICH2
(building from source) and some version of Rmpi (using R CMD INSTALL).  All
of the preceding is done on a minimum of three machines in parallel.  I then
boot mpi from one of the machines, and document that all the machines are
communicating via mpi with various tests:

 

root@ip-10-243-30-130:~# mpdtrace

ip-10-243-30-130

ip-10-243-22-99

ip-10-245-118-213

 

root@ip-10-243-30-130:~# mpdringtest 100

time for 100 loops = 0.542726039886 seconds

 

root@ip-10-243-30-130:~# mpiexec -l -n 7 hostname

1: ip-10-243-22-99

0: ip-10-243-30-130

4: ip-10-243-22-99

3: ip-10-243-30-130

6: ip-10-243-30-130

2: ip-10-245-118-213

5: ip-10-245-118-213

 

If I use the latest versions of MPICH2 (1.2) and Rmpi (0.5-7), I can go into
R after mpi is running, load Rmpi from the command line, and at least some
of the functions of Rmpi appear to work properly:

 

> library("Rmpi")

> mpi.comm.size(0)

[1] 1

> mpi.comm.size(1)

[1] 0

> mpi.comm.rank(0)

[1] 0

> mpi.comm.rank(1)

[1] 16064500

 

However, when I try to spawn a cluster ( > mpi.spawn.Rslaves( nslaves=2 ) ),
the system hangs indefinitely.  Usually I can get back to the shell prompt
with ctrl-Z, but sometimes it's so hung I have to close the shell and open
another.

 

I also tried an earlier version of MPICH2 (1.0.8p1) with either Rmpi 0.5-7
or Rmpi 0.5-6.  These combinations instead generate an error when I try to
load Rmpi:

 

> library(Rmpi)

Error in dyn.load(file, DLLpath = DLLpath, ...) :

  unable to load shared library
'/usr/local/lib/R/site-library/Rmpi/libs/Rmpi.so':

  /usr/local/mpich2/lib/libmpich.so.1.1: undefined symbol: aio_suspend64

Error in library(Rmpi) : .First.lib failed for 'Rmpi'

Error in dyn.unload(file.path(libpath, "libs", paste("Rmpi",
.Platform$dynlib.ext,  :

  dynamic/shared library '/usr/local/lib/R/site-library/Rmpi/libs/Rmpi.so'
was not loaded

 

Any suggestions on what is wrong or how to solve it would be greatly
appreciated.  Thanks.

 

Jeff Howbert

 


	[[alternative HTML version deleted]]

