If you mainly use Rmpi to run on a standalone dual-cores or quad-cores PC, then running Rmpi under DeinoMPI is the simplest and best way for you. Corresponding instructions are here. The following instructions are for Rmpi under MPICH2.
Before installing MPICH2, you need Microsoft .Net 1.1 at .NET Framework Version 1.1 Redistributable Package and Visual C++ 2005 SP1 Redistributable Package (x86).
Install MPICH2 on each node and make sure the window service smpd is running properly with a
pass phrase, not a user password. Please use the same pass phrase on
each node.
MPICH2 comes with the following windows programs:
wmpiconfig --- set/modify/delete MPICH2 configuration settings
wmpiexec --- window wrapper to the command mpiexec.exe. Very handy to
pass information to mpiexec.
wmpiregister --- register user name and password on master node. This
must be done before doing anything else.
On master node, use
wmpiconfig to scan hosts or click "Get Settings" for a host. Those
hosts with green color are set correctly. You can add those workable hosts
in "hosts", like "localhost node2 node3". If
master R is not involved with any computation other than
communications, set "hosts" to "localhost:2 node2
node3" so that the first R slave is on localhost, the second one on
node2, and so on. By the same token, if node2 is a dual CPU node, set
"hosts" to "localhost:2 node2:2 node3".
Launch wmpiexec and click "more options". Add
"-localroot" in "extra mpiexec options". Specify a
working directory. In "Application", locate Rgui.exe.
Click "Execute" will lanuch one Rgui. Alternatively, create
a shortcut with command
"C:\Program Files\MPICH2\bin\mpiexec.exe" -n 1 -localroot -noprompt
"C:\Program Files\R\R-2.5.1\bin\Rgui.exe".
(copy from "Show command").
Notice that Windows has its own way mapping network drives. It is hard for slaves to use network drives under spawning. To let slaves use network drives, please follow instructions in 3.
After loading Rmpi, use mpi.spawn.Rslaves() to spawn R slaves. If Rmpi works well on a single PC but hangs with remote nodes, it is mostly like caused the block of firewalls on remote nodes. Turn off firewalls to debug and make firewall exceptions for Rgui and Rterm.