Abstract
The selection problem has been studied extensively on sequential machines. A linear average time solution and a linear worst-case solution are considered as the standard by most researchers. Theoretical work is also available on parallel models, but it has not been widely implemented on parallel machines. This paper presents an in-depth analysis of the implementation of the standard algorithms, on a number of multiprocessors and supercomputers from the entire spectrum of Flynn's classification, using both an imperative (C based languages with vendor specific parallel extensions) and a functional (SISAL) language. Very interesting results were obtained for all of the experiments performed, leading us to the conclusion that the selection problem has very efficient parallel implementations. Hand-tuned C programs with parallel extensions provided good efficiency but were time-consuming in terms of development. On the other hand, the SISAL code is fully portable and the same program was used on all the machines. The performances of SISAL implementations were comparable to the ones of the hand-tuned C implementations. On all the tests, the routines were able to sustain good speed-up and reasonable efficiency, even with a large number of processors. In two cases (one machine using SISAL, and one using a C-based language), we were able to obtain an efficiency higher than 80% with a configuration close or equal to the maximum number of processors.
Similar content being viewed by others
REFERENCES
B. W. Kernighan and D. M. Ritchie, The C Programming Language, Second Edition, Prentice-Hall (1988).
J. McGraw, S. Skedzielewski, S. Allan, R. Oldehoeft, J. Glauert, C. Kirkham, B. Noyce, and R. Thomas, SISAL: Streams and Iteration in a Single Assignment Language, Version 1.2, Language Reference Manual, Lawrence Livermore National Laboratory (1985).
D. Cann, Retire Fortran? A Debate Rekindled, Comm. ACM 35(8):81–89 (1992).
J. A. Bader and J. Jájá, Practical Parallel Algorithms for Dynamic Data Redistribution, Median Finding, and Selection, Proc. Tenth Int'l. Parallel Proc. Symp., pp. 292–301 (1996).
I. Al-furiah, S. Aluru, S. Goil, and S. Ranka, Practical Algorithm for Selection on Coarse Grained Parallel Computers, IEEE Trans. Parallel and Distrib. Syst. 8(8):813–824 (1997).
E. L. G. Saukas and S. W. Song, A Note on Parallel Selection on Coarse Grained Multi-computers, Algorithmica 24(3–4):371-380 (1999).
L. Carroll, Lawn Tennis Tournament, Saint James Gazette (1883).
D. E. Knuth, The Art of Computer Programming: Seminumerical Algorithms, Addison-Wesley (1973).
R. Sedgewick, Algorithms, Addison-Wesley (1984).
T. H. Cormen, C. E. Leiserson, and R. R. Rivest, Introduction to Algorithms, McGraw-Hill (1991).
M. Blum, R. W. Floyd, V. Pratt, R. R. Rivest, and R. E. Tarjan, Time Bounds for Selection, J. Computer Syst. Sci. 7(4):448–461 (1973).
J. Feo, D. Cann, and R. Oldehoef, A Report on the Sisal Language Project, J. Parallel Distrib. Comput. 10(4):349–366 (1990).
D. Cann and R. R. Oldehoeft, A Guide to Optimizing SISAL Compiler, Technical Report, Lawrence Livermore National Laboratory (1991).
J. J. Dongarra, Performance of Various Computers Using Standard Linear Equations Software, Computer Architecture News 20(3):22–44 (1992).
J. J. Dongarra, Performance of Various Computers Using Standard Linear Equations Software, Report CS-89-85, University of Tennesse (1999).
W. Schönauer, Scientific Computing on Vector Computers, North Holland (1987).
T. Welcome, Programming in LMPS, Technical Report, UCRL-MA-107031, Lawrence Livermore National Laboratory (1991).
M. Ajtai, J. Komlos, W. L. Steiger, and E. Szemeredi, Deterministic Selection in o(log log n) Parallel Time, 18th ACM Symp. Theory of Computation (1986).
R. J. Cole, An Optimally Efficient Selection Algorithm, Information Processing Letters 26(6):295–299 (1988).
C. A. R. Hoare, Algorithms 63: Partition, Comm. ACM 4(7):321 (1961).
R. W. Floyd and R. R. Rivest, Expected Time Bounds for Selection, Comm. ACM 18(3):165–172 (1975).
R. W. Floyd and R. R. Rivest, Algorithm 489: The Algorithm SELECT for Finding the ith Smallest of n Elements, Comm. ACM 18(3):173 (1975).
S. G. Akl, The Design and Analysis of Parallel Algorithms, Prentice-Hall (1989).
C. A. R. Hoare, Algorithms 64: Quicksort, Comm. ACM 4(7):321 (1961).
C. A. R. Hoare, Algorithm 65: Find, Comm. ACM 4(7):321–322 (1961).
D. C. Cann and P. Evripidou, Advanced Array Optimizations for High Performance Functional Languages, IEEE Trans. Parallel and Distrib. Syst. 6(3):229–239 (1995).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Daumas, M., Evripidou, P. Parallel Implementations of the Selection Problem: A Case Study. International Journal of Parallel Programming 28, 103–131 (2000). https://doi.org/10.1023/A:1007511827694
Issue Date:
DOI: https://doi.org/10.1023/A:1007511827694