SimDesign code may be released to a computing system which supports parallel cluster computations using the industry standard Message Passing Interface (MPI) form. This simply requires that the computers be setup using the usual MPI requirements (typically, running some flavor of Linux, have password-less open-SSH access, IP addresses have been added to the /etc/hosts
file or ~/.ssh/config
, etc). More generally though, these resources are widely available through professional organizations dedicated to super-computing.
To setup the R code for an MPI cluster the argument MPI = TRUE
needs to be added to the extra_options
list input, which wraps the appropriate MPI directives around runSimulation
. At this point the source files can be submitted using suitable BASH commands to execute the mpirun
tool. For example,
library(doMPI)
cl <- startMPIcluster()
registerDoMPI(cl)
runSimulation(design=Design, replications=1000, filename='mysimulation',
generate=Generate, analyse=Analyse, summarise=Summarise, extra_options = list(MPI=TRUE))
closeCluster(cl)
mpi.quit()
The necessary SimDesign
files must be uploaded to the dedicated master node so that a BASH call to mpirun
can be used to distribute the work across slaves. For instance, if the following BASH command is run on the master node then 16 processes will be summoned (1 master, 15 slaves) across the computers named localhost
, slave1
, and slave2
in the ssh config
file.
mpirun -np 16 -H localhost,slave1,slave2 R --slave -f simulation.R
If you access have to a set of computers which can be linked via secure-shell (ssh) on the same LAN network then Network computing (a.k.a., a Beowulf cluster) may be a viable and useful option. This approach is similar to MPI computing approach except that it offers more localized control and requires more hands-on administrative access to the master and slave nodes. The setup generally requires that the master node has SimDesign
installed and the slave/master nodes have all the required R packa