[R] foreach + dopar: how to check progress of parallel computations?

Marius Hofert m_hofert at web.de
Tue Dec 28 10:57:21 CET 2010


Dear expeRts,

I use foreach to do parallel computations. Is it possible to have some progress output written while the computations are done? In the minimal example below, I just print a number ("n") to check the progress. If you run this example with "%do%" instead of "%dopar%", then the computations are done sequentially and the number n is printed to the console. I am looking for something similar but with %dopar%. In the minimal example you can see that n is not written to the console if the computations are done in parallel. How [with which construction] can I check the progress?

Cheers,

Marius 

## load packages
library(doSNOW)
library(Rmpi)
library(foreach)

## parameters
param.1 <- 1:2 #c("a1", "b1")
param.2 <- 1:4 #c("a2", "b2", "c2", "d2")

## setup cluster
cl <- makeCluster(mpi.universe.size(), type ="MPI")
registerDoSNOW(cl)

## main work
n <- 1
res <- foreach(p1 = param.1) %:% foreach(p2 = param.2) %dopar% {
	print(n)
	p1 * p2
	n <- n + 1
}

stopCluster(cl) # stop cluster

res # result


More information about the R-help mailing list