2011-08-19 73 views
0

我有一个很简单的化合物的数据集,约1百万行的化合物的数据类型:用C结构读HDF5单维数据集化合物并联

1长,3个双打。

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

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

可能有人写简单代码片段,可以阅读这个简单的数据集中到使用HDF5 1.8 C结构?

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

谢谢。

回答

1

你发现了HDF5并行I/O教程吗?

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

听起来像是你还需要学习如何构建HDF5数据类型:

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

为了做你必须做一些事情并行集体呼吁。首先,您需要在处理器之间分解数据集。有点算术给你开始和计数你需要的参数。您需要启用并行I/O和HDF5属性列表,这在并行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