Jak Mogę "wydrukować" lub " kot` przy użyciu parallel
If I call a function using parSapply
then print
, message
lub cat
instrukcje wewnątrz tej funkcji nie wydają się wysyłać do konsoli.
Mój proces trwa bardzo długo, więc potrzebuję jakiegoś sposobu, aby zobaczyć postępy i uzyskać wyniki wyjściowe, jak są one zrobione. Czy są jakieś specjalne polecenia, które pozwoliłyby 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)
2 answers
Używając outfile
param in makeCluster
Możesz przekierować wyjście do pliku, a następnie sprawdzić ten plik, aby zobaczyć, jak postępuje Twój program.
Co ciekawe na komputerze z Linuksem ustawiając go na ""
wyjście na konsolę, ale to mi nie działa na komputerze z Windows. Wyjście pliku działa na obu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-23 15:37:01
Używam makeCluster
z outfile
w systemie Windows z doParallel package w wersji 1.0.8. Jestem w stanie śledzić outfile
za pomocą prostego polecenia Powershell powershell Get-Content c:/path/to/log/mylog.txt -wait
. Mi pasuje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-29 19:11:02