Task Pull {pbdMPI} | R Documentation |
These functions are designed in SPMD but assuming rank 0 is a master and rests are workers.
task.pull(jids, FUN, ..., rank.master = .pbd_env$SPMD.CT$rank.root, comm = .pbd_env$SPMD.CT$comm, bcast = .pbd_env$SPMD.TP$bcast, barrier = .pbd_env$SPMD.TP$barrier, try = .pbd_env$SPMD.TP$try, try.silent = .pbd_env$SPMD.TP$try.silent) task.pull.workers(FUN = function(jid, ...){ return(jid) }, ..., rank.master = .pbd_env$SPMD.CT$rank.root, comm = .pbd_env$SPMD.CT$comm, try = .pbd_env$SPMD.TP$try, try.silent = .pbd_env$SPMD.TP$try.silent) task.pull.master(jids, rank.master = .pbd_env$SPMD.CT$rank.root, comm = .pbd_env$SPMD.CT$comm)
jids |
all job ids. |
FUN |
a function to be evaluated in workers. |
... |
extra variables for |
rank.master |
a rank of master where |
comm |
a communicator number. |
bcast |
if bcast to all ranks. |
barrier |
if barrier for all ranks. |
try |
if use |
try.silent |
if turn off the error message from |
All of these functions are for SPMD, NOT for master/workers.
FUN
is a user defined function which has jid
as
the first argument and other variables are given in ...
.
The jids
will be asked by workers when jobs are available and
workers are no job in hand.
A list with length comm.size() - 1
will be returned for mater, but NULL
for workers.
Each element of the list contains job id jid
and
returns ret
of the FUN
call.
Wei-Chen Chen wccsnow@gmail.com, George Ostrouchov, Drew Schmidt, Pragneshkumar Patel, and Hao Yu.
Programming with Big Data in R Website: http://r-pbd.org/
get.jid()
.
## Not run: ### Under command mode, run the demo with 4 processors by ### (Use Rscript.exe for windows system) mpiexec -np 4 Rscript -e "demo(task_pull,'pbdMPI',ask=F,echo=F)" ## End(Not run)