0

非常に単純な複合データセットがあり、約100万行の複合データ型があります。

ロング1つ、ダブル3つ。

すべてのプロセッサに均等に分散された集合呼び出しを使用して、MPIと並行して読みたいと思います。

HDF5の低レベルのインターフェースは使用が非常に複雑であり、そのような単純なデータセットの場合、LiteやTableなどの高レベルのAPIの1つを使用できるかどうか疑問に思います。ドキュメントから明らかでないのは、これらのAPIがMPI一括読み取りをサポートしているかどうかです。

誰かがHDF51.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

並行して集合呼び出しを行うには、いくつかのことを行う必要があります。まず、プロセッサ間でデータセットを分解する必要があります。少し算術的に、必要な開始パラメーターとカウントパラメーターが得られます。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 に答える