2017-10-03 7 views
1

- :HDF5のブロックサイズは? <a href="https://support.hdfgroup.org/HDF5/doc/RM/RM_H5S.html#Dataspace-SelectHyperslab" rel="nofollow noreferrer">HDF5 Hyperslab doc</a>から引用

ブロックアレイは データ空間から選択された要素ブロックのサイズを決定します。

例はfollowing-に設定されたパラメータを有する2×2データセットで示す:

start offset is specified as [1,1], stride is [4,4], count is [3,7], and block is [2,2] 

21は2×2ブロックをもたらすであろう。選択肢が(1,1), (5,1), (9,1), (1,5), (5,5)の場合、開始点が(1,1)なので、ストライドは(4,4)であり、各次元で4を移動し、カウントは(3 、7)それはX方向に3回、Y方向に4回ずつ増加する。それに対応する寸法である。

ブロックサイズはどういう意味ですか?私は21の2x2次元ブロックを得ることを意味しますか?つまり、各ブロックには4つの要素、が含まれていますが、カウントは3次元で既に設定されているので、どのようにそれが可能ですか?

答えて

-2

HDFSのデフォルトブロックサイズは、私たちの要件に応じて増やすことができる64メガバイトです.1マッパーは一度に1ブロックずつ処理します。

+0

を行います。彼らはすべて一緒に別のものです。 –

0

H5Sselect_hypserslab()を使用して作成したハイパーグラフの選択では、繰り返しブロックの要素で定義された領域を作成できます。

これは、HDF5ユーザーガイドfound here(7.4.2.2に少し下をスクロール)のセクション7.4.2.2で説明されています。 H5Sselect_hyperslab()リファレンスマニュアルのエントリも参考になる場合があります。ここ

はUGからの図である。

  • =オフセット(0,1)
  • ストライド=(:

    enter image description here

    そして、ここでは、図に使用される値であります(3,2)

繰り返し単位が3x2要素ブロックであることに注意してください。だから、あなたはあなたのケースで21の2x2ブロックを得るでしょう。 1次元に3つのブロック、もう1つに7つのグリッドがあり、各方向に4つの要素が間隔を置いて配置されます。最初のブロックは1,1だけオフセットされます。

このAPI呼び出しで最も混乱するのは、3つのパラメータが要素を単位として持つのに対し、countはブロックを単位として持つことです。

編集:おそらくこれは私がHDFないHDFSについて取っています...ブロックとカウントがより明白に使用されているか

enter image description here

+0

次に、カウントとブロックの違いは何ですか? –

+0

データセットの格納を表す図の下側の領域(メモリを表し、数字を無視する上部を無視)を見ている場合、ブロック配列は(要素内の)単一のグレー領域のサイズを決定します。 count配列は、ブロックのコピーが各次元にいくつ存在するかを示します。 –

+0

私はこれをより明確にする新しい図を追加しました。 –

関連する問題