繁体   English   中英

使用并行时如何“打印”或“猫”

[英]How can I `print` or `cat` when using parallel

如果我使用parSapply调用函数,则该函数中的printmessagecat语句似乎不会输出到控制台。

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

例:

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)

makeCluster使用outfile参数,可以将输出重定向到文件,然后检查该文件以查看程序的进度。

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

我在带有doParallel软件包版本1.0.8的Windows上使用outfile使用makeCluster 我能够尾outfile使用一个简单的PowerShell命令powershell Get-Content c:/path/to/log/mylog.txt -wait 为我工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM