使用doMPI写入日志文件

时间:2017-03-03 19:25:38

标签: r parallel-processing openmpi doparallel dompi

我在HPC上运行doMPI,我想记录工人的输出。使用doParallel,我能够使用makeCluster(outfile='myfile.log')。使用doMPI,在任何方法中似乎都没有outfile参数。我尝试使用sinkWorkerOutput()。这可行,但只为其中一个工作人员写了日志。我怀疑每个工人都在覆盖另一个工人。对于doMPI,是否存在outfile的模拟?

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

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

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

要将工作人员输出发送到doMPI包中的文件,请将startMPIcluster“详细”选项设置为TRUE

cl <- startMPIcluster(verbose=TRUE)

这会为每个工作人员创建一个文件,其名称格式为“MPI_1_steve_41747.log”。 MPI排名,用户名和进程ID用于使文件名唯一。您还可以通过“logdir”选项指定日志目录。

要获得工作人员编号,您只需拨打mpi.comm.rank功能。