¿Cómo mostrar el progreso del código en cómputo paralelo en R?
Ahora estoy tratando con un gran conjunto de datos y algunas funciones pueden tardar horas en procesarse. Me pregunto cómo puedo mostrar el progreso del código a través de una barra o número de progreso (1,2,3, ..., 100). Y quiero almacenar el resultado como un marco de datos con dos columnas. Aquí hay un ejemplo. Gracias.
require(foreach)
require(doParallel)
require(Kendall)
cores=detectCores()
cl <- makeCluster(cores-1)
registerDoParallel(cl)
mydata=matrix(rnorm(8000*500),ncol = 500)
result=as.data.frame(matrix(nrow = 8000,ncol = 2))
pb <- txtProgressBar(min = 1, max = 8000, style = 3)
foreach(i=1:8000,.packages = "Kendall",.combine = rbind) %dopar%
{
abc=MannKendall(mydata[i,])
result[i,1]=abc$tau
result[i,2]=abc$sl
setTxtProgressBar(pb, i)
}
close(pb)
stopCluster(cl)
Sin embargo, cuando ejecuto el código, no vi ninguna barra de progreso y el resultado no es correcto. ¿Hay alguna sugerencia? Gracias.