Adds a progress bar to mclapply()
using echo
to output to the console in
Rstudio or Linux environments. Simply replace your original call to mclapply()
with pmclapply()
.
A progress bar can also be displayed with parallelisation via the foreach
package.
Also included are functions to safely print messages (including error messages) from within parallelised code. This can be very useful for debugging parallelised R code.
Install direct from Github.
devtools::install_github("myles-lewis/mcprogress")
# toy example
res <- pmclapply(letters[1:20], function(i) {
Sys.sleep(0.2 + runif(1) * 0.1)
setNames(rnorm(5), paste0(i, 1:5))
}, mc.cores = 2, title = "Working")
Working / |================================ | 60% eta 3.1 secs
Another example using the foreach
package with doMC
backend.
# Example from doMC vignette
library(doMC)
library(foreach)
registerDoMC(4)
x <- iris[which(iris[,5] != "setosa"), c(1,5)]
trials <- 10000
{
start <- Sys.time()
r <- foreach(i = seq_len(trials), .combine = cbind) %dopar% {
ind <- sample(100, 100, replace = TRUE)
result1 <- glm(x[ind, 2] ~ x[ind, 1], family = binomial(logit))
mcProgressBar(i, trials, cores = getDoParWorkers(), start = start)
coefficients(result1)
}
closeProgress(start)
}