Abstract
This paper examines the problem of recognizing and optimizing a class of recurrences called bounded recurrences which are a generalization of the parallel prefix problem. I show how these recurrences can be executed concurrently and examine the problem of detecting them automatically. The contribution of this paper is a framework for representing information about recurrences and examination of some structural aspects of bounded recurrences. I also examine linear recurrences in some detail showing how to generate efficient code directly from source expressions.
Preview
Unable to display preview. Download preview PDF.
References
J. R. Allen, D. Callahan, and K. Kennedy. Automatic decomposition of scientific programs for parallel execution. In Conference Record of the Fourteenth ACM Symposium on the Principles of Programming Languages, Munich, West Germany, January 1987.
J. R. Allen and K. Kennedy. Automatic translation of FORTRAN programs to vector form. ACM Transactions on Programming Languages and Systems, 9(4):491–542, October 1987.
J. R. Allen, K. Kennedy, C. Porterfield, and J. Warren. Conversion of control dependence to data dependence. In Conference Record of the Tenth ACM Symposium on the Principles of Programming Languages, Austin, Tx., January 1983.
R. Alverson, D. Callahan, D. Cummings, B. Koblenz, A. Porterfield, and B. Smith. The Tera computer system. In Proceedings of the International Conference on Supercomputing, Amsterdam, 1990.
U. Banerjee, S. C. Chen, D. Kuck, and R. Towle. Time and parallel processor bounds for Fortran-like loops. IEEE Transactions on Computers, C-28(9):660–670, September 1979.
J. Ferrante, K. J. Ottenstein, and J. D. Warren. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9(3):319–349, July 1987.
D. Heller. Some aspects of cyclic reduction algorithm for block tridiagonal systems. SIAM Journal of Numerical Analysis, 13(4):484–496, 1976.
P. M. Kogge and H. S. Stone. A parallel algorithm for the efficient solution of a general class of recurrence equations. IEEE Transactions on Computers, C-22(8):786–792, August 1973.
C. Kruskal, L. Rudolph, and M. Snir. The power of parallel prefix. In Proceedings of the 1985 International Conference on Parallel Processing, pages 180–183, August 1985.
D. J. Kuck, R. H. Kuhn, B. Leasure, D. A. Padua, and M. Wolfe. Compiler transformation of dependence graphs. In Conference Record of the Tenth ACM Symposium on the Principles of Programming Languages, Williamsburg, Va, January 1983.
R. E. Ladner and M. J. Fisher. Parallel prefix computation. Journal of the ACM, 27(4):831–839, October 1980.
F. H. McMahon. The Livermore Fortran kernels: A computer test of the numerical performance range. Technical Report UCRL-53745, Lawrence Livermore National Laboratory, December 1986.
A. Nicolau and H. Wang. Optimal schedules for parallel prefix computation with bounded resources. In Third ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, April 1991.
S. S. Pinter and R. Y. Pinter. Program optimization and parallelization using idioms. In Conference Record of the Eighteenth ACM Symposium on the Principles of Programming Languages, January 1991.
G. Rodrigue, editor. Parallel Computations. Academic Press, !982.
A. Sameh and R. Brent. Solving triangular systems of equations. SIAM Journal of Numerical Analysis, 14(6):1101–1113, 1977.
M. Snir. Depth-size trade-offs for parallel prefix computation. Journal of Algorithms, 7:185–201, 1986.
Y. Tanaka, K. Iwasawa, Y. Umetani, and S. Gotou. Compiling techniques for first-order linear recurrences on a vector computer. The Journal of Supercomputing, 4(1):63–82, March 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Callahan, D. (1992). Recognizing and parallelizing bounded recurrences. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1991. Lecture Notes in Computer Science, vol 589. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0038664
Download citation
DOI: https://doi.org/10.1007/BFb0038664
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55422-6
Online ISBN: 978-3-540-47063-2
eBook Packages: Springer Book Archive