base.redist: base.redist

Description Usage Arguments Value Examples

View source: R/redist.r

Description

Redistribute a matrix from rank 0 to all ranks in block cyclic fashion.

Usage

1
base.redist(desc, A)

Arguments

desc

ScaLAPACK descriptor array.

A

Matrix.

Value

A block cyclic matrix of the input matrix A from rank 0.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
spmd.code <- "
  suppressMessages(library(pbdMPI))
  suppressMessages(library(pbdBASE))
  init.grid()

  ### Set data matrix A and desc.
  A <- matrix(as.double(1:30), nrow = 6, ncol = 5)
  if (comm.rank() != 0)
    A <- matrix(as.double(0), nrow = 6, ncol = 5)
  dim <- dim(A)
  bldim <- c(3L, 3L)
  ldim <- base.numroc(dim = dim, bldim = bldim)
  desc <- base.descinit(dim = dim, bldim = bldim, ldim = ldim)

  ### Redistribute from rank 0.
  dA <- base.redist(desc, A)
  comm.print(dA, all.rank = TRUE)

  finalize()
"
pbdMPI::execmpi(spmd.code = spmd.code, nranks = 2L)

pbdBASE documentation built on March 26, 2020, 9:37 p.m.