DeepAI
Log In Sign Up

Multiway Powersort

09/14/2022
by   William Cawley Gelling, et al.
0

Powersort (Munro Wild, ESA2018) has recently replaced Timsort's suboptimal merge policy in the CPython reference implementation of Python, as well as in PyPy and further libraries. We present a stable mergesort variant, Multiway Powersort, that exploits existing runs and finds nearly-optimal merging orders for k-way merges with negligible overhead. As observed with Multiway Quicksort (Kushagra et al., ALENEX 2014; Aumüller Dietzfelbinger, TALG 2016; Wild, PhD thesis 2016) and the inclusion of Dual-Pivot Quicksort in the Java runtime library, memory transfers increasingly determine the cost of internal sorting. We demonstrate that our 4-way Powersort implementation can achieve substantial speedups over standard (2-way) Powersort and other stable sorting methods without compromising the optimally run-adaptive performance of Powersort.

READ FULL TEXT

page 1

page 2

page 3

page 4

05/10/2018

Nearly-Optimal Mergesorts: Fast, Practical Sorting Methods That Optimally Adapt to Existing Runs

We present two stable mergesort variants, "peeksort" and "powersort", th...
09/22/2018

Adaptive Shivers Sort: An Alternative Sorting Algorithm

We present a stable mergesort, called , that exploits the existence of m...
12/10/2021

FLiMS: a Fast Lightweight 2-way Merger for Sorting

In this paper, we present FLiMS, a highly-efficient and simple parallel ...
05/22/2018

On the Worst-Case Complexity of TimSort

TimSort is an intriguing sorting algorithm designed in 2002 for Python, ...
01/23/2020

Communication-Efficient String Sorting

There has been surprisingly little work on algorithms for sorting string...
09/17/2022

Robust and Efficient Sorting with Offset-Value Coding

Sorting and searching are large parts of database query processing, e.g....
05/16/2022

TopSort: A High-Performance Two-Phase Sorting Accelerator Optimized on HBM-based FPGAs

The emergence of high-bandwidth memory (HBM) brings new opportunities to...