【问题标题】:file writing in mpi using python without race condition使用没有竞争条件的python在mpi中写入文件
【发布时间】:2014-10-12 14:02:53
【问题描述】:

我正在使用 mpi4py 为分布式应用程序建模,我希望所有进程都写入一个公共文件。是否有任何功能可以在没有竞争条件的情况下实现这一点?

【问题讨论】:

标签: python mpi mpi4py


【解决方案1】:

您应该查看使用 MPI I/O 的众多教程之一。我确信在 mpi4py 中可以使用它。

【讨论】:

  • 似乎有 MPI 的 I/O 教程,但 mpi4py 没有。
  • 当然。但是语义是一样的。只是 MPI 和 MPI4PY 之间的绑定发生了变化,对吗?
【解决方案2】:

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

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

只要你正确构建它,它就可以很好地与 mpi4py 配合使用

【讨论】:

    【解决方案3】:

    我遇到了类似的问题。对我来说,解决这个问题的最简单方法是让每个进程写入自己的文件,并包含时间戳。然后可以随后处理此文件以整理所有内容。

    例如,包括(python3-style)打印,如:

    print("进程 %d 刚刚在 %s 收到点 %r" % (rank, point,str(datetime.datetime.now())))

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

    【讨论】:

      猜你喜欢
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      • 2012-04-17
      • 2010-12-07
      • 2014-05-27
      • 2017-03-20
      相关资源
      最近更新 更多