在Python中使用MPI进行文件写入而不产生竞争条件
我正在使用mpi4py来模拟一个分布式应用程序,我希望所有的进程都能写入一个公共文件。有没有什么函数可以做到这一点,而不会出现竞争条件呢?
3 个回答
0
我遇到过类似的问题。对我来说,最简单的解决办法就是让每个进程把自己的信息写到各自的文件里,并加上时间戳。这样,之后再处理这些文件,就能把所有内容整理得井井有条。
比如,可以在代码里加上这样的打印语句:
print("进程 %d 刚刚在 %s 收到了点 %r" % (rank, point, str(datetime.datetime.now())))
记得在代码最上面引入 datetime 模块。因为 mpi4py 在处理输入输出时有些特别,所以让每个进程自己管理输出是最稳妥的办法。
0
0
你可以去看看网上很多关于使用MPI I/O的教程。我相信在mpi4py中也有一些方法可以使用它。