Skip to main content
QUICK REVIEW

[论文解读] In-Place Parallel Super Scalar Samplesort (IPSSSSo)

Bertram, Nico, Ellert, Jonas|arXiv (Cornell University)|Jan 1, 2017
Parallel Computing and Optimization Techniques参考文献 5被引用 7
一句话总结

该论文提出IPS4o,一种高效且原地并行排序算法,结合了超级标量样本排序(Super Scalar Samplesort)的缓存效率与指令级并行性,同时具备原地执行和对重复键值的鲁棒性。通过使用基于块的置换并消除递归的栈自由分发机制,IPS4o在高概率下实现O(n log n)的计算量,在多核系统上比其最接近的原地竞争者快达3倍,且在串行模式下比BlockQuicksort快1.5倍。

ABSTRACT

Suffix sorting is arguably the most fundamental building block in string algorithmics, like regular sorting in the broader field of algorithms. It is thus not surprising that the literature is full of algorithms for suffix sorting, in particular focusing on their practicality. However, the advances on practical suffix sorting stalled with the emergence of the DivSufSort algorithm more than 10 years ago, which, up to date, has remained the fastest suffix sorter. This article shows how properties of Lyndon words can be exploited algorithmically to accelerate suffix sorting again. Our new algorithm is 6-19% faster than DivSufSort on real-world texts, and up to three times as fast on artificial repetitive texts. It can also be parallelized, where similar speedups can be observed. Thus, we make the first advances in practical suffix sorting after more than a decade of standstill.

研究动机与目标

  • 开发一种基于比较的排序算法,实现原地执行与高度并行化,解决传统快速排序变体在现代硬件环境下的局限性。
  • 在不增加额外内存分配的前提下,保持在多核架构和缓存友好的内存访问模式下的高性能。
  • 通过减少内存开销、避免分支预测错误,并确保在包含重复元素和近乎有序数据等多样化输入分布下的稳健性能,改进现有原地排序算法。
  • 提供一种实用、可移植且高效的替代方案,用于标准库快速排序实现,适用于不同数据类型和硬件平台。

提出的方法

  • 通过引入基于块的分发机制,对超级标量样本排序(s3-sort)进行改进,实现无需动态内存分配的原地执行。
  • 使用粗粒度的块置换,直接在输入块之间移动数据,减少缓存未命中并提升数据局部性。
  • 利用原子的获取并增加操作,实现线程间块置换的并行化,最小化竞争并支持可扩展的多核执行。
  • 引入清理阶段以处理部分填充的缓冲块和空内存区域,确保分发后的正确性。
  • 通过迭代分发与块重排消除递归栈,实现严格原地执行,额外空间复杂度为O(1)。
  • 通过在分发过程中高效检测并处理重复元素,对重复键值应用优化,提升非均匀输入下的性能。

实验结果

研究问题

  • RQ1能否设计一种基于比较的排序算法,在不牺牲缓存效率或分支预测安全性的情况下,同时实现原地执行与高并行可扩展性?
  • RQ2如何使基于分发的排序算法(如样本排序)实现原地执行,而无需依赖动态内存分配或复杂的内存管理?
  • RQ3在原地环境下,采用何种技术可实现块置换的高效并行化,同时最小化线程竞争并确保负载均衡?
  • RQ4在不同输入分布和硬件平台上,原地并行排序算法的性能与非原地及串行实现相比如何?
  • RQ5与非原地实现相比,原地排序算法在多大程度上能减少内存访问开销(如缓存未命中、写分配未命中)?

主要发现

  • 在多核系统上,IPS4o比其最接近的原地竞争者快达3倍,展现出强大的并行可扩展性。
  • 在32核环境下,IPS4o相比其串行变体(IS4o)实现了28.71倍的加速比,且比最快的非原地竞争者(PBBS)快1.97倍。
  • 对于2^29个100字节对象的数据,IPS4o比其原地竞争者快2.67倍,比其非原地对手快1.33倍(在Intel2S上)。
  • IPS4o在多插槽系统上表现良好,但由于NUMA效应和较慢的内存带宽,超过16核后性能增益逐渐减弱。
  • 在串行模式下,IPS4o比BlockQuicksort快1.5倍,尤其在100字节等大对象数据上表现更优,尽管每步分发需移动元素两次。
  • IPS4o减少了内存分配开销、关联性未命中和写分配未命中,甚至在某些情况下优于非原地算法,展现出性能优势。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。