Abstract
We introduce a new deterministic parallel sorting algorithm for distributed memory machines based on the regular sampling approach. The algorithm uses only two rounds of regular all-to-all personalized communication in a scheme that yields very good load balancing with virtually no overhead. Moreover, unlike previous variations, our algorithm efficiently handles the presence of duplicate values without the overhead of tagging each element with a unique identifier. This algorithm was implemented in SPLIT-C and run on a variety of platforms, including the Thinking Machines CM-5, the IBM SP-2-WN, and the Cray Research T3D. We ran our code using widely different benchmarks to examine the dependence of our algorithm on the input distribution. Our experimental results illustrate the efficiency and scalability of our algorithm across different platforms. In fact, the performance compares closely to that of our random sample sort algorithm, which seems to outperform all similar algorithms known to the authors on these platforms. Together, their performance is nearly invariant over the set of input distributions, unlike previous efficient algorithms. However, unlike our randomized sorting algorithm, the performance and memory requirements of our regular sorting algorithm can be deterministically guaranteed.
Publisher
Association for Computing Machinery (ACM)
Subject
Theoretical Computer Science
Cited by
9 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Parallel Suffix Sorting for Large String Analytics;Parallel Processing and Applied Mathematics;2023
2. Parallel quicksort algorithm on OTIS hyper hexa-cell optoelectronic architecture;Journal of Parallel and Distributed Computing;2020-07
3. DASH: Distributed Data Structures and Parallel Algorithms in a Global Address Space;Software for Exascale Computing - SPPEXA 2016-2019;2020
4. Histogram Sort with Sampling;The 31st ACM Symposium on Parallelism in Algorithms and Architectures;2019-06-17
5. Parallel classification and feature selection in microarray data using SPRINT;Concurrency and Computation: Practice and Experience;2012-09-13