如果我使用 parSapply
调用函数,则该函数内的 print
、message
或 cat
语句不会t 似乎输出到控制台。
我的过程需要很长时间,因此我需要某种方式来查看进度并在完成时获取结果输出。是否有任何特殊命令允许我从并行进程打印到控制台?
示例:
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 计算机上对我不起作用。文件输出适用于两者。
关于r - 使用并行时如何 `print`或 `cat`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717461/