Instructions
to install and run Rmpi under
Windows with MPICH2
(Tested
on Windows 7 64bit)
Note: Instructions to run under DeinoMPI
are given here. Binary version
of Rmp compiled under MPICH2 can be used directly.
Note: It has been
discovered that spawned slaves under MPICH2 1.3.0 or later
consume 100% CPU while waiting for instructions from
master. Use Rmpi 0.6-1 or later.
Note: It seems wmpiconfig doesn’t work for MPICH2 64bit
version. Even with 32bit version, seting up multiple hosts is
useless since smpd cannot get that informatin. Instead smpd is
used for multiple hosts setup. See the instructions in Step 5.
Steps:
- Install
MPICH2 for Windows (either 32 or 64bit depending on
which version of R used).
Find the latest version at http://www-unix.mcs.anl.gov/mpi/mpich2
Version 1.4.p1 or later is recommended.
Notice that during installation, there
is a window to specify pass phrase with default value "behappy". Either keep the default or use
a different pass phrase (not your user password). Run
wmpiregister to register your account login name and password.
2.
Add
MPICH2 bin directory to PATH environment variables. This is very
important. Otherwise Rmpi will not
run properly.
- Right click "My Computer" and choose
"Properties". Click "Advanced system settings" to get a
new window.
- Click "Environment Variables..." to get a new
window. Locate variable "PATH" (it is version dependent.
Either User or System variables will be fine). Click Edit
to get a new window.
- At end of Variable value, add ";C:\Program
Files\MPICH2\bin" (Remove the double quotations ).
It may be “;C:\Program Files
(x86)\MPICH2\bin” for 32bit MPICH2.
- Open "Command
Prompt" with administrator. At prompt, type
smpd
-install -phrase behappy
(change behappy to whatever the
pass phrase you choose). Run
smpd -status
If it returns "smpd running on your_host_name", then smpd is
setup properly.
- Download Rmpi for windows. Get it here. Get the newest
one (0.6-1 or later). Launch R with administrator to install
Rmpi. Quit R and launch R with
normal user. Try the following codes to see if Rmpi runs properly
library(Rmpi)
mpi.spawn.Rslaves()
mpi.parReplicate(20,
mean(rnorm(1000000)))
mpi.close.Rslaves()
If it runs, congratulation. Yes. You
can run Rmpi without
mpiexec.exe. You can completely forget about MPICH2 (if
Steps 2 and 3 are done properly) and use Rmpi like a normal R package.
- Run Rmpi under multiple windows PCs (
LAN with wire or wireless).
- Repeat Steps 1,2,3,and 4 on each window PC. Make
sure that you have the same account and same pass phrase
as far as MPICH2 concerns. Install R at the same location.
- Need to setup
windows firewall to let Rgui.exe and Rterm.exe go through.
For testing purpose, turn off windows firewall to see if Rmpi works or not.
- At master
node, open
"Command Prompt" with administrator. Let us assume
that the master node has 4 CPUs and two remote nodes (karl
and kiefer as their windows
names respectively) have 2 CPUs each. At prompt, type
smpd -sethosts localhost:4 karl:2 kiefer:2
Then run
smpd -get hosts
If it returns the same hosts list, like "localhost:4
karl:2 kiefer:2", then mutiple hosts are setup properly.
- On the master,
launch R and try the following codes to see if Rmp runs properly
library(Rmpi)
mpi.spawn.Rslaves()
mpi.remote.exec(rnorm(10))
mpi.close.Rslaves()
If it runs, then there should be 4 slaves on the
master, 2 on karl and 2 on kiefer.
(last update
08/17/2012)