Использование foreach и doMC, есть ли способ получить cat
и/или message
для печати на экране при параллельном запуске? Например:журналы печати с многоядерными
> library(foreach)
>
> tmp <- foreach(i=1:3) %do%
+ cat("sqrt(i) =", sqrt(i), "\n")
sqrt(i) = 1
sqrt(i) = 1.414214
sqrt(i) = 1.732051
>
> tmp <- foreach(i=1:3) %do%
+ message("i^2 =", i^2, "\n")
i^2 =1
i^2 =4
i^2 =9
>
> library(doMC)
> registerDoMC(2)
>
> tmp <- foreach(i=1:3) %dopar%
+ cat("sqrt(i) =", sqrt(i), "\n")
>
> tmp <- foreach(i=1:3) %dopar%
+ message("i^2 =", i^2, "\n")
>
> sessionInfo()
R Under development (unstable) (2014-01-29 r64898)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] parallel stats graphics grDevices utils datasets
[7] methods base
other attached packages:
[1] doMC_1.3.2 iterators_1.0.6 foreach_1.4.1
loaded via a namespace (and not attached):
[1] codetools_0.2-8 compiler_3.1.0 tools_3.1.0
Спасибо,
Max
Это решение, похоже, больше не работает с R 3.2.2 (2015-08-14), работающим на Mac OS X 10.10.5. –
@CraigW Вы видите вывод при выполнении 'x <- mclapply (1: 3, message, mc.cores = 3)'? Вы выполняете стандартный интерпретатор R из «Терминала»? –
Я забираю его обратно. Кажется, что вывод выводится при запуске R из терминала, но не из R.app GUI или RStudio. Есть ли способ заставить это решение работать в этих средах? –