我使用doParallel与foreach进行相当长的并行处理。与我看到的大多数例子不同,在循环中输入了计算密集型但输入光的代码,我使用foreach来协调大量独立的大型数据集的同时处理。因此,在循环中,我使用元数据从磁盘读取文件,对其进行操作,然后将其写出来。
在将此操作转换为foreach循环之前,我正在使用messages()编写调试消息。然而,由于我已经切换到使用foreach和%dopar%,我注意到循环“变暗了”:它正在做它应该做的事情,但是我没有收到任何输出。(我应该提到,这个循环被写进了我用Rscript从shell调用的脚本中。)
我猜想这与doParallel从其他线程派生出来这一事实有关--也许那些线程不再知道在哪里转储标准输出?有什么想法?
发布于 2017-07-13 07:25:23
如果您想要从并行foreach循环中输出,只需使用选项outfile:makeCluster(no_cores, outfile = "")。
https://stackoverflow.com/questions/45070987
复制相似问题