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