Skip to main content

Enhancing parallelism by removing cyclic data dependencies

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 817))

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.

Unable to display preview. Download preview PDF.

References

  1. Alfred V. Aho and Jeffrey D. Vllman. Compilers: Principles, Techniques, and tools. Addison-Wesley, Reading, MA, 1986.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. D'Hollander Erik H. Partitioning and Labeling of Loops by Unimodular Transformations IEEE Transactions on Parallel and Distributed Systems, 3, 7, 465–476, 1992.

    Article  Google Scholar 

  7. Michael P.Gerlek. Detecting Induction Variables Using SSA Form. Dept. of CSE, Oregon Graduate Institute OGI-CES technical report 93-014, 1993.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. Walter G. Kelley and Allan C.Peterson Difference Equations Academic Press, Inc. 1991.

    Google Scholar 

  10. Ronald E. Mickens Difference Equations Second Edition, Van Nostrand Remhold Library of Congress Card Number 90-34385, 1990.

    Google Scholar 

  11. Wolfe, M.J. Optimizing SuperCompilers for Supercomputers. PhD. Thesis, the Graduate College of the University of Illinois at Urbana-Champaign, 1982.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Wolfe M. Beyond Induction Variables. ACM SIGPLAN'92, SIGPLAN Notices. Vol. 27, No.7 (July), pp. 162–174, 1992.

    Google Scholar 

  14. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Costas Halatsis Dimitrios Maritsas George Philokyprou Sergios Theodoridis

Rights and permissions

Reprints 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

Publish with us

Policies and ethics