【发布时间】:2011-03-29 12:35:11
【问题描述】:
我已经开始使用 R 的 doMC 包作为并行化 plyr 例程的并行后端。
并行化本身似乎工作正常(尽管我还没有正确地对加速进行基准测试),但我的问题是日志记录现在是异步的,并且来自不同内核的消息混合在一起。我可以为每个核心创建不同的日志文件,但我认为我更简洁的解决方案是简单地为每个核心添加不同的标签。我目前正在使用log4r 包来满足我的日志记录需求。
我记得在使用 MPI 时,每个处理器都有一个等级,这是一种区分每个进程的方法,那么有没有办法用 doMC 做到这一点?我确实有提取 PID 的想法,但这看起来确实很混乱,并且每次迭代都会改变。
不过,我对想法持开放态度,因此欢迎提出任何建议。
编辑(2011-04-08):根据一个答案的建议,我仍然存在正确识别我当前所在的子进程的问题,因为我需要单独关闭每个log() 调用,以便它写入正确的文件,或者我将有一个log() 函数,但它内部有一些逻辑来确定要附加到哪个日志文件。在这两种情况下,我仍然需要某种方式来标记当前子流程,但我不确定如何做到这一点。
在 MPI 库中是否有与 mpi_rank() 函数等效的函数?
【问题讨论】: