Skip to main content
QUICK REVIEW

[論文レビュー] Analysis of Branch Misses in Quicksort

Conrado Martı́nez, Markus E. Nebel|PUB – Publications at Bielefeld University (Bielefeld University)|Nov 7, 2014
Parallel Computing and Optimization Techniques参考文献 16被引用数 9
ひとこと要約

本稿は、古典的クイックソートおよびデュアルピボットクイックソートにおける分岐ミス予測の最初の解析的分析を提供し、比較(BC)と分岐ミス(BM)を組み合わせた線形コスト関数によってその影響をモデル化する。分岐ミス予測だけではヤロスラフスキーのデュアルピボットクイックソートの性能優位性を説明できないことが示され、メモリ階層の影響がより重要であると示唆している。また、さまざまな分岐予測モデル下での有限サンプルサイズにおける最適なサンプリング戦略を導出する。

ABSTRACT

The analysis of algorithms mostly relies on counting classic elementary operations like additions, multiplications, comparisons, swaps etc. This approach is often sufficient to quantify an algorithm's efficiency. In some cases, however, features of modern processor architectures like pipelined execution and memory hierarchies have significant impact on running time and need to be taken into account to get a reliable picture. One such example is Quicksort: It has been demonstrated experimentally that under certain conditions on the hardware the classically optimal balanced choice of the pivot as median of a sample gets harmful. The reason lies in mispredicted branches whose rollback costs become dominating. In this paper, we give the first precise analytical investigation of the influence of pipelining and the resulting branch mispredictions on the efficiency of (classic) Quicksort and Yaroslavskiy's dual-pivot Quicksort as implemented in Oracle's Java 7 library. For the latter it is still not fully understood why experiments prove it 10% faster than a highly engineered implementation of a classic single-pivot version. For different branch prediction strategies, we give precise asymptotics for the expected number of branch misses caused by the aforementioned Quicksort variants when their pivots are chosen from a sample of the input. We conclude that the difference in branch misses is too small to explain the superiority of the dual-pivot algorithm.

研究の動機と目的

  • 有限サンプルおよびさまざまな分岐予測戦略下での古典的クイックソートおよびデュアルピボットクイックソートにおける分岐ミスの期待値を正確に分析すること。
  • ヤロスラフスキーのデュアルピボットクイックソートがJava 7で古典的クイックソートよりも10%高速であるという性能向上が、分岐ミス予測に起因するかどうかを評価すること。
  • 比較(BC)と分岐ミス(BM)の組み合わせコストモデル(BC + ξ·BM)下での両アルゴリズムにおける最適なサンプリングパラメータ(t*)を導出すること。
  • プロセッサ動作に関する簡略化された仮定にもかかわらず、実世界の性能トレンドを捉える定量的モデルを提供すること。
  • ヤロスラフスキーの優位性の主な要因として分岐ミス予測を除外し、メモリ階層仮説を支持すること。

提案手法

  • 分岐ミス予測コストを、パラメータξでパrameter化された比較(BC)と分岐ミス(BM)の線形結合でモデル化する。
  • 有限サイズkのサンプルからピボットを選択する古典的クイックソート(CQS)およびヤロスラフスキーのデュアルピボットクイックソート(YQS)を分析する。
  • 1ビット、2ビット固定補数(fc)、2ビット飽和カウンタ(sc)の異なる分岐予測戦略下での期待分岐ミス数の漸近的表現を導出する。
  • コスト関数BC + ξ·BMを最小化することで、有限kにおける最適なサンプリング位置t*を算出し、異なるハードウェアのトレードオフを反映するようにξを変化させる。
  • カリゴシとサンダースの実験データと照らし合わせ、実際の条件下でのモデルの正確性を検証する。
  • t* / kの正規化されたプロットを用いて、異なるkおよび予測モデル下での最適なサンプリング歪度を可視化する。

実験結果

リサーチクエスチョン

  • RQ1分岐ミス予測だけが、ヤロスラフスキーのデュアルピボットクイックソートが古典的クイックソートよりも10%高速である理由を説明できるか?
  • RQ2比較と分岐ミスの組み合わせコストモデル下での、古典的クイックソートおよびデュアルピボットクイックソートにおける最適なサンプリング戦略(t*)は何か?
  • RQ3異なる分岐予測戦略下で、分岐ミスの相対的コスト(ξ)が変化する際、最適なサンプリング歪度(t*)はどのように変化するか?
  • RQ4分岐ミス予測コストが高くなると、ヤロスラフスキーのアルゴリズムにおいて対称的サンプリングが最適でなくなるか?
  • RQ5モデルが予測する最適ピボット選択(τ*)は、実プロセッサ上で観察された実験的結果とどの程度一致するか?

主な発見

  • 分析により、分岐ミス予測だけではヤロスラフスキーの10%の性能向上を説明できないことが示された。CQSとYQS間のBMカウントの差は小さすぎる。
  • 古典的クイックソートでは、分岐ミスのコスト(ξ)が増加するにつれて最適なサンプリングがますます非対称的(t*が減少)になり、ξが増大するにつれてt*は(k-1)/2から0にまで低下する。
  • ヤロスラフスキーのデュアルピボットクイックソートでは、ξ=0(分岐ミスコストなし)の状態でも最適なサンプリングパラメータは非対称である:τ* ≈ (0.207, 0.349, 0.445)。これは対称的サンプリングよりも予想されるバイトコードを3.6%削減する。
  • モデルは、Pentium 4プロセッサ上で観察された実験的結果とよく一致する最適ピボット選択(τ*)を予測しており、2ビット固定補数予測下でτ* ≈ 1/10が最適であると判明した。
  • 有限kにおける最適なサンプリング位置t*は、ξの増加に伴い単調に減少し、各予測戦略下での1つのt*値から次の値への遷移点を正確に計算可能である。
  • 単純なモデルであるにもかかわらず、BC + ξ·BMは、特に現代プロセッサの分岐予測コストに対応する30–80の範囲のξにおいて、実ハードウェアにおける主要な性能トレンドを捉えている。

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

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

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

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