2011-08-19 36 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