我正在使用mpi4py为分布式应用程序建模,我希望所有进程都写入一个公共文件。是否有任何功能允许没有竞争条件?
答案 0 :(得分:0)
您应该查看其中一个使用MPI I / O的教程。我确定有一些方法可以在mpi4py中使用它。
答案 1 :(得分:0)
答案 2 :(得分:0)
我有类似的问题。对我来说,解决这个问题最简单的方法是让每个进程写出自己的文件,并包含一个时间戳。然后可以处理此文件以使所有内容按顺序排列。
例如,include(python3-style)打印如下:
打印("处理%d刚刚在%s&#34处获得了点%r;%(rank,point,str(datetime.datetime.now()))
只需将日期时间包含在顶部即可。 mpi4py似乎以一种有趣的方式缓冲了它的一些I / O,因此每个进程保持自己的输出是最强大的解决方案。