MPI I / O是如何实现的?

时间:2009-07-03 15:07:24

标签: mpi parallel-processing

啰嗦背景

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

我的问题是:

如何在幕后实施MPI I / O?每个进程是否实际写入某个其他节点上的单个文件,或者每个进程是否写入某个稀疏文件,当文件关闭时,这些稀疏文件将被拼接在一起?

了解这一点将有助于我决定是将I / O操作视为通信还是计算,并相应地调整余额......

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

罗斯

1 个答案:

答案 0 :(得分:3)

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

某些MPI使用第三方库来支持并行文件系统的I / O,这些细节可能是专有的。有些文件系统是本地光盘,有些则是光纤上的SAN或InfinBand。

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