[英]How can I `print` or `cat` when using parallel
如果我使用parSapply
调用函数,则该函数中的print
, message
或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)
在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.