pith. sign in

arxiv: 1804.07494 · v2 · pith:AT2I6HMQnew · submitted 2018-04-20 · 💻 cs.DC

Parallel Quicksort without Pairwise Element Exchange

classification 💻 cs.DC
keywords quicksortelementparallelexchangetotaldatadistributedelements
0
0 comments X
read the original 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.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Forward citations

Cited by 1 Pith paper

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score.

  1. Parallel Integer Sort: Theory and Practice

    cs.DS 2024-01 unverdicted novelty 7.0

    Tighter bounds for practical parallel integer sorts plus DovetailSort, which handles duplicates effectively via combined sorting ideas and shows competitive performance on synthetic and real datasets.