### Save code in a file "demo.r" and run with 2 processors by
### SHELL> mpiexec -np 2 Rscript demo.r
### Initial.
library(pbdMPI, quietly = TRUE)
init()
.comm.size <- comm.size()
.comm.rank <- comm.rank()
if(.comm.size < 2)
comm.stop("At least two processors are requried.")
### Examples.
if(.comm.rank != 0){
send(as.integer(.comm.rank * 10), rank.dest = 0L,
tag = as.integer(.comm.rank + 10))
}
if(.comm.rank == 0){
for(i in 1:(.comm.size - 1)){
ret <- recv(x.buffer = integer(1),
rank.source = anysource(), tag = anytag())
sourcetag <- get.sourcetag()
print(c(sourcetag, ret))
}
}
### Finish.
finalize()
Run the code above in your browser using DataLab