Using parallelism techniques to improve sequential and multi-core sorting performance

We propose new sequential sorting operations by adapting techniques and methods used for designing parallel sorting algorithms. Although the norm is to parallelize a sequential algorithm to improve performance, we adapt a contrarian approach: we employ parallel computing techniques to speed up sequential sorting. Our methods can also work for multi-core sorting with minor adjustments that do not necessarily require full parallelization of the original sequential algorithm. The proposed approach leads to the development of asymptotically efficient deterministic and randomized sorting operations whose practical sequential and multi-core performance, as witnessed by an experimental study, matches or surpasses existing optimized sorting algorithm implementations. We utilize parallel sorting techniques such as deterministic regular sampling and random oversampling. We extend the notion of deterministic regular sampling into deterministic regular oversampling for sequential and multi-core sorting and demonstrate its potential. We then show how these techniques can be used for sequential sorting and also lead to better multi-core sorting algorithm performance as witnessed by the undertaken experimental study.

  1. tars/msrt16.tar Untar file using tar xvf, it will create a directory srt16 with all the files. Read copyright notice copysrt.txt. Read then file Readme.txt with some instructions for (a) the randomized sorting algorithm set-up (sequential), (b) the deterministic sorting algorithm set-up (sequential), (c) the multi-core version of the randomized sorting algorithm set-up. The difference between the run for (a) and (b) is an edit of rmain.c. For (c) a trivial and incomplete ''parallelization/multicore adaptation'' is used just to show the effectiveness of (a).

Last Update: Jan 27, 2017