Abstract
The parallel execution of loop iterations often is inhibited by recurrence relations on scalar variables. Examples are the use of induction variables and recursive functions. Due to the cyclic dependence between the iterations, these loops have to be executed sequentially. A method is presented to convert a family of coupled linear recurrence relations into explicit functions of a loop index. When the cyclic dependency is the only factor preventing a parallel execution, the conversion effectively removes the dependency and allows the loop to be executed in parallel. The technique is based on constructing and solving a set of coupled linear difference equations at compile-time. The method is general for an arbitrary number of coupled scalar variables and can be implemented by a straight-forward algorithm. Results show that the parallelism of several sequential EISPACK do-loops is significantly enhanced by the converting them into do-all loops.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Alfred V. Aho and Jeffrey D. Vllman. Compilers: Principles, Techniques, and tools. Addison-Wesley, Reading, MA, 1986.
Allen, J.R., and Kennedy, K. Automatic Translation of FORTRAN Programs to Vector Form. ACM Transaction on programming Language & Systems. Vol. 9, No.4(October), pp. 491–542, 1984.
Z. Ammarguellat and W.L. Harrison. Automatic recognition of induction variables and recurrence relations by abstract interperation. ACM SIGPLAN'90, SIGPLAN Notices. Vol. 25, No.6 (June), pp. 283–295, 1990.
Banerjee, U., 1988 Dependence Analysis for Supercomputing. The Kluwer international series in engineering and computer science. Parallel processing and fifth generation computing. ISBN 0-89838-289-0. Kluwer Academic Publishers, 1988.
Ron Cytron and Jeanne Ferrante. What's in a name ?-or-The Value of Renaming for Parallelism Detection and Storage Allocation. In International Conference on Parallel Processing, 1987. pp. 19–27.
D'Hollander Erik H. Partitioning and Labeling of Loops by Unimodular Transformations IEEE Transactions on Parallel and Distributed Systems, 3, 7, 465–476, 1992.
Michael P.Gerlek. Detecting Induction Variables Using SSA Form. Dept. of CSE, Oregon Graduate Institute OGI-CES technical report 93-014, 1993.
Kuck, D.J., Kuhn, R.H., Padua, D.A., Leasure, B.R., and Wolfe, M.J. Dependence Graphs and Compiler Optimizations. In Conference Proceedings-The 8th Annual ACM Symposium on Principles of Programming Languages (Williamsburgh, Virginia, January 26–28), ACM Press, pp. 207–218, 1981.
Walter G. Kelley and Allan C.Peterson Difference Equations Academic Press, Inc. 1991.
Ronald E. Mickens Difference Equations Second Edition, Van Nostrand Remhold Library of Congress Card Number 90-34385, 1990.
Wolfe, M.J. Optimizing SuperCompilers for Supercomputers. PhD. Thesis, the Graduate College of the University of Illinois at Urbana-Champaign, 1982.
Wolfe M. Tiny. A Loop Restructuring Research Tool. Oregon Grad. Inst. of Sc. and Tech., Dept. Comp. Sc.& Eng., Beaverton. Techical Report, 19-14-21, 1991.
Wolfe M. Beyond Induction Variables. ACM SIGPLAN'92, SIGPLAN Notices. Vol. 27, No.7 (July), pp. 162–174, 1992.
Wu Youfeng, Lewis Ted G., Parallelizing While Loops, Proceedings of the Intl. Conf. on Parallel Processing '90, II — Software, August 13–17, pp. 1–8, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zhang, F., D'Hollander, E.H. (1994). Enhancing parallelism by removing cyclic data dependencies. In: Halatsis, C., Maritsas, D., Philokyprou, G., Theodoridis, S. (eds) PARLE'94 Parallel Architectures and Languages Europe. PARLE 1994. Lecture Notes in Computer Science, vol 817. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58184-7_117
Download citation
DOI: https://doi.org/10.1007/3-540-58184-7_117
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58184-0
Online ISBN: 978-3-540-48477-6
eBook Packages: Springer Book Archive