【问题标题】:MPI, NFS File WritingMPI、NFS 文件写入
【发布时间】:2013-06-04 04:00:27
【问题描述】:

我遇到了跨一组 Linux 节点运行的 MPI 程序的问题。该组当前使用 NFS 设置,在所有节点上都安装了 /home/mpi。问题是程序要求所有节点以写入模式打开文件系统中的文件(在 /home/mpi/file 上使用 fopen),并在计算时写入。一个节点将能够打开它,而其他节点将不会并且会抛出错误。相反,我希望每个节点都有自己的文件要写入。

我想知道是否有办法解决这个问题。我正在考虑为每个节点创建一个单独的文件,并将节点排名附加到文件名,但想知道是否有更简单的方法来解决这个问题。有没有办法设置组,以便所有工作节点都有自己的 /home/mpi 目录副本,主节点对其副本所做的任何更改都会自动更新?

谢谢。

【问题讨论】:

  • 在第一段中,您说每个进程都以写入模式打开文件。在第二个中,更改文件的是主节点,而其他列则使用更新。这看起来与前者不同。能否请您详细说明一下程序的 I/O 模式。

标签: mpi file-permissions nfs


【解决方案1】:

据我所知,标准的做事方式是每个节点打开一个文件,按您描述的等级索引。根据这些文件的用途(例如日志记录),您必须编写一个脚本在计算结束时重新组合它们。

如果您确实需要所有进程写入文件系统上的同一个文件,则必须以某种方式协调所有想要写入文件的进程的并发输出。

据我所知,无法在文件系统级别执行此操作,但您可以在 MPI 代码中执行此操作。标准的历史实现是让所有 MPI 进程将消息发送到 0 级,它负责有效地将它们写入文件系统。

另一种选择是查看 MPI2 中引入的 IO 功能,它允许所有进程处理同一文件的不同部分。

【讨论】:

  • 根据我的经验,MPI I/O 有一个陡峭的学习曲线——即你必须学习很多才能真正做任何事情——但从长远来看是值得的。跨度>
猜你喜欢
  • 2011-05-20
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
相关资源
最近更新 更多