Skip to main content
QUICK REVIEW

[論文レビュー] In-Place Parallel Super Scalar Samplesort (IPSSSSo)

Bertram, Nico, Ellert, Jonas|arXiv (Cornell University)|Jan 1, 2017
Parallel Computing and Optimization Techniques参考文献 5被引用数 7
ひとこと要約

この論文では、スーパスカラサンプルソートのキャッシュ効率と命令レベル並列性を組み合わせ、インプレース実行と繰り返しキーに対する頑健性を備えた、非常に効率的なインプレース並列整列アルゴリズムであるIPS4oを紹介する。ブロックベースの置換とスタックフリーな分布による再帰の排除により、IPS4oは高確率でO(n log n)の作業量を達成し、マルチコアシステム上で最も近いインプレース競合他を最大3倍速くし、シーケンシャル実行ではBlockQuicksortを最大1.5倍速くする。

ABSTRACT

Suffix sorting is arguably the most fundamental building block in string algorithmics, like regular sorting in the broader field of algorithms. It is thus not surprising that the literature is full of algorithms for suffix sorting, in particular focusing on their practicality. However, the advances on practical suffix sorting stalled with the emergence of the DivSufSort algorithm more than 10 years ago, which, up to date, has remained the fastest suffix sorter. This article shows how properties of Lyndon words can be exploited algorithmically to accelerate suffix sorting again. Our new algorithm is 6-19% faster than DivSufSort on real-world texts, and up to three times as fast on artificial repetitive texts. It can also be parallelized, where similar speedups can be observed. Thus, we make the first advances in practical suffix sorting after more than a decade of standstill.

研究の動機と目的

  • 現代のハードウェア環境において伝統的なクイックソート変種の限界を克服する、比較ベースの整列アルゴリズムを設計すること。
  • 追加のメモリ割り当てを必要とせず、マルチコアアーキテクチャおよびキャッシュフレンドリーなメモリアクセスパターンを維持しながら高いパフォーマンスを発揮すること。
  • メモリオーバーヘッドの低減、分岐ミス予測の回避、および重複データやほぼソート済みデータを含む多様な入力分布における頑健なパフォーマンスの向上を通じて、既存のインプレース整列アルゴリズムを改善すること。
  • さまざまなデータ型とハードウェアプラットフォームで良好に動作する、実用的でポータブルかつ効率的な、標準ライブラリのクイックソート実装の代替手段を提供すること。

提案手法

  • 動的メモリ割り当てを一切行わないインプレース実行を可能にするために、ブロックベースの分布を導入することでスーパスカラサンプルソート(s3-sort)を変更する。
  • 粗い粒度のブロック置換を用いて、データを入力ブロック間で直接移動させ、キャッシュミスを低減し、データ局所性を向上させる。
  • スレッド間の競合を最小限に抑えてスケーラブルなマルチコア実行を可能にするために、原子的フェッチアンドアド操作を用いてブロック置換を並列化する。
  • 部分的にしか埋まっていないバッファブロックや空のメモリ領域を処理するクリーンアップフェーズを導入し、分布処理後の正しさを保証する。
  • 反復的分布とブロック再配置により再帰スタックを排除し、O(1)の追加領域で厳密なインプレース実行を実現する。
  • 重複要素を効率的に検出・処理することで、非一様な入力に対するパフォーマンスを向上させる最適化を適用する。

実験結果

リサーチクエスチョン

  • RQ1比較ベースの整列アルゴリズムは、キャッシュ効率や分岐予測の安全性を損なわず、インプレース実行と高い並列スケーラビリティを両立させることができるか?
  • RQ2サンプルソートのような分布ベースの整列アルゴリズムを、動的メモリ割り当てや複雑なメモリ管理に依存せずにインプレース化することは可能か?
  • RQ3スレッド間の競合と負荷バランスを最小限に抑えながら、インプレース環境におけるブロック置換の並列化を実現する技術は何か?
  • RQ4多様な入力分布とハードウェアプラットフォームにおいて、インプレース並列整列アルゴリズムのパフォーマンスは、非インプレースおよびシーケンシャルな対象と比べてどの程度優れているか?
  • RQ5インプレース整列アルゴリズムは、非インプレースの代替手段と比較して、メモリアクセスのオーバーヘッド(例:キャッシュミス、ライトアロケートミス)をどの程度低減できるか?

主な発見

  • IPS4oは、マルチコアシステム上で最も近いインプレース競合他を最大3倍速くし、強力な並列スケーラビリティを示している。
  • 32コア環境では、IPS4oはそのシーケンシャル版(IS4o)に対して28.71倍のスループット向上を達成し、最も速い非インプレース競合他(PBBS)を1.97倍上回っている。
  • 100バイトのオブジェクトを2^29個処理する際、IPS4oはインプレース競合他に対して2.67倍速く、非インプレース対象(Intel2S)に対しては1.33倍速い。
  • IPS4oはマルチソケットシステムでも良好にスケーリングするが、16コアを超えるとNUMA効果や遅延するメモリ帯域幅の影響により、性能向上の伸びが鈍くなる。
  • シーケンシャルモードでは、100バイトオブジェクトのような大容量データ型において、1回の分布ステップで要素を2度移動するにもかかわらず、BlockQuicksortよりも最大1.5倍速い。
  • 割り当てによるメモリオーバーヘッド、アソシエーションミス、ライトアロケートミスを低減することで、一部の状況では非インプレースアルゴリズムでさえも性能優位を確保している。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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