Skip to main content
QUICK REVIEW

[論文レビュー] Parallel Quicksort without Pairwise Element Exchange

Jesper Larsson Träff|arXiv (Cornell University)|Apr 20, 2018
Parallel Computing and Optimization Techniques参考文献 13被引用数 3
ひとこと要約

本稿では、再帰の過程で要素同士の交換を完全に排除する、交換フリーな並列クイックソートの変種を提案する。代わりにピボットのみを分散することで、通信量を $O(n\log p)$ から $O(n)$ に削減する。MPIの集約操作を用いてピボットを分散し、再帰の末端で一度だけ要素を再配置することで、1024プロセスで最大650倍の高速化を達成し、1プロセスあたりの要素数が500,000を超える弱スケーリングでは、標準的な変種よりも1.3倍速くなった。

ABSTRACT

Quicksort is an instructive classroom approach to parallel sorting on distributed memory parallel computers with many opportunities for illustrating specific implementation alternatives and tradeoffs with common communication interfaces like MPI. The (two) standard distributed memory Quicksort implementations exchange partitioned data elements at each level of the Quicksort recursion. In this note, we show that this is not necessary: It suffices to distribute only the chosen pivots, and postpone element redistribution to the bottom of the recursion. This reduces the total volume of data exchanged from $O(n\log p)$ to $O(n)$, $n$ being the total number of elements to be sorted and $p$ a power-of-two number of processors, by trading off against a total of $O(p)$ additional pivot element distributions. Based on this observation, we describe new, \emph{exchange-free} implementation variants of parallel Quicksort and of Wagar's HyperQuicksort. We have implemented the discussed four different Quicksort variations in MPI, and show that with good pivot selection, Quicksort without pairwise element exchange can be significantly faster than standard implementations on moderately large problems.

研究の動機と目的

  • 分散メモリ環境における並列クイックソートで、ペアワイズの要素交換を排除することで通信量を削減し、スケーラビリティを向上させること。
  • 並列ソートにおける、ピボット分散の増加と要素交換の削減のトレードオフを調査すること。
  • MPIの集約操作のみを用いて、交換フリーなクイックソートおよびハイパークイックソートの変種を設計・実装すること。
  • 大規模クラスタ上で性能を評価し、標準的な交換ベースの実装と比較すること。
  • さまざまな問題サイズにわたるスムーズなスケーリングを実現するため、交換ベースと交換フリーな変種を組み合わせること。

提案手法

  • 再帰的なペアワイズ要素交換を、MPI_AlltoallvとMPI_Allreduceを用いたグローバルなピボット分散に置き換える。
  • 実際の要素再配置を再帰の末端まで延期し、上位の段階ではピボット情報のみを用いる。
  • 再帰の基底段階で、各プロセスがピボット境界に基づいてローカルなセットをソートする、一度の再配置ステップを実施する。
  • 標準クイックソート用とワガールのハイパークイックソート用の2つの変種を実装し、両方とも交換フリーである。
  • 要素数がしきい値(例:c=1500)を超えた場合に交換フリーモードに切り替えることで、標準的および交換フリーな変種を統合する。
  • MPIプロセスを0からp−1まで番号付けし、pは2の累乗とし、初期状態で各プロセスにn/p個の要素が均等に割り当てられていると仮定する。

実験結果

リサーチクエスチョン

  • RQ1分散メモリ環境におけるクイックソートで、ペアワイズの要素交換を排除しても性能が低下しないか?
  • RQ2再帰的クイックソートにおいて、要素の交換とピボットの分散の間で通信コストにどのようなトレードオフが生じるか?
  • RQ3大規模クラスタ上での交換フリークイックソートの性能は、標準的な交換ベースのクイックソートと比べてどうか?
  • RQ4交換ベースと交換フリーな変種を組み合わせたハイブリッドアプローチは、さまざまな問題サイズにわたってより優れたスケーラビリティを達成できるか?
  • RQ51プロセスあたりの要素数がどの程度の値になると、交換フリーな変種が標準的なものよりも効率的になるか?

主な発見

  • 1024プロセスで10^8個の浮動小数点数をソートした場合、交換フリークイックソートは650倍の高速化を達成し、標準的な変種を著しく上回った。
  • 8192プロセスの弱スケーリングにおいて、1プロセスあたりの要素数が500,000を超えると、交換フリーな変種は標準的な変種よりも常に1.3倍速かった。
  • 統合されたクイックソート変種は、標準的または交換フリーなバージョンのいずれよりも性能が劣ることなく、4096プロセスで1000を超える高速化を達成した。
  • 1プロセスあたりの要素数がn/p < 100,000と小さい場合、交換フリーな変種の性能は、高遅延のMPI_AlltoallvおよびMPI_Allreduce操作の影響で低下した。
  • 交換フリーなアプローチにより、通信量は $O(n\log p)$ から $O(n)$ に削減されたが、$O(p)$ の追加的なピボット分散のトレードオフが生じた。
  • 結果は、倍精度浮動小数点数(doubles)や整数(integers)といった異なるデータ型、およびランダムな順列といった異なる入力分布に対しても一貫して robust であり、中〜大規模な問題サイズでは一貫した性能向上を示した。

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

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

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

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