O pacote de progresso também é adequado para o pacote doMC?
Ou o pacote paralelo? Se não, marque com +1 para este recurso.
Não tenho certeza do que seria necessário para implementar isso, para ser honesto. Por exemplo, para paralelo, seria necessário um paralelo para comunicar de volta quanto do trabalho já foi feito. É mesmo possível?
@gaborcsardi Fiz algumas pesquisas e o seguinte foi o que encontrei:
library("foreach")
library("doParallel")
library("progress")
registerDoParallel(parallel::makeCluster(7, outfile = ""))
pb <- progress_bar$new(
format = " [:bar] :percent in :elapsed",
total = 30, clear = FALSE, width = 80, force = T)
a <- foreach (i = 1:30) %dopar% {
pb$tick()
Sys.sleep(0.5)
}
pb <- txtProgressBar(title = "Iterative training", min = 0, max = 30, style = 3)
foreach (i = 1:30) %dopar% {
setTxtProgressBar(pb, i)
Sys.sleep(0.5)
}
stopCluster(cl)
O txtProgressBar
só funciona quando o tipo é 2 ou 3. De acordo com o manual da função:
style = 1 e style = 2 mostra apenas uma linha de char. Eles diferem porque o estilo = 2 redesenha a linha a cada vez, o que é útil se outro código estiver sendo escrito no console R. style = 3 marca o fim do intervalo por | e dá uma porcentagem à direita da barra.
Acho que a razão de txtProgressBar
funcionar é porque outfile = ""
existe ao fazer o cluster.
Acho que imitar o que txtProgressBar
faz para o estilo 2 resolveria isso.
Comentários muito úteis
Ou o pacote paralelo? Se não, marque com +1 para este recurso.