Task Pull {pbdMPI}R Documentation

Functions for Task Pull Parallelism

Description

These functions are designed in SPMD but assuming rank 0 is a master and rests are workers.

Usage

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)

Arguments

jids

all job ids.

FUN

a function to be evaluated in workers.

...

extra variables for FUN.

rank.master

a rank of master where jid sent from.

comm

a communicator number.

bcast

if bcast to all ranks.

barrier

if barrier for all ranks.

try

if use try() to avoid breaks. CAUTION: try = FALSE is not safe and can stop all MPI/R jobs.

try.silent

if turn off the error message from try().

Details

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.

Value

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.

Author(s)

Wei-Chen Chen wccsnow@gmail.com, George Ostrouchov, Drew Schmidt, Pragneshkumar Patel, and Hao Yu.

References

Programming with Big Data in R Website: http://r-pbd.org/

See Also

get.jid().

Examples

## 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)

[Package pbdMPI version 0.3-1 Index]