CC-Radix: a cache conscious sorting based on Radix sort

We focus on the improvement of data locality for the in-core sequential Radix sort algorithm for 32-bit positive integer keys. We propose a new algorithm that we call Cache Conscious Radix sort, CC-Radix. CC-Radix improves the data locality by dynamically partitioning the data set into subsets that fit in cache level L/sub 2/. Once in that cache level, each subset is sorted with Radix sort. In order to obtain the best implementations, we analyse the algorithms and obtain the algorithmic parameters that minimize the number of misses on cache levels L/sub 1/ and L/sub 2/, and the TLB structure. Here, we present results for a MIPS R10000 processor based computer, the SGI Origin 2000. Our results show that our algorithm is about 2 and 1.4 times faster than Quicksort and Explicit Block Transfer Radix sort, which is the previous fastest sorting algorithm to our knowledge, respectively.

[1]  Kenneth C. Yeager The Mips R10000 superscalar microprocessor , 1996, IEEE Micro.

[2]  Josep-Lluís Larriba-Pey,et al.  Communication conscious radix sort , 1999, ICS '99.

[3]  Naila Rahman,et al.  Adapting Radix Sort to the Memory Hierarchy , 2001, JEAL.

[4]  Ramesh C. Agarwal,et al.  A super scalar sort algorithm for RISC processors , 1996, SIGMOD '96.

[5]  Timothy J. Purcell Sorting and searching , 2005, SIGGRAPH Courses.

[6]  David B. Lomet,et al.  AlphaSort: a RISC machine sort , 1994, SIGMOD '94.

[7]  Josep-Lluís Larriba-Pey,et al.  An analysis of superscalar sorting algorithms on an R8000 processor , 1997, Proceedings 17th International Conference of the Chilean Computer Science Society.

[8]  Andrea Clematis,et al.  Proceedings Eleventh Euromicro Conference on Parallel, Distributed and Network-Based Processing , 2003, Eleventh Euromicro Conference on Parallel, Distributed and Network-Based Processing, 2003. Proceedings..

[9]  Jeffrey F. Naughton,et al.  Cache Conscious Algorithms for Relational Query Processing , 1994, VLDB.

[10]  Naila Rahman,et al.  Analysing cache effects in distribution sorting , 1999, JEAL.

[11]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[12]  David Thomas,et al.  The Art in Computer Programming , 2001 .