Skip to main content

Analyzing programs with explicit parallelism

  • X. Analysis of Explicitly Parallel Programs
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1991)

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

Abstract

When analyzing programs with parallel imperative constructs (e.g., cobegin/coend), standard computer intermediate representations (Control Flow Graphs) are inadequate. This paper discusses semantics for parallel constructs, and introduces new intermediate forms, called the Parallel Control Flow Graph and the Parallel Precedence Graph. These data structures have certain advantages for compiler analysis and optimization. As an example of the advantages, the analysis requirements of converting an explicitly parallel program into Static Single Assignment form are given. To do this, the dominance relation and dominance frontiers for explicitly parallel programs must be defined.

This work was supported by NSF Grant CCR-8906909 and DARPA Grant MDA972-88-J-1004.

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. J. Parallel and Distributed Computing, 5(5):617–640, October 1988.

    Google Scholar 

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

    Google Scholar 

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

  4. Monica Beltrametti, Kenneth Bobey, and John R. Zorbas. The control mechanism for the Myrias parallel computer system. Computer Architecture News, 16(4):21–30, September 1988.

    Google Scholar 

  5. Per Brinch Hansen. Operating Systems Principles. Automatic Computation. Prentice-Hall, 1973.

    Google Scholar 

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

    Google Scholar 

  7. Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and Kenneth Zadeck. Ah 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. 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 [13], pages 1–10.

    Google Scholar 

  9. Michel Dubois, Christoph Scheurich, and Faye Briggs. Memory access buffering in multiprocessors. In Conf. Proc. 13th Annual International Symp. on Computer Architecture, pages 434–442, Tokyo, June 1986.

    Google Scholar 

  10. Leslie Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. on Computers, C-28(9):690–691, September 1979.

    Google Scholar 

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

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

    Google Scholar 

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

    Google Scholar 

  14. Harini Srinivasan. Analyzing programs with explicit parallelism. M.S. thesis 91-TH-006, Oregon Graduate Institute, Dept. of Computer Science and Engineering, July 1991.

    Google Scholar 

  15. Michael Wolfe and Harini Srinivasan. Data structures for optimizing programs with explicit parallelism. In Proc. First International Conference of the Austrian Center for Parallel Computation, Salzburg, September 1991. to appear.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Srinivasan, H., Wolfe, M. (1992). Analyzing programs with explicit parallelism. 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/BFb0038679

Download citation

  • DOI: https://doi.org/10.1007/BFb0038679

  • 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

Publish with us

Policies and ethics