An analysis of superscalar sorting algorithms on an R8000 processor

We compare and analyze different in-memory sorting algorithms to understand their behavior on a superscalar MIPS R8000 processor. We explore Quick sort, Heap sort and an implementation variant of Radix sort that we propose. We compare the methods isolated and combined with Multiway merge and Bucket sort. The combination of methods helps to check for potential use of locality. We describe and analyze the models of the most significant algorithms. Some conclusions can be drawn from this work. First, Radix sort is the fastest algorithm. Second, the use of combined methods does not help to exploit locality. Third, with the help of the models and an analysis of the codes, it is possible to understand that Radix sort is the most promising of the methods studied here for future superscalar architectures.

[1]  Niklaus Wirth,et al.  Algorithms + Data Structures = Programs , 1976 .

[2]  Michael Stonebraker,et al.  A measure of transaction processing power , 1985 .

[3]  Jack J. Dongarra,et al.  Unrolling loops in fortran , 1979, Softw. Pract. Exp..

[4]  C. J. Date An Introduction to Database Systems , 1975 .

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

[6]  V. Govindan,et al.  Parallel sorting on the NEC Cenju-3 and IBM SP2 , 1997, Proceedings High Performance Computing on the Information Superhighway. HPC Asia '97.

[7]  Hector Garcia-Molina,et al.  Main Memory Database Systems: An Overview , 1992, IEEE Trans. Knowl. Data Eng..

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

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

[10]  Vicki H. Allan,et al.  Software pipelining , 1995, CSUR.