Hi Dirk,
Thank for pointing out additional flags needed in order to compile Rmpi
correctly. Those flags can be added in configure.ac once openmpi dir is
detected. BTW -DMPI2 flag was missed in your Rmpi since the detection of
openmpi was not good. It should be
####
if test -d ${MPI_ROOT}/lib/openmpi; then
echo "Found openmpi dir in ${MPI_ROOT}/lib"
MPI_DEPS="-DMPI2"
fi
####
I tried to run Rmpi under snow and got the same error messenger. But after
checking makeMPIcluster, I found that n=3 was a wrong argument. After
makeMPIcluster finds that count is missing,
count=mpi.comm.size(0)-1 is used. If you start R alone, this will return
count=0 since there is only one member (master). I do not know why snow
did not use count=mpi.universe.size()-1 to find total nodes available.
Anyway after using
cl=makeMPIcluster(count=3),
I was able to run parApply function.
I tried
R -> library(Rmpi) -> library(snow) -> c1=makeMPIcluster(3)
Also
mpirun -host hostfile -np 1 R --no-save
library(Rmpi) -> library(snow) -> c1=makeMPIcluster(3)
Hao
PS: hostfile contains all nodes info so in R mpi.universe.size() returns
right number and will spawn to remote nodes.
Rmp under Debian 3.1 and openmpi 1.2.4 seems OK. I did find some missing
lib under Debian 4.0.
Dirk Eddelbuettel wrote:>
> Many thanks to Dr Yu for updating Rmpi for R 2.6.0, and for starting to
> make
> the changes to support Open MPI.
>
> I have just built the updated Debian package of Rmpi (i.e. r-cran-rmpi)
> under
> R 2.6.0 but I cannot convince myself yet whether it works or not. Simple
> tests work. E.g. on my Debian testing box, with Rmpi installed directly
> using Open Mpi 1.2.3-2 (from Debian) and using 'r' from littler:
>
> edd at ron:~> orterun -np 3 r -e 'library(Rmpi);
print(mpi.comm.rank(0))'
> [1] 0
> [1] 1
> [1] 2
> edd at ron:~>
>
> but I basically cannot get anything more complicated to work yet. R /
> Rmpi
> just seem to hang, in particular snow and and getMPIcluster() just sit
> there:
>
>> cl <- makeSOCKcluster(c("localhost",
"localhost"))
>> stopCluster(cl)
>> library(Rmpi)
>> cl <- makeMPIcluster(n=3)
> Error in makeMPIcluster(n = 3) : no nodes available.
>>
>
> I may be overlooking something simple here, in particular the launching of
> apps appears to be different for Open MPI than it was with LAM/MPI (or
> maybe
> I am just confused because I also look at LLNL's slurm for use with
Open
> MPI ?)
>
> Has anybody gotten Open MPI and Rmpi to work on simple demos? Similarly,
> is
> anybody using snow with Rmpi and Open MPI yet?
>
> Also, the Open MPI FAQ is pretty clear on their preference for using mpicc
> for compiling/linking to keep control of the compiler and linker options
> and
> switches. Note that e.g. on my Debian system
>
> edd at ron:~> mpicc --showme:link
> -pthread -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl
> -lutil -lm -ldl
>
> whereas Rmpi built with just the default from R CMD:
>
> gcc-4.2 -std=gnu99 -shared -o Rmpi.so RegQuery.o Rmpi.o conversion.o
> internal.o -L/usr/lib -lmpi -lpthread -fPIC -L/usr/lib/R/lib -lR
>
> Don't we need libopen-rte and libopen-pal as the MPI FAQ suggests?
>
> Many thanks, Dirk
>
> --
> Three out of two people have difficulties with fractions.
>
--
Department of Statistics & Actuarial Sciences
Fax Phone#:(519)-661-3813
The University of Western Ontario
Office Phone#:(519)-661-3622
London, Ontario N6A 5B7
http://www.stats.uwo.ca/faculty/yu