我有一个非常简单的复合数据集,大约有100万行复合数据类型:
1长,3双。
我想使用集体调用与MPI并行阅读,同样分布在所有处理器上。
HDF5低级接口使用非常复杂,对于这样一个简单的数据集,我想知道我是否可以使用其中一个高级API,如Lite或Table。 文档中不清楚的是这些API是否支持MPI集体阅读。
有人可以使用HDF5 1.8将最简单的代码片段读取这个简单的数据集写入C结构吗?
我相信专家这应该是微不足道的,但对于初学者来说,HDF5(及其文档)的复杂性使其成为一项艰巨的任务。
感谢。
答案 0 :(得分:1)
您是否找到了HDF5并行I / O教程?
http://www.hdfgroup.org/HDF5/Tutor/parallel.html
听起来你还需要学习如何构建HDF5数据类型:
http://www.hdfgroup.org/HDF5/Tutor/datatypes.html
为了进行并行的集体呼叫,你必须做一些事情。首先,您需要在处理器之间分解数据集。一个小的算术为您提供了您需要的开始和计数参数。您需要使用HDF5属性列表启用并行I / O,这在并行I / O教程中有详细记录。没有充分记录的是启用集体I / O的标志:
xfer_plist = H5Pcreate (H5P_DATASET_XFER);
ret=H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE);
本页末尾有一个很好的例子: