Oblivious vs. Distribution-Based Sorting: An Experimental Evaluation
We compare two algorithms for sorting out-of-core data on a distributed-memory cluster. One algorithm, Csort, is a 3-pass oblivious algorithm. The other, Dsort, makes two passes over the data and is based on the paradigm of distribution-based algorithms. In the context of out-of-core sorting, this study is the first comparison between the paradigms of distribution-based and oblivious algorithms. Dsort avoids two of the four steps of a typical distribution-based algorithm by making simplifying assumptions about the distribution of the input keys. Csort makes no assumptions about the keys. Despite the simplifying assumptions, the I/O and communication patterns of Dsort depend heavily on the exact sequence of input keys. Csort, on the other hand, takes advantage of predetermined I/O and communication patterns, governed entirely by the input size, in order to overlap computation, communication, and I/O . Experimental evidence shows that, even on inputs that followed Dsort’s simplifying assumptions, Csort fared well. The running time of Dsort showed great variation across five input cases, whereas Csort sorted all of them in approximately the same amount of time. In fact, Dsort ran significantly faster than Csort in just one out of the five input cases: the one that was the most unrealistically skewed in favor of Dsort. A more robust implementation of Dsort—one without the simplifying assumptions—would run even slower.
KeywordsCommunication Pattern Input Size Input Distribution Input Case Beowulf Cluster
Unable to display preview. Download preview PDF.
- 1.Knuth, D.E.: Sorting and Searching. In: The Art of Computer Programming, vol. 3. Addison-Wesley, Reading (1973)Google Scholar
- 3.Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 2nd edn. The MIT Press and McGraw-Hill (2001)Google Scholar
- 4.Arpaci-Dusseau, A.C., Arpaci-Dusseau, R.H., Culler, D.E., Hellerstein, J.M., Patterson, D.A.: High-performance sorting on networks of workstations. In: SIGMOD 1997 (1997)Google Scholar
- 5.Graefe, G.: Parallel external sorting in Volcano. Technical Report CU-CS-459-90, University of Colorado at Boulder, Department of Computer Science (1990)Google Scholar
- 7.Chaudhry, G., Cormen, T.H., Wisniewski, L.F.: Columnsort lives! An efficient out-of-core sorting program. In: Proceedings of the Thirteenth Annual ACM Symposium on Parallel Algorithms and Architectures, pp. 169–178 (2001)Google Scholar
- 9.Chaudhry, G., Cormen, T.H., Hamon, E.A.: Parallel out-of-core sorting: The third way (Cluster Computing) (to appear)Google Scholar
- 10.Chaudhry, G., Cormen, T.H.: Slabpose columnsort: A new oblivious algorithm for out-of-core sorting on distributed-memory clusters (Algorithmica) (to appear)Google Scholar
- 12.Snir, M., Otto, S.W., Huss-Lederman, S., Walker, D.W., Dongarra, J.: MPI—The Complete Reference. In: The MPI Core, vol. 1. The MIT Press, Cambridge (1998)Google Scholar
- 13.Gropp, W., Huss-Lederman, S., Lumsdaine, A., Lusk, E., Nitzberg, B., Saphir, W., Snir, M.: MPI—The Complete Reference. In: The MPI Extensions, vol. 2. The MIT Press, Cambridge (1998)Google Scholar
- 14.Arpaci-Dusseau, A.C., Arpaci-Dusseau, R.H., Culler, D.E., Hellerstein, J.M., Patterson, D.A.: Searching for the sorting record: Experiences in tuning NOW-Sort. In: 1998 Symposium on Parallel and Distributed Tools, SPDT 1998 (1998)Google Scholar