A taxonomy of parallel sorting

In this paper, we propose a taxonomy of parallel sorting that includes a broad range of array and file sorting algorithms. We analyze the evolution of research on parallel sorting, from the earliest sorting networks to the shared memory algorithms and the VLSI sorters. In the context of sorting networks, we describe two fundamental parallel merging schemes the odd-even and the bitonic merge. Sorting algorithms have been derived from these merging algorithms for parallel computers where processors communicate through interconnection networks such as the perfect shuffle, the mesh and a number of other sparse networks. After describing the network sorting algorithms, we show that, with a shared memory model of parallel computation, faster algorithms have been derived from parallel enumeration sorting schemes, where keys are first ranked and then rearranged according to their rank. Parallel sorting algorithms are evaluated according to a number of criteria, related not only to their time complexity, but also to their feasibility from a computer architecture point of view. We show that in addition to their attractive communication schemes, network sorting algorithms have non-adaptive schedules that make them suitable for implementation. In particular, they are easily generalized to block-sorting algorithms, that utilize limited parallelism to solve large sorting problems. We also address the problem of sorting large mass-storage files in parallel, using modified disk devices or intelligent bubble memories. Finally, the newer area of VLSI sorting is mentioned as an active and promising direction of research on parallel sorting.

[1]  Stanley G. Siegel,et al.  Softare Configuration Management: A Tutonal , 1979, Computer.

[2]  Harold S. Stone,et al.  Parallel Processing with the Perfect Shuffle , 1971, IEEE Transactions on Computers.

[3]  Yasunori Dohi,et al.  Hardware sorter and its application to data base machine , 1982, ISCA 1982.

[4]  Uzi Vishkin,et al.  Finding the maximum, merging and sorting in a parallel computation model , 1981, CONPAR.

[5]  Daniel S. Hirschberg Fast parallel sorting algorithms , 1978, CACM.

[6]  Sartaj Sahni,et al.  Bitonic Sort on a Mesh-Connected Parallel Computer , 1979, IEEE Transactions on Computers.

[7]  Franco P. Preparata,et al.  New Parallel-Sorting Schemes , 1978, IEEE Transactions on Computers.

[8]  Chak-Kuen Wong,et al.  On the Complexity of Sorting in Magnetic Bubble Memory Systems , 1980, IEEE Transactions on Computers.

[9]  Franco P. Preparata,et al.  The cube-connected-cycles: A versatile network for parallel computation , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[10]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[11]  Allan Borodin,et al.  Routing, merging and sorting on parallel models of computation , 1982, STOC '82.

[12]  Thompson The VLSI Complexity of Sorting , 1983, IEEE Transactions on Computers.

[13]  E. Szemerédi,et al.  O(n LOG n) SORTING NETWORK. , 1983 .

[14]  Jayanta Banerjee,et al.  Concepts and capabilities of a database computer\ , 1978, TODS.

[15]  Marshall C. Pease,et al.  The Indirect Binary n-Cube Microprocessor Array , 1977, IEEE Transactions on Computers.

[16]  H. T. Kung,et al.  A tree machine for searching problems , 1979 .

[17]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[18]  Uzi Vishkin,et al.  Finding the Maximum, Merging, and Sorting in a Parallel Computation Model , 1981, J. Algorithms.

[19]  Marvin C. Paull,et al.  On sorting networks , 1972 .

[20]  Patricia G. Selinger,et al.  Access path selection in a relational database management system , 1979, SIGMOD '79.

[21]  Howard Jay Siegel,et al.  Many SIMD interconnection networks have been proposed . To put the different approaches into perspective , this analysis compares a number of single-and multistage networks , 2022 .

[22]  Sartaj Sahni,et al.  Parallel Algorithms to Set Up the Benes Permutation Network , 1982, IEEE Transactions on Computers.

[23]  Howard Jay Siegel,et al.  The universality of various types of SIMD machine interconnection networks , 1977, ISCA '77.

[24]  Brian W. Kernighan,et al.  The Unix Progamming Environment , 1981, Computer.

[25]  Hiroto Yasuura,et al.  The Parallel Enumeration Sorting Scheme for VLSI , 1982, IEEE Transactions on Computers.

[26]  H. T. Kung,et al.  Sorting on a mesh-connected parallel computer , 1976, STOC '76.

[27]  Gérard M. Baudet,et al.  Optimal Sorting Algorithms for Parallel Computers , 1978, IEEE Transactions on Computers.

[28]  Fanica Gavril Merging with parallel processors , 1975, CACM.

[29]  Charles E. Leiserson,et al.  Area-Efficient VLSI Computation , 1983 .

[30]  D. T. LEE,et al.  An On-Chip Compare/Steer Bubble Sorter , 1981, IEEE Transactions on Computers.

[31]  David K. Hsiao,et al.  Parallel Record-Sorting Methods for Hardware Realization. , 1980 .

[32]  C. Thomborson,et al.  A Complexity Theory for VLSI , 1980 .

[33]  Vincent Y. Lum,et al.  The Rebound Sorter: An Efficient Sort Engine for Large Files , 1978, VLDB.

[34]  Tse-yun Feng,et al.  A Survey of Interconnection Networks , 1981, Computer.

[35]  Leslie G. Valiant,et al.  Parallelism in Comparison Problems , 1975, SIAM J. Comput..

[36]  John P. Fishburn,et al.  Quotient Networks , 1982, IEEE Transactions on Computers.

[37]  János Komlós,et al.  An 0(n log n) sorting network , 1983, STOC.

[38]  Dina Bitton Friedland Design, analysis, and implementation of parallel external sorting algorithms , 1981 .

[39]  David E. Muller,et al.  Bounds to Complexities of Networks for Sorting and for Switching , 1975, JACM.

[40]  Yasunori Dohi,et al.  Hardware sorter and its application to data base machine , 1982, ISCA.

[41]  Shimon Even,et al.  Parallelism in tape-sorting , 1974, Commun. ACM.

[42]  David J. DeWitt,et al.  Duplicate record elimination in large data files , 1983, TODS.

[43]  Manoj Kumar,et al.  An Efficient Implementation of Batcher's Odd-Even Merge Algorithm and Its Application in Parallel Sorting Schemes , 1983, IEEE Transactions on Computers.