Jeśli wywołać funkcję za pomocą parSapply
, wówczas instrukcje print
, message
lub cat
wewnątrz tej funkcji nie wydają się wyprowadzać na konsolę.Jak mogę `print` lub` cat` przy użyciu równoległego
Mój proces trwa bardzo długo, więc potrzebuję sposobu na zobaczenie postępu i uzyskanie wyników wyjściowych po ich wykonaniu. Czy są jakieś specjalne polecenia, które pozwolą mi drukować na konsoli z równoległego procesu?
Przykład:
library(parallel)
oneloop = function(x) {
for(i in 1:50) {
a = rnorm(100000)
a = sort(a)
}
print(x)
message(x)
cat(x)
}
cl <- makeCluster(5)
output = parSapply(cl, 1:10, oneloop)
stopCluster(cl)
Dzięki, zmieniono tak, aby uwzględnić tę – Corone
czy 'flush.console' ma jakiś efekt? –
@TylerRinker, fajny pomysł, ale nie, nie robi różnicy. Myślę, że wyjścia dla procesów roboczych nie mogą zostać przechwycone ... ... więc może być pytanie "czy możesz przekierować standardowe wyjście do głównego wyjścia", ale teraz spekuluję. – Corone