在上一篇中我们介绍了 mpi4py 中的共享文件指针 I/O 操作,下面我们将介绍 mpi4py 中 I/O 相关的 hints。
MPI 允许用户为 MPI 实现传递一些 hints。对 I/O 操作,这是通过一些 I/O 操作方法的 info
参数来进行传递的,这些方法包括 MPI.File.Open,MPI.File.Set_view,MPI.File.Set_info,MPI.File.Delete 等。默认情况下,这些方法的 info
参数都为 MPI.INFO_NULL,表示用户不传递任何 hints 给 MPI 实现。当需要传递一些 hints 时,可通过 MPI.Info 对象为文件指定一些如文件访问模式、文件系统相关的附加信息(即与 I/O 相关的 hints),并利用这些信息优化 I/O 访问性能,减少系统资源占用等。MPI 实现可以选择忽略某些或所有用户传递的 hints 而不会影响程序的正确性。需要注意的是,通过 MPI.Info 对象设置的 hints 的键和值都是字符串。
I/O 相关 hints 方法
MPI.File.Set_info(self, Info info)
通过 MPI.Info 对象向 MPI 实现传递 I/O 相关的 hints。
MPI.File.Get_info(self)
获取当前文件正在使用的 hints,返回值是一个 MPI.Info 对象。
MPI 预留的 I/O 相关 hints
下表列出了 MPI 预留的 I/O 相关的 hints,这些 hints 主要影响并行文件的访问模式,指导文件在 I/O 设备上的布局。
名称 | 类型 | 一致性 | 说明 |
---|---|---|---|
access_style | 逗号分隔的字符串 | 否 | 指出文件访问方式,可能的取值有:read_once,write-once,read_mostly,write_mostly |