reduce-method {pbdMPI} | R Documentation |
This method lets a rank receive a reduction of objects from every rank in the same communicator based on a given operation. The default return is an object as the input.
reduce(x, x.buffer = NULL, op = .pbd_env$SPMD.CT$op, rank.dest = .pbd_env$SPMD.CT$rank.source, comm = .pbd_env$SPMD.CT$comm)
x |
an object to be gathered from all ranks. |
x.buffer |
a buffer to hold the return object which probably has
|
op |
a reduction operation applied on combine all |
rank.dest |
a rank of destination where all |
comm |
a communicator number. |
By default, the object is reduced to .pbd_env$SPMD.CT$rank.source
,
i.e. rank 0L.
All x
on all ranks are likely presumed to have the same size and type.
x.buffer
can be NULL
or unspecified. If specified, the type
should be either integer or double specified correctly according to the
type of x
.
The reduced object of the same type as x
is returned by default.
For calling spmd.reduce.*()
:
signature(x = "ANY", x.buffer = "missing")
signature(x = "integer", x.buffer = "integer")
signature(x = "numeric", x.buffer = "numeric")
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/
allgather()
, gather()
, reduce()
.
## Not run: ### Save code in a file "demo.r" and run with 2 processors by ### SHELL> mpiexec -np 2 Rscript demo.r ### Initial. suppressMessages(library(pbdMPI, quietly = TRUE)) init() .comm.size <- comm.size() .comm.rank <- comm.rank() ### Examples. N <- 5 x <- (1:N) + N * .comm.rank y <- reduce(matrix(x, nrow = 1), op = "sum") comm.print(y) y <- reduce(x, double(N), op = "prod") comm.print(y) ### Finish. finalize() ## End(Not run)