[論文レビュー] A Parallel Batch-Dynamic Data Structure for the Closest Pair Problem
本稿では、メトリック空間における最近接ペア問題の理論的効率性と実用性を両立する並列バッチ動的データ構造を提示する。新規に設計された作業効率の良い並列バッチ動的二分ヒープと動的k-d木を活用し、高確率でO(m(1 + log((n + m)/m)))の期待作業量とO(log(n + m) log*(n + m))の深さを達成する。ハイパースレーディングを有効にした48コア環境で最大38.57倍の並列スループット向上を達成し、静的および動的設定の両方における並列最近接ペアアルゴリズムの初の実験的評価を実施した。
We propose a theoretically-efficient and practical parallel batch-dynamic data structure for the closest pair problem. Our solution is based on a serial dynamic closest pair data structure by Golin et al., and supports batches of insertions and deletions in parallel. For a data set of size $n$, our data structure supports a batch of insertions or deletions of size $m$ in $O(m(1+\log ((n+m)/m)))$ expected work and $O(\log (n+m)\log^*(n+m))$ depth with high probability, and takes linear space. The key techniques for achieving these bounds are a new work-efficient parallel batch-dynamic binary heap, and careful management of the computation across sets of points to minimize work and depth. We provide an optimized multicore implementation of our data structure using dynamic hash tables, parallel heaps, and dynamic $k$-d trees. Our experiments on a variety of synthetic and real-world data sets show that it achieves a parallel speedup of up to 38.57x (15.10x on average) on 48 cores with hyper-threading. In addition, we also implement and compare four parallel algorithms for static closest pair problem, for which we are not aware of any existing practical implementations. On 48 cores with hyper-threading, the static algorithms achieve up to 51.45x (29.42x on average) speedup, and Rabin's algorithm performs the best on average. Comparing our dynamic algorithm to the fastest static algorithm, we find that it is advantageous to use the dynamic algorithm for batch sizes of up to 20\% of the data set. As far as we know, our work is the first to experimentally evaluate parallel closest pair algorithms, in both the static and the dynamic settings.
研究の動機と目的
- メトリック空間における最近接ペア問題に対して、バッチ挿入および削除を効率的にサポートする並列バッチ動的データ構造を設計すること。
- 従来未解決であった理論的動的最近接ペアアルゴリズムと実用的並列実装の間のギャップを埋めること。
- 実世界および合成データセットを用いた静的および動的並列最近接ペアアルゴリズムの性能を評価すること。
- 動的アルゴリズムの性能を静的アルゴリズムと比較し、動的更新における最適なバッチサイズを同定すること。
提案手法
- Golinらの逐次的動的最近接ペアアルゴリズムを拡張し、新規に設計した作業効率の良い並列バッチ動的二分ヒープを用いて並列バッチ更新を実現する。
- バッチ更新中の最近接ペア関係を効率的に維持するため、スパarsely分割されたデータ構造を採用する。
- 複数のヒープを1つのヒープに統合することでオーバーヘッドを低減し、キャッシュ性能を向上させる。
- バッチ処理中の近隣探索を高速化するために動的k-d木を活用する。
- 動的ハッシュテーブル、並列ヒープ、最適化されたk-d木を用いて、マルチコアシステム上でアルゴリズムを実装する。
- 比較評価のため、分割統治法、Rabinの確率的アルゴリズム、スieve法、確率的インクリメンタル法の4つの静的最近接ペアアルゴリズムの並列化を実装する。
実験結果
リサーチクエスチョン
- RQ1並列バッチ動的最近接ペアデータ構造は、現代のマルチコアシステム上で理論的効率性と実用的性能の両方を達成できるか?
- RQ2提案された動的アルゴリズムの性能は、さまざまなバッチサイズにおいて静的並列アルゴリズムと比べてどのように異なるか?
- RQ3動的アルゴリズムが静的再計算を上回る最適なバッチサイズは何か?
- RQ4実際の性能において、4つの静的並列アルゴリズムの中で最も優れたものはどれであり、動的ソリューションと比べてどのように異なるか?
- RQ5作業量と深さを低減するため、新規に設計した並列バッチ動的二分ヒープを効果的に設計・適用できるか?
主な発見
- 提案された並列バッチ動的データ構造は、ハイパースレーディングを有効にした48コア環境で最大38.57倍のスループット向上を達成し、平均で15.10倍の向上を示した。
- 48コア環境で最大1.35 × 10^7件の挿入および1.06 × 10^7件の削除を1秒間に処理するスループットを達成した。
- 4つの静的並列アルゴリズムの中でRabinの確率的アルゴリズムが最も優れており、最大51.45倍のスループット向上を達成し、平均で29.42倍の向上を示した。
- バッチサイズがデータセットサイズの20%までであれば、動的アルゴリズムが最も速い静的アルゴリズムを上回った。
- 実際の実行において、理論的境界であるO(m(1 + log((n + m)/m)))の期待作業量とO(log(n + m) log*(n + m))の深さが高確率で達成された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。