Skip to main content

Data structures for optimizing programs with explicit parallelism

  • Conference paper
  • First Online:
Parallel Computation (ACPC 1991)

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

Abstract

When analyzing programs with parallel imperative constructs (e.g., cobegin/coend), standard computer intermediate representations are inadequate. This paper introduces a new relation called the precedence relation and new data structures called the Parallel Control Flow Graph and the Parallel Precedence Graph for programs with parallel constructs. We show how to report anomalies in parallel programs using Parallel Precedence Graphs. In sequential Control Flow Graphs, the precedence relation is represented by the dominance relation. With explicit parallelism, the dominance relation is not the same as the precedence relation; we discuss the significance of the precedence relation and the new data structures for analyzing programs with parallel constructs. These data structures form a concrete basis for the development of efficient algorithms for optimizing parallel programs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Frances Allen, Michael Burke, Philippe Charles, Ron Cytron, and Jeanne Ferrante. An overview of the PTRAN analysis system for multiprocessing. In Elias N. Houstis, Theodore S. Papatheodorou, and Constantine D. Polychronopoulos, editors, Supercomputing: 1st International Conf., volume 297 of Lecture Notes in Computer Science, pages 194–211. Springer-Verlag, Berlin, 1987.

    Google Scholar 

  2. [ABC+88] Frances Allen, Michael Burke, Philippe Charles, Ron Cytron, and Jeanne Ferrante. An overview of the PTRAN analysis system for multiprocessing. J. Parallel and Distributed Computing, 5(5):617–640, October 1988. (update of [ABC+87]).

    Google Scholar 

  3. Todd R. Allen and David A. Padua. Debugging Fortran on a shared memory machine. In Santaj K. Sahni, editor, Proc. 1987 International Conf. on Parallel Processing, pages 721–727, St. Charles, IL, August 1987.

    Google Scholar 

  4. Michael Burke and Ron Cytron. Interprocedural dependence analysis and parallelization. In Proc. SIGPLAN '86 Symp. on Compiler Construction, pages 162–175, Palo Alto, CA, June 1986.

    Google Scholar 

  5. Per Brinch Hansen. Operating Systems Principles, pages 57–59. Automatic Computation. Prentice-Hall, 1973.

    Google Scholar 

  6. Vasanth Balasundaram and Ken Kennedy. Compile-time detection of race conditions in a parallel program. In Proc. 3rd International Conference on Supercomputing, pages 175–185, June 1989.

    Google Scholar 

  7. Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and Kenneth Zadeck. An efficient method of computing static single assignment form. In Conf. Record 16th Annual ACM Symp. on Principles of Programming Languages, pages 25–35, Austin, TX, January 1989.

    Google Scholar 

  8. David Callahan, Ken Kennedy, and Jaspal Subhlok. Analysis of event synchronization in a parallel programming tool. In Second A CM SIGPLAN Symposium on Principles and Practice of Parallel Programming [PPO90], pages 21–30.

    Google Scholar 

  9. Anne Dinning and Edith Schonberg. An empirical comparison of monitoring algorithms for access anomaly detection. In Second ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming [PPO90], pages 1–10.

    Google Scholar 

  10. Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. The program dependence graph and its use in optimization. ACM Trans. on Programming Languages and Systems, 9(3):319–349, July 1987.

    Google Scholar 

  11. Leslie Lamport. Time, clocks and the ordering of events in a distributed system. CACM, 1(21):558–564, July 1978.

    Google Scholar 

  12. Thomas Lengauer and Robert Endre Tarjan. A fast algorithm for finding dominators in a flow graph. ACM Trans. on Programming Languages and Systems, 1(1):121–141, July 1979.

    Google Scholar 

  13. Samuel P. Midkiff and David A. Padua. Issues in the optimization of parallel programs. In David Padua, editor, Proc. 1990 International Conf. on Parallel Processing, volume II, pages 105–113, St. Charles, IL, August 1990. Penn State Press.

    Google Scholar 

  14. Samuel P. Midkiff, David A. Padua, and Ron Cytron. Compiling programs with user parallelism. In David Gelernter, Alexandru Nicolau, and David A. Padua, editors, Languages and Compilers for Parallel Computing, Research Monographs in Parallel and Distributed Computing, pages 402–422. MIT Press, Boston, 1990.

    Google Scholar 

  15. Parallel Computing Forum. PCF Fortran, April 1990.

    Google Scholar 

  16. Second ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Seattle, Washington, March 1990. ACM Press.

    Google Scholar 

  17. Michael Wolfe and Utpal Banerjee. Data dependence and its application to parallel processing. International J. Parallel Programming, 16(2):137–178, April 1987.

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hans P. Zima

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wolfe, M., Srinivasan, H. (1992). Data structures for optimizing programs with explicit parallelism. In: Zima, H.P. (eds) Parallel Computation. ACPC 1991. Lecture Notes in Computer Science, vol 591. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55437-8_77

Download citation

  • DOI: https://doi.org/10.1007/3-540-55437-8_77

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55437-0

  • Online ISBN: 978-3-540-47073-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics