我有一个可以简单并行化的应用程序,但它的性能在很大程度上受 I/O 限制。应用程序读取存储在文件中的单个输入数组,该文件的大小通常为 2-5 GB(但我预计这个数字将来会增长)。典型的计算将相同的操作应用于该数组的每一行或每一列。对于 CPU 密集型操作,我可以很好地扩展到大约 100 个处理器,但对于较慢的操作,I/O 和相关通信(NFS 访问)占主导地位,我不能有效地使用多个处理器。
在这种情况下,什么是高效和便携(理想情况下是便携高效)的选择?并行 HDF5 似乎很有希望。有没有人有它的真实经历?
MPI-I/O 是否值得研究?它可以有效地使用给定的文件布局,还是我必须调整所有内容?