R: Extentions of MPI_Gather and MPI_Allgather APIs
mpi.gather.Robj
R Documentation
Extentions of MPI_Gather and MPI_Allgather APIs
Description
mpi.gather.Robj gathers each member's object to the member
specified by the argument root.
The root member receives the objects as a list.
mpi.allgather.Robj is the same as mpi.gather.Robj
except that all members receive the result instead of just the root.
Usage
mpi.gather.Robj(obj=NULL, root = 0, comm = 1, ...)
mpi.allgather.Robj(obj=NULL, comm = 1)
Arguments
obj
data to be gathered. Could be different type.
root
rank of the gather
comm
a communicator number
...
optional arugments to sapply.
Details
Since sapply is used to gather all results, its default option
"simplify=TRUE" is to simplify outputs. In some situations, this option
is not desirable. Using "simplify=FALSE" as in the place of ... will tell
sapply not to simplify and a list of outputs will be returned.
Value
For mpi.gather.Robj, it returns a list, the gathered message
for the root member. For
mpi.allgatherv.Robj, it returns a list, the gathered message
for all members.
#Assume that there are some slaves running
mpi.bcast.cmd(id<-mpi.comm.rank())
mpi.bcast.cmd(x<-rnorm(id))
mpi.bcast.cmd(mpi.gather.Robj(x))
x<-"test mpi.gather.Robj"
mpi.gather.Robj(x)
mpi.bcast.cmd(obj<-rnorm(id+10))
mpi.bcast.cmd(nn<-mpi.allgather.Robj(obj))
obj<-rnorm(5)
mpi.allgather.Robj(obj)
mpi.remote.exec(nn)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(Rmpi)
Error in library(Rmpi) : there is no package called 'Rmpi'
Execution halted