提问人:Corvus 提问时间:5/23/2013 最后编辑:Corvus 更新时间:1/30/2015 访问量:14142
使用并行时如何“打印”或“猫”
How can I `print` or `cat` when using parallel
问:
如果我使用 then 调用一个函数,或者该函数中的语句似乎不会输出到控制台。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)
答:
50赞
eddi
5/23/2013
#1
使用 param in,您可以将输出重定向到文件,然后检查该文件以查看程序的进展情况。outfile
makeCluster
有趣的是,在 Linux 机器上将其设置为输出到控制台,但这在 Windows 机器上对我不起作用。文件输出适用于两者。""
评论
0赞
Steve Weston
10/13/2013
outfile=""
在带有 Rgui 的 Windows 上不起作用,但在 Rterm 上可以。
4赞
MichaelChirico
5/4/2016
奇怪的是,这记录得如此之少。我不得不仔细研究源代码 15 分钟,然后才能找到正在执行的操作(基本上被添加到发送到终端的命令中)。发送到终端与 是一致的,例如,,,它把连接表示outfile
OUT=
outfile
""
write.table
""
stdout
0赞
JMT2080AD
12/15/2017
使用设置打印到终端对我在 Windows 中使用 emacs 和 ESS 有用。outfile = ""
4赞
Daisuke Aramaki
1/30/2015
#2
我在 Windows 上使用 doParallel 包版本 1.0.8。我可以使用简单的 Powershell 命令进行尾部。对我有用。makeCluster
outfile
outfile
powershell Get-Content c:/path/to/log/mylog.txt -wait
评论
flush.console