# reductions: Arithmetic Reductions: Sums, Means, and Prods In pbdDMAT: 'pbdR' Distributed Matrix Methods

## Description

Arithmetic reductions for distributed matrices.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43``` ```rowMin(x, ...) rowMax(x, ...) colMin(x, ...) colMax(x, ...) ## S4 method for signature 'ddmatrix' rowSums(x, na.rm = FALSE) ## S4 method for signature 'ddmatrix' colSums(x, na.rm = FALSE) ## S4 method for signature 'ddmatrix' rowMeans(x, na.rm = FALSE) ## S4 method for signature 'ddmatrix' colMeans(x, na.rm = FALSE) ## S4 method for signature 'ddmatrix' rowMin(x, na.rm = FALSE) ## S4 method for signature 'matrix' rowMin(x, na.rm = FALSE) ## S4 method for signature 'ddmatrix' colMin(x, na.rm = FALSE) ## S4 method for signature 'matrix' colMin(x, na.rm = FALSE) ## S4 method for signature 'ddmatrix' rowMax(x, na.rm = FALSE) ## S4 method for signature 'matrix' rowMax(x, na.rm = FALSE) ## S4 method for signature 'ddmatrix' colMax(x, na.rm = FALSE) ## S4 method for signature 'matrix' colMin(x, na.rm = FALSE) ```

## Arguments

 `x` numeric distributed matrix `...` additional arguments `na.rm` logical. Should missing (including `NaN`) be removed?

## Details

Performs the reduction operation on a distributed matrix.

There are several legitimately new operations, including `rowMin()`, `rowMax()`, `colMin()`, and `colMax()`. These implementations are not really necessary in R because one can easily (and reasonably efficiently) do something like

`apply(X=x, MARGIN=1L, FUN=min, na.rm=TRUE)`

But `apply()` on a `ddmatrix` is very costly, and should be used sparingly.

`sd()` will compute the standard deviations of the columns, equivalent to calling `apply(x, MARGIN=2, FUN=sd)` (which will work for distributed matrices, by the way). However, this should be much faster and use less memory than `apply()`. If `reduce=FALSE` then the return is a distributed matrix consisting of one (global) row; otherwise, an `R` vector is returned, with ownership of this vector determined by `proc.dest`.

## Value

Returns a global numeric vector.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17``` ```## Not run: # Save code in a file "demo.r" and run with 2 processors by # > mpiexec -np 2 Rscript demo.r library(pbdDMAT, quiet = TRUE) init.grid() # don't do this in production code x <- matrix(1:9, 3) x <- as.ddmatrix(x) y <- sum(colMeans(x)) comm.print(y) finalize() ## End(Not run) ```

pbdDMAT documentation built on May 29, 2017, 1:23 p.m.