SimdQuickHeap: The QuickHeap Reconsidered
Johannes Breitling, Ragnar Groot Koerkamp, Marvin Williams

TL;DR
The paper introduces SimdQuickHeap, a SIMD-optimized priority queue that outperforms existing structures in benchmarks and graph algorithms by leveraging a modified QuickHeap design for efficient operations.
Contribution
It presents the SimdQuickHeap, a novel SIMD-friendly priority queue with improved amortized complexity and practical performance over traditional heaps.
Findings
Up to twice as fast as competitors in synthetic benchmarks.
Requires approximately 1.5 log2 n comparisons per push-pop pair.
Consistently fastest in graph algorithms like Dijkstra and Prim.
Abstract
Priority queues are data structures that maintain a dynamic collection of elements and allow inserting new elements and removing the smallest element. The most widely known and used priority queue is likely the implicit binary heap, even though it is has frequent cache misses and is hard to optimize using e.g. SIMD instructions. We introduce the SimdQuickHeap, a variant of the QuickHeap that was introduced by Navarro and Paredes in 2010. As suggested by the name, the data structure bears some similarity to QuickSort. We modify the data layout of the original QuickHeap to have all \emph{pivots} adjacent in memory, with elements between consecutive pivots stored in dedicated \emph{buckets}. This allows efficient SIMD implementations for both partitioning of buckets and scanning the list of pivots to find the bucket to append newly inserted elements to. The SimdQuickHeap has amortized…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
