0

データセットは2次元グリッドです。リアルタイムソースからのグリッドの更新は非常に高い頻度で行われますが、このデータの処理には長い時間がかかります。

タイマーは、ダーティとマークされて処理が必要なセルについて、一定の時間にグリッドをサンプリングします。

処理を開始するためのオーバーヘッド、それを関数P()と呼ぶと、ブートストラップに非常に長い時間がかかります。Pは、スキャンラインなどの1次元配列を水平または垂直に取ることができます。

問題は、2Dグリッド上の任意のダーティビットのセットをスキャンラインに「チャンク」して、P()が呼び出される回数を最小限に抑えることができる効率的なアルゴリズムを設計する方法です。

4

1 に答える 1

0

プレフィックス合計アルゴリズムのバリエーションを調べて、ビットマップを並列にすばやくスキャンし、ダーティなブロックを分離し、それらのダーティブロックへのポインターをP()関数に渡すことができる新しい配列または「スキャンライン」にパックすることができます。

たとえば、並列スレッドを使用して、ダーティブロックの値が。1で非ダーティブロックの値が。である2D配列でプレフィックス合計を実行します0。プレフィックスの合計を実行すると、すべてのダーティブロックがから上向きにカウントされ1....Nます。ここで、一連の並列スレッドを使用して、番号付きのダーティブロックへのポインタを新しい「スキャンライン」配列にコピーまたは作成します...プレフィックス合計からの値は、各ダーティがスキャンライン配列内のスロットの基本ハッシュ値になりますブロックはから参照する必要があります。

于 2012-12-30T03:57:45.163 に答える