eachWorker executes function
fun once on each worker in
the specified sleigh, and returns the results in a list. This can be
useful for initializing each of the workers before starting to execute
eachElem. Loading packages using the
library function, loading data sets using the
function, and assigning variables in the global environment are common
sleigh class object.
the function to be evaluated by each of the sleigh workers.
In the case of functions like
optional arguments to
additional options, see details
eo argument is a list that can be used to specify various options.
The current options are:
eo$blocking option is used to indicate whether to wait for the
results, or to return as soon as the tasks have been submitted. If
eachWorker will return a
object that is used to monitor the status of the tasks, and to
eventually retrieve the results. You must wait for the results to be
complete before executing any further tasks on the sleigh, or an
exception will be raised. The default value is
eo$accumulator option can be used to specify a function
that will receive the results of the task execution. Note that while
this can be a very useful feature with
eachElem, it's not
commonly used with
eachWorker, but is included for consistency.
The first argument to
eo$accumulator function is a list of
results, where the length of the list is always equal to 1 (because
there is no
eo$chunkSize option in
eachWorker). The second
argument is a vector of task numbers, starting from 1, where the
length of the vector is also always equal to 1. The task numbers are
not very important when used with
eachWorker, because the order
of tasks isn't specified, as it is with
eachElem. Note that
eo$accumulator is specified,
NULL, not the list of results, since
eachWorker doesn't save
any of the results after passing them to the
DEBUG argument is used call the
eachWorker. The default value is
eo$blocking option can be very useful for starting a
function on each of the workers, and then allowing the master process
to interact with the workers via NetWorkSpace operations in order to
implement sophisticated parallel applications.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
## Not run: # create a sleigh s <- sleigh() # assign to global variable x on each worker eachWorker(s, function() x <<- 1) # get a listing of each worker's global environment eachWorker(s, function() ls(globalenv())) # get system info from each worker eachWorker(s, Sys.info) # load MASS package on each worker eachWorker(s, function() library(MASS)) # non-blocking example using simple NWS operations sp <- eachWorker(s, function() nwsFind(SleighNws, 'hello'), eo=list(blocking=FALSE)) nwsStore(s@nws, 'hello', 'world') waitSleigh(sp) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.