49

parSapply如果我使用then调用函数printmessage或者cat该函数中的语句似乎不会输出到控制台。

我的过程需要很长时间,所以我需要某种方式来查看进度并在完成后获得结果输出。是否有任何特殊命令可以让我从并行进程打印到控制台?

例子:

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)
4

2 回答 2

47

使用outfileparam inmakeCluster您可以将输出重定向到文件,然后检查该文件以查看程序的进度。

有趣的是,在 Linux 机器上将其设置为""输出到控制台,但这对我在 Windows 机器上不起作用。文件输出适用于两者。

于 2013-05-23T15:31:41.300 回答
4

我在 Windows 上使用makeCluster带有outfiledoParallel 包版本 1.0.8 的 with。我可以outfile使用简单的 Powershell 命令进行跟踪powershell Get-Content c:/path/to/log/mylog.txt -wait。为我工作。

于 2015-01-29T19:11:02.490 回答