Skip to main content
QUICK REVIEW

[論文レビュー] Merge Path - A Visually Intuitive Approach to Parallel Merging

Oded Green, Saher Odeh|arXiv (Cornell University)|Jun 10, 2014
Parallel Computing and Optimization Techniques参考文献 13被引用数 10
ひとこと要約

この論文では、マージ処理をグリッド上のパスとしてモデル化することで、2つのソート済み配列の並列マージを視覚的に直感的に行うための Merge Path アルゴリズムを紹介する。このアプローチにより、負荷分散が行われ、同期が不要で、キャッシュ効率も高い並列マージが実現される。共有メモリシステムにおいてはニアーライニアスループットを達成し、特に Plurality の HyperCore のようなアーキテクチャにおいて、キャッシュに配慮した効率的なソーティングが可能になる。

ABSTRACT

Merging two sorted arrays is a prominent building block for sorting and other functions. Its efficient parallelization requires balancing the load among compute cores, minimizing the extra work brought about by parallelization, and minimizing inter-thread synchronization requirements. Efficient use of memory is also important. We present a novel, visually intuitive approach to partitioning two input sorted arrays into pairs of contiguous sequences of elements, one from each array, such that 1) each pair comprises any desired total number of elements, and 2) the elements of each pair form a contiguous sequence in the output merged sorted array. While the resulting partition and the computational complexity are similar to those of certain previous algorithms, our approach is different, extremely intuitive, and offers interesting insights. Based on this, we present a synchronization-free, cache-efficient merging (and sorting) algorithm. While we use a shared memory architecture as the basis, our algorithm is easily adaptable to additional architectures. In fact, our approach is even relevant to cache-efficient sequential sorting. The algorithms are presented, along with important cache-related insights.

研究の動機と目的

  • 共有メモリアーキテクチャにおいて、2つのソート済み配列のマージを効率的かつ正しく並列化する課題に対処すること。
  • 並列マージ演算における負荷の不均衡、スレッド間同期、メモリオーバーヘッドを最小限に抑えること。
  • 高性能ソーティングにおけるメモリアクセスのボトルネックを低減するキャッシュ効率の高いマージアルゴリズムを開発すること。
  • 幾何的パストラバーサルに基づく直感的な入力配列の分割を活用して、効率的な並列ソーティングを実現すること。
  • 最新の並列アーキテクチャ(特に大規模コア数と共有キャッシュを備えたもの)における適用可能性と性能向上を示すこと。

提案手法

  • マージ処理を、左上から右下へのグリッド上のパスとしてモデル化し、各ステップで2つの入力配列の一方から要素を選択する。
  • Merge Path を用いて2つの入力配列を連続するセグメントに分割し、対応するペアをマージすることで正しいソート済み出力を得られるようにする。
  • クロスダイアゴナルにおける二分探索を用いて、Merge Path 沿いのパーティションポイントの計算を並列化し、コア間での負荷分散を保証する。
  • ロックフリーで同期なしのアルゴリズムを設計し、プライベートキャッシュおよび共有キャッシュアーキテクチャの両方で、フェイクシェアイングを回避し、高いキャッシュ効率を維持する。
  • 直接マップドキャッシュにおけるキャッシュ衝突を低減するため、セグメント化されたバージョンにアルゴリズムを拡張する。
  • タスクベースプログラミングモデルを介して、PRAM や Plurality の HyperCore などの最新のマルチコアシステムを含む、さまざまなアーキテクチャにアルゴリズムを適応させる。

実験結果

リサーチクエスチョン

  • RQ12つのソート済み配列をどのようにセグメントに分割すれば、対応するペアをマージすることで正しい1つのソート済み配列が得られ、並列コア間での負荷分散が保証されるか?
  • RQ2並列マージアルゴリズムの設計と理解を簡素化するための幾何的または視覚的表現として、どのようなものがあるか?
  • RQ3並列マージにおけるキャッシュミスとコherエンスオーバーヘッドを低減するため、メモリアクセスパターンをどのように最適化できるか?
  • RQ4同期なしで負荷分散が行われるマージアルゴリズムが、最新のマルチコアシステムにおいてどれほどニアーライニアスループットを達成できるか?
  • RQ5セグメント化されたバージョンのアルゴリズムは、制限されたメモリ容量または直接マップドキャッシュを備えたシステムにおいて、どのように性能を向上させるか?

主な発見

  • Merge Path アプローチにより、グリッド上のパストラバーサルとしてマージ処理をモデル化することで、正しく、負荷分散され、同期なしの並列マージが実現される。
  • さまざまな入力サイズにおいて、16コアまででニアーライニアスループットを達成するが、32コアでは共有メモリの競合により性能劣化が観察される。
  • セグメント化されたバージョンのアルゴリズムは、直接マップドキャッシュにおいて優れた性能を示し、キャッシュ衝突を低減し、スループットを向上させる。
  • Plurality HyperCore FPGA プロトタイプでは、スレッドディスpatchの遅延が低いため、小さな入力配列に対しても効率的な実行が可能で、オーバーヘッドが最小限に抑えられる。
  • キャッシュに配慮したバージョンのアルゴリズムは、メモリサブシステムのボトル neck を顕著に低減し、メモリ制限のワークロードにおける高性能ソーティングに適している。
  • Merge Path の幾何的インサイトは、並列マージアルゴリズムの理解と実装を明確に直感的に可能にする基盤を提供し、教育的・実装的両面で利便性をもたらす。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。