2017-03-03 131 views
1

我在HPC上运行doMPI,我想记录来自工人的输出。使用doParallel,我可以使用makeCluster(outfile='myfile.log')。使用doMPI,在任何方法中似乎都不存在任何参数。我尝试使用sinkWorkerOutput()。这是有效的,但只为其中一名工作人员写了日志。我怀疑每个工人都在重写另一个工人。 outfile doMPI有模拟吗?使用doMPI写入日志文件

一个相关的问题 - 在一个工人内部,我能找到工人编号吗?

编辑:这是一个答案的链接讨论如何使用OUTFILE:在doMPIHow can I print when using %dopar%

感谢你的帮助,

+0

把'sink'或'cat'放进你的函数里怎么样? – Jav

回答

0

为了工人的产量发送到一个文件,设置startMPIcluster “详细” 选项TRUE

cl <- startMPIcluster(verbose=TRUE) 

这将创建一个文件p呃名字为“MPI_1_steve_41747.log”的工人。 MPI等级,用户名和进程ID用于使文件名唯一。您也可以通过“logdir”选项指定日志目录。

要获得工人编号,您可以简单地调用mpi.comm.rank函数。