我在用着doParallel
进行相当长的并行处理foreach
。我所看到的大多数示例都是将计算密集型但输入量小的代码输入到循环中,而是使用foreach
协调多个大型独立数据集的同时处理。因此,在循环内,我使用元数据从磁盘读入文件,对其进行操作,然后写回。
在我将此操作转换为 foreach 循环之前,我使用以下命令编写调试消息messages()
。但是,自从我改用foreach
and %dopar%
,我注意到循环“变暗”:它正在做它应该做的事情,但我没有收到任何输出。 (我应该提到这个循环被写入一个脚本中,我从 shell 中调用该脚本Rscript
.)
我猜这与以下事实有关doParallel
分拆其他线程——也许这些线程不再知道在哪里转储标准输出?想法?
如果您想从并行 foreach 循环输出,只需使用该选项outfile
: makeCluster(no_cores, outfile = "/path/to/log_file.txt")
.
请注意,所有工作人员的日志都写入同一个文件(按照它们到达的顺序)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)