Cubesort: A Parallel Algorithm for Sorting N Data Items with S-Sorters

Abstract This paper presents a parallel sorting algorithm called Cubesort. Cubesort sorts N data items by performing a number of rounds, each of which partitions the N data items into groups of size S and sorts within the groups. For many values of N and S, Cubesort requires fewer such rounds than are required by any previously published algorithm. Cubesort can also be used to sort N data items on hypercube, shuffle-exchange, and cube-connected cycles computers with P processors in time O(N log 2 N P log ( N P )) over a wide range of the parameters N and P. In particular, when N = P 1 + 1 k and k is a constant, Cubesort sorts on the above parallel computers in O(N log N P ) time, thus obtaining an optimal processor-time product for comparison sorting. The application of Cubesort to general routing problems is also discussed.

[1]  Lennart Johnsson,et al.  Combining Parallel and Sequential Sorting on a Boolean n–cube , 1984 .

[2]  Ernst W. Mayr,et al.  Efficient computation on sparse interconnection networks , 1989 .

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

[4]  .. G. Plaxton Load Balancing , Selection and Sorting on the HypercubeC , 1989 .

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

[6]  Frank Thomson Leighton,et al.  Tight Bounds on the Complexity of Parallel Sorting , 1985, IEEE Trans. Computers.

[7]  Adi Shamir,et al.  An optimal sorting algorithm for mesh connected computers , 1986, STOC '86.

[8]  Sartaj Sahni,et al.  Data broadcasting in SIMD computers , 1981, IEEE Transactions on Computers.

[9]  Alok Aggarwal,et al.  Network Complexity of Sorting and Graph Problems and Simulating CRCW PRAMS by Interconnection Networks , 1988, AWOC.

[10]  Adi Shamir,et al.  Shear Sort: A True Two-Dimensional Sorting Techniques for VLSI Networks , 1986, ICPP.

[11]  Richard Cole,et al.  Parallel merge sort , 1988, 27th Annual Symposium on Foundations of Computer Science (sfcs 1986).

[12]  Jorge L. C. Sanz,et al.  Cubesort: An Optimal Sorting Algorithm for Feasible Parallel Computers , 1988, AWOC.

[13]  E. Szemerédi,et al.  Sorting inc logn parallel steps , 1983 .

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

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

[16]  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).

[17]  Lawrence Snyder,et al.  Efficient communication in massively parallel computers , 1989 .

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

[19]  Mikhail J. Atallah,et al.  Sorting with Efficient Use of Special-Purpose Sorters , 1988, Inf. Process. Lett..

[20]  Richard Cole,et al.  Parallel merge sort , 1988, 27th Annual Symposium on Foundations of Computer Science (sfcs 1986).

[21]  Leslie G. Valiant,et al.  A logarithmic time sort for linear size networks , 1982, STOC.

[22]  C. Greg Plaxton,et al.  Deterministic sorting in nearly logarithmic time on the hypercube and related computers , 1990, STOC '90.

[23]  John Gill,et al.  Sorting n Objects with a K-Sorter , 1990, IEEE Trans. Computers.

[24]  Alok Aggarwal,et al.  The I/O Complexity of Sorting and Related Problems (Extended Abstract) , 1987, ICALP.

[25]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.