使用没有竞争条件的python在mpi中写入文件

时间:2014-08-19 12:53:28

标签: python mpi mpi4py

我正在使用mpi4py为分布式应用程序建模,我希望所有进程都写入一个公共文件。是否有任何功能允许没有竞争条件?

3 个答案:

答案 0 :(得分:0)

您应该查看其中一个使用MPI I / O的教程。我确定有一些方法可以在mpi4py中使用它。

答案 1 :(得分:0)

可能值得一看h5py的并行实现

http://docs.h5py.org/en/latest/mpi.html

只要你正确构建它,它就能很好地适用于mpi4py

答案 2 :(得分:0)

我有类似的问题。对我来说,解决这个问题最简单的方法是让每个进程写出自己的文件,并包含一个时间戳。然后可以处理此文件以使所有内容按顺序排列。

例如,include(python3-style)打印如下:

打印("处理%d刚刚在%s&#34处获得了点%r;%(rank,point,str(datetime.datetime.now()))

只需将日期时间包含在顶部即可。 mpi4py似乎以一种有趣的方式缓冲了它的一些I / O,因此每个进程保持自己的输出是最强大的解决方案。