并行读取C结构中的HDF5单维复合数据集

时间:2011-08-19 09:05:21

标签: c parallel-processing mpi scientific-computing hdf5

我有一个非常简单的复合数据集,大约有100万行复合数据类型:

1长,3双。

我想使用集体调用与MPI并行阅读,同样分布在所有处理器上。

HDF5低级接口使用非常复杂,对于这样一个简单的数据集,我想知道我是否可以使用其中一个高级API,如Lite或Table。 文档中不清楚的是这些API是否支持MPI集体阅读。

有人可以使用HDF5 1.8将最简单的代码片段读取这个简单的数据集写入C结构吗?

我相信专家这应该是微不足道的,但对于初学者来说,HDF5(及其文档)的复杂性使其成为一项艰巨的任务。

感谢。

1 个答案:

答案 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);

本页末尾有一个很好的例子:

http://www.hdfgroup.org/Parallel_HDF/PHDF5/ph5design.html