[R] Multicore computation in Windows network: How to set up Rmpi
Samu Mäntyniemi
samu.mantyniemi at helsinki.fi
Sat Dec 29 12:03:50 CET 2007
Hello!
I finally got MPICH 1.06 + R 2.6.1 + Rmpi 0.5-5 working with multiple
computers. The key was to realize that the number of processes should be
one when launching Rgui using mpiexec and not the number of
master+slaves, as I had first wrongly understood.
However, I seem to have a new problem which I have not been able to
figure out:
After loading Rmpi, the first attempt to mpi.spawn.Rslaves() always
spawns the slaves on the local machine instead of on both machines. If I
close the slaves and spawn again, then one slave gets spawned on remote
machine. Each time I close and then spawn againg, the order of machines
is different, and eventually I get back to the situation where all
slaves are on the local machine. Continuing to do spawning and closing
seems to reveal a pattern. I can see similar behavior if I have more
than two machines, and it takes more spawn-close cycles to get all my
slave machines spawned on.
Below is an example session with two machines. This pattern shows
everytime I start R and run this script. How to control the spawning so
that I get everything right at the first call of mpi.spawn.Rslaves()?
Regards,
Samu
<R>
>
> library(Rmpi)
> sessionInfo()
R version 2.6.1 (2007-11-26)
i386-pc-mingw32
locale:
LC_COLLATE=Finnish_Finland.1252;LC_CTYPE=Finnish_Finland.1252;LC_MONETARY=Finnish_Finland.1252;LC_NUMERIC=C;LC_TIME=Finnish_Finland.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] Rmpi_0.5-5
> mpi.universe.size()
[1] 2
> mpichhosts()
master slave1 slave2
"clustermaster" "clustermaster" "clusterslave1"
> mpi.spawn.Rslaves()
2 slaves are spawned successfully. 0 failed.
master (rank 0, comm 1) of size 3 is running on: ClusterMaster
slave1 (rank 1, comm 1) of size 3 is running on: ClusterMaster
slave2 (rank 2, comm 1) of size 3 is running on: ClusterMaster
> mpi.close.Rslaves()
[1] 1
> mpi.spawn.Rslaves()
2 slaves are spawned successfully. 0 failed.
master (rank 0, comm 1) of size 3 is running on: ClusterMaster
slave1 (rank 1, comm 1) of size 3 is running on: ClusterSlave1
slave2 (rank 2, comm 1) of size 3 is running on: ClusterMaster
> mpi.close.Rslaves()
[1] 1
> mpi.spawn.Rslaves()
2 slaves are spawned successfully. 0 failed.
master (rank 0, comm 1) of size 3 is running on: ClusterMaster
slave1 (rank 1, comm 1) of size 3 is running on: ClusterMaster
slave2 (rank 2, comm 1) of size 3 is running on: ClusterSlave1
> mpi.close.Rslaves()
[1] 1
> mpi.spawn.Rslaves()
2 slaves are spawned successfully. 0 failed.
master (rank 0, comm 1) of size 3 is running on: ClusterMaster
slave1 (rank 1, comm 1) of size 3 is running on: ClusterMaster
slave2 (rank 2, comm 1) of size 3 is running on: ClusterMaster
> mpi.close.Rslaves()
[1] 1
> mpi.spawn.Rslaves()
2 slaves are spawned successfully. 0 failed.
master (rank 0, comm 1) of size 3 is running on: ClusterMaster
slave1 (rank 1, comm 1) of size 3 is running on: ClusterSlave1
slave2 (rank 2, comm 1) of size 3 is running on: ClusterMaster
> mpi.close.Rslaves()
[1] 1
> mpi.spawn.Rslaves()
2 slaves are spawned successfully. 0 failed.
master (rank 0, comm 1) of size 3 is running on: ClusterMaster
slave1 (rank 1, comm 1) of size 3 is running on: ClusterMaster
slave2 (rank 2, comm 1) of size 3 is running on: ClusterSlave1
> mpi.close.Rslaves()
[1] 1
>
>
> mpi.spawn.Rslaves()
2 slaves are spawned successfully. 0 failed.
master (rank 0, comm 1) of size 3 is running on: ClusterMaster
slave1 (rank 1, comm 1) of size 3 is running on: ClusterMaster
slave2 (rank 2, comm 1) of size 3 is running on: ClusterMaster
> mpi.close.Rslaves()
[1] 1
>
</R>
Samu Mäntyniemi kirjoitti:
> Some progress in my problem:
>
> Samu Mäntyniemi kirjoitti:
>
>> With MPICH2 I managed to connect my computers so that I was able to
>> remotely launch Rgui on both machines but R hanged when calling
>> "library(Rmpi)". If only one Rgui was launched on the localhost,
>> "library(Rmpi)" worked without errors, but trying to use
>> "mpi.spawn.Rslaves()" resulted in an error message, and so did
>> "mpi.universe.size()". (In my current setup I can not reproduce this
>> error message, but I can go back to this setup if this seems to be an
>> important piece of information)
>
> I vent back to MPICH2 installation to see what the error was:
> "ERROR in names(HOSTNAMES)<-base: attempt to set an attribute on NULL"
>
> Trying to rethink what the problem was I realized that unlike in
> DeinoMPI, I need to write the host names manually on the "configurable
> settings" -window, and in order to have one cpu available on the local
> machine, I need to write "myhostname:2".
>
> After these changes MPICH2 1.06 +R-2.6.0+Rmpi 0.5-5 work on the single
> machine in the same way as my DeinoMPI installation: Correct number of
> cpu:s is detected and I can "mpi.spawn.Rslaves()"
>
> I will try to do this with two hosts next and see if there is more luck
> with MPICH2 than DeinoMPI.
>
> Samu
>
>
>
>
> ------------------------------------------
> Samu Mäntyniemi
> Researcher
> Fisheries and Environmental Management Group (FEM)
> Department of Biological and Environmental Sciences
> Biocenter 3, room 4414
> Viikinkaari 1
> P.O. Box 65
> FIN-00014 University of Helsinki
>
> Phone: +358 9 191 58710
> Fax: +358 9 191 58257
>
> email: samu.mantyniemi at helsinki.fi
> personal webpage: http://www.helsinki.fi/people/samu.mantyniemi/
> FEM webpage: http://www.helsinki.fi/science/fem/
>
> ______________________________________________
> 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.
>
>
--
------------------------------------------
Samu Mäntyniemi
Researcher
Fisheries and Environmental Management Group (FEM)
Department of Biological and Environmental Sciences
Biocenter 3, room 4414
Viikinkaari 1
P.O. Box 65
FIN-00014 University of Helsinki
Phone: +358 9 191 58710
Fax: +358 9 191 58257
email: samu.mantyniemi at helsinki.fi
personal webpage: http://www.helsinki.fi/people/samu.mantyniemi/
FEM webpage: http://www.helsinki.fi/science/fem/
More information about the R-help
mailing list