Spawn and Close R Slaves

Share:

Description

mpi.spawn.Rslaves spawns R slaves to those hosts automatically chosen by MPI or specific hosts assigned by the argument hosts. Those R slaves are running in R BATCH mode with a specific Rscript file. The default Rscript file "slavedaemon.R" provides interactive R slave environments.

mpi.close.Rslaves shuts down R slaves spawned by mpi.spawn.Rslaves.

tailslave.log view (from tail) R slave log files (assuming they are all in one working directory).

Usage

1
2
3
4
5
6
7
mpi.spawn.Rslaves(Rscript=system.file("slavedaemon.R", package="Rmpi"),
        nslaves=mpi.universe.size(), root = 0, intercomm = 2,
        comm = 1, hosts = NULL, needlog = TRUE, mapdrive=TRUE, quiet = FALSE, 
		nonblock=TRUE, sleep=0.1)

mpi.close.Rslaves(dellog = TRUE, comm = 1)
tailslave.log(nlines = 3, comm = 1)

Arguments

Rscript

an R script file used to run R in BATCH mode.

nslaves

number of slaves to be spawned.

root

the rank number of the member who spawns R slaves.

intercomm

an intercommunicator number

comm

a communicator number merged from an intercomm.

hosts

NULL or LAM node numbers to specify where R slaves to be spawned.

needlog

a logical. If TRUE, R BATCH outputs will be saved in log files. If FALSE, the outputs will send to /dev/null.

mapdrive

a logical. If TRUE and master's working dir is on a network, mapping network drive is attemped on remote nodes under windows platform.

quiet

a logical. If TRUE, do not print anything unless an error occurs.

nonblock

a logical. If TRUE, a nonblock procedure is used on all slaves so that they will consume none or little CPUs while waiting.

sleep

a sleep interval, used when nonblock=TRUE. Smaller sleep is, more response slaves are, more CPUs consume.

dellog

a logical specifying if R slave's log files are deleted or not.

nlines

number of lines to view from tail in R slave's log files.

Details

The R slaves that mpi.spawn.Rslaves spawns are really running a shell program which can be found in system.file("Rslaves.sh",package="Rmpi") which takes a Rscript file as one of its arguments. Other arguments are used to see if a log file (R output) is needed and how to name it. The master process id and the comm number, along with host names where R slaves are running are used to name these log files.

Once R slaves are successfully spawned, the mergers from an intercomm (default ‘intercomm = 2’) to a comm (default ‘comm = 1’) are automatically done on master and slaves (should be done if the default Rscript is replaced). If additional sets of R slaves are needed, please use ‘comm = 3’, ‘comm = 4’, etc to spawn them. At most a comm number up to 10 can be used. Notice that the default comm number for R slaves (using slavedaemon.R) is always 1 which is saved as .comm.

To spawn R slaves to specific hosts, please use the argument hosts with a list of those node numbers (an integer vector). Total node numbers along their host names can be found by using lamhosts. Notice that this is LAM-MPI specific.

Value

Unless quiet = TRUE, mpi.spawn.Rslaves prints to stdio how many slaves are successfully spawned and where they are running.

mpi.close.Rslaves return 1 if success and 0 otherwise.

tailslave.log returns last lines of R slave's log files.

Author(s)

Hao Yu

See Also

mpi.comm.spawn, lamhosts.

Examples

1
2
3
4

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.