sleigh {nws} | R Documentation |
Represents a collection of R processes used to execute tasks.
The sleigh allows R functions to be
executed in parallel using the eachElem
and
eachWorker
methods.
The sleigh workers are started when the sleigh object is
constructed. When tasks are submitted to the sleigh, using the
eachWorker
and eachElem
methods, the workers execute the tasks
and return the results. When the stopSleigh
method is called, the
workers are stopped.
A given R program can create multiple sleigh objects, each of which will have its own set of workers. This can be useful if tasks have different requirements. For example, you could create a Linux sleigh and a Windows sleigh, and submit Windows-specific tasks only to your Windows sleigh.
Objects can be created by calls of the form
sleigh(...)
or
new("sleigh",...)
where ...
can be one or more of the following named arguments:
nodeList
:launch='local'
. The default value
is c('localhost', 'localhost', 'localhost')
.workerCount
:launch='local'
, the default value is 3. If nodeList
is provided,
the actual set of workers is determined using rep(nodeList, length=workerCount)
, which effectively does a round-robin scheduling on the nodes in
nodeList
. For example, if nodeList=c("n1","n2", "n2", "n3","n3","n3")
and workerCount=20
, there will be four workers on node n1, seven
on node n2, and nine on node n3.launch
:'local'
(the default) or 'web'
, or to a function object.
The function is called once for each worker listed in nodeList
. It
is passed two arguments: a name from nodeList
, and an
environment object that was constructed by merging defaultSleighOptions
with the arguments that were passed to the sleigh constructor. The
function should return a character vector, where the first element is the
command to execute, and the subsequent elements are the command arguments.
For example, the function could return the vector
c('ssh', '-f', 'host')
, where 'host'
is the first
argument to the launch function. This
isn't the complete command to be executed; it's the 'remote execution'
portion of the command.
The sleigh constructor will add the rest of the command based on the
scriptExec
argument. Note that the command is expected to return after
launching the worker. That is why the ssh -f option is used in the example.
serverInfo
:serverInfo
or
managedServerInfo
that describes the netWorkSpaces server.
Default is the return variable of getServer
.scriptExec
:scriptcmd
function on Windows, and uses envcmd
function on
other platforms.scriptDir
:scriptName
:RNWSSleighWorker.py
on Windows, and RNWSSleighWorker.sh
on other platforms.workingDir
:logDir
:NULL
.outfile
:NULL
.wsNameTemplate
:'sleigh_ride_%010d'
.user
:NULL
.verbose
:FALSE
.rngType
:'legacy'
, which does a limited initialization. If the
sprngNWS
package is available, the following options are
available:
For more information on these, see spring documentation at http://sprng.cs.fsu.edu/
rngSeed
:'legacy'
type.fixedargsSize
:signature(.Object = "sleigh")
:
sleigh class constructor.signature(.Object = "sleigh")
:
evaluate the given function with multiple argument sets using
the workers in sleigh.signature(.Object = "sleigh")
:
evaluate the given function exactly once for each worker in sleigh.signature(.Object = "sleigh")
:
get sleigh's rankCount.signature(.Object = "sleigh")
:
return the status of the sleigh.signature(.Object = "sleigh")
:
shut down workers and remove sleigh workspace.signature(.Object = "sleigh")
:
get number of workers started in sleigh.
There are six different standard launch types ('local'
, sshcmd
,
rshcmd
, lsfcmd
, sshforwardcmd
, and 'web'
) to
tailor the client's working environment. This is done
by setting launch variable to a function (sshcmd
, rshcmd
,
sshforwardcmd
or lsfcmd
)
or a string ('local' and 'web'). See the examples section.
The constructor still supports the nwsHost
and nwsPort
arguements, but as of release 2.0, they are deprecated and will be
removed in 4.0.
The legacy descriptions are:
nwsHost
: host name of the netWorkSpaces server. Default is the
machine where sleigh starts up.
nwsPort
: port number of the netWorkSpaces server. Default is
8765.
If the user specifies both one or more deprecated options and a serverInfo object, the deprecated option(s) will be ignored.
## Not run: # Default option: create three sleigh workers on local host: s <- sleigh() # which is equivalent to: s <- sleigh(launch='local') # Create sleigh workers on multiple machines using SSH: s <- sleigh(nodeList=c('n1', 'n2', 'n3'), launch=sshcmd) # Use the LSF bsub command to launch ten workers: s <- sleigh(nodeList=rep('fake', 10), launch=lsfcmd) # Use web launch: s <- sleigh(launch='web') ## End(Not run)