我在HPC上运行doMPI,我想记录工人的输出。使用doParallel,我能够使用makeCluster(outfile='myfile.log')
。使用doMPI,在任何方法中似乎都没有outfile
参数。我尝试使用sinkWorkerOutput()
。这可行,但只为其中一个工作人员写了日志。我怀疑每个工人都在覆盖另一个工人。对于doMPI,是否存在outfile
的模拟?
一个相关问题 - 在工人内部,我可以找到工人编号吗?
编辑:这是一个答案的链接,讨论如何使用outfile:How can I print when using %dopar%
感谢您的帮助,
本
答案 0 :(得分:0)
要将工作人员输出发送到doMPI
包中的文件,请将startMPIcluster
“详细”选项设置为TRUE
:
cl <- startMPIcluster(verbose=TRUE)
这会为每个工作人员创建一个文件,其名称格式为“MPI_1_steve_41747.log”。 MPI排名,用户名和进程ID用于使文件名唯一。您还可以通过“logdir”选项指定日志目录。
要获得工作人员编号,您只需拨打mpi.comm.rank
功能。