3

冗长的背景

我正在为心脏电生理学模拟并行化一些代码。由于用户可以使用内置的脚本语言指定他们自己的模拟,我无法知道如何管理通信与计算的权衡。为了解决这个问题,我正在制作一种运行时分析器,一旦看到要运行的模拟和它必须使用的硬件环境,它将决定如何处理域分解。

我的问题是这样的:

MPI I/O 是如何在幕后实现的?每个进程实际上是在写入某个其他节点上的单个文件,还是每个进程都写入某个稀疏文件,当文件关闭时,这些文件会重新拼接在一起?

了解这一点将帮助我决定是否将 I/O 操作视为通信或计算,并相应地调整平衡……</p>

提前感谢您提供的任何见解。

罗斯

4

1 回答 1

3

I/O 的机制取决于实现。此外,没有单一的 I/O 样式。一些 I/O 被远程队列缓存,并在运行结束时由 mpirun 进程收集。一些 I/O 会根据需要写入本地暂存空间。一些 I/O 被写入 NAS/SAN 风格的高性能共享文件系统。

一些 MPI 使用 3rd 方库来支持并行文件系统的 I/O,这些细节可能是专有的。一些文件系统是本地磁盘,其他文件系统是光纤 SAN 或 InfinBand。

您打算如何实际测量花费在 I/O 上的时间?您是否打算使用 pMPI 接口来拦截所有对库的调用?

于 2009-07-03T16:51:22.287 回答