0

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

1长,3双。

我想使用集体调用与 MPI 并行读取它,平均分布在所有处理器上。

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

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

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

谢谢。

4

1 回答 1

1

你找到 HDF5 并行 I/O 教程了吗?

http://www.hdfgroup.org/HDF5/Tutor/parallel.html

听起来您还需要学习如何构造 HDF5 数据类型:

http://www.hdfgroup.org/HDF5/Tutor/datatypes.html

为了进行平行的集体电话,您必须做一些事情。首先,您需要跨处理器分解数据集。一点算术可以为您提供所需的 start 和 count 参数。您需要使用 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

于 2011-11-08T16:26:51.990 回答