inst/examples/test_spmd/allreduce.r

### SHELL> mpiexec -np 2 Rscript --vanilla [...].r

suppressMessages(library(pbdMPI, quietly = TRUE))
.comm.size <- comm.size()
.comm.rank <- comm.rank()

N <- 5
x <- (1:N) + N * .comm.rank

y <- allreduce(matrix(as.integer(x), nrow = 1), op = "sum")
comm.print(y)
y <- allreduce(matrix(as.double(x), nrow = 1), op = "sum")
comm.print(y)

y <- allreduce(as.integer(x), op = "sum")
comm.print(y)
y <- allreduce(as.double(x), op = "sum")
comm.print(y)

y <- allreduce(as.integer(x), op = "prod")
comm.print(y)
y <- allreduce(as.double(x), op = "prod")
comm.print(y)

y <- allreduce(as.integer(x), op = "max")
comm.print(y)
y <- allreduce(as.double(x), op = "max")
comm.print(y)

y <- allreduce(as.integer(x), op = "min")
comm.print(y)
y <- allreduce(as.double(x), op = "min")
comm.print(y)

finalize()

Try the pbdMPI package in your browser

Any scripts or data that you put into this service are public.

pbdMPI documentation built on Sept. 18, 2024, 9:07 a.m.