Skip to main content

A concurrent execution semantics for Parallel Program Graphs and Program Dependence Graphs

  • Conference paper
  • First Online:

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

Abstract

In this paper, we present a concurrent execution semantics for Parallel Program Graphs (PPGs), a general parallel program representation that includes Program Dependence Graphs (PDGs) and sequential programs. We believe that this semantics is natural to the programmer's way of thinking, and that it also provides a suitable execution model for efficient implementation on real architectures. To demonstrate the robustness of our semantics, we prove a Reordering Theorem which states that a PPG's semantics does not depend on the order in which parallel nodes are executed, and an Equivalence Theorem which states that the semantics of a sequential program is identical to the semantics of its PDG.

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. A.V. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.

    Google Scholar 

  2. Frances Allen, Michael Burke, Philippe Charles, Ron Cytron, and Jeanne Ferrante. An Overview of the PTRAN Analysis System for Multiprocessing. Proceedings of the ACM 1987 International Conference on Supercomputing, 1987. Also published in The Journal of Parallel and Distributed Computing, Oct., 1988, 5(5) pages 617–640.

    Google Scholar 

  3. Frances Allen, Michael Burke, Ron Cytron, Jeanne Ferrante, Wilson Hsieh, and Vivek Sarkar. A Framework for Determining Useful Parallelism. Proceedings of the ACM 1988 International Conference on Supercomputing, pages 207–215, July 1988.

    Google Scholar 

  4. David Alpern, Jeanne Ferrante, and Barbara Simons. A Foundation for Sequentializing Parallel Code. Proceedings of the Second ACM Symposium on Parallel Algorithms and Architectures, July 1990.

    Google Scholar 

  5. William Baxter and J. R. Bauer, III. The Program Dependence Graph in Vectorization. Sixteenth ACM Principles of Programming Languages Symposium, pages 1–11., January 11–13 1989. Austin, Texas.

    Google Scholar 

  6. Micah Beck and Keshav Pingali. From Control Flow to Dataflow. Technical report, Department of Computer Science, Cornell University, October 1989. TR 89-1050.

    Google Scholar 

  7. Robert Cartwright and Mathias Felleisen. The Semantics of Program Dependence. SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 13–27, June 1989.

    Google Scholar 

  8. Ron Cytron, Jeanne Ferrante, and Vivek Sarkar. Experiences Using Control Dependence in PTRAN. Proceedings of the Second Workshop on Languages and Compilers for Parallel Computing, August 1989. In Languages and Compilers for Parallel Computing, edited by D. Gelernter, A. Nicolau, and D. Padua, MIT Press, 1990 (pages 186–212).

    Google Scholar 

  9. J. Ferrante and M. E. Mace. On Linearizing Parallel Code. Conf. Rec. Twelfth ACM Symp. on Principles of Programming Languages, pages 179–189, January 1985.

    Google Scholar 

  10. J. Ferrante, K. Ottenstein, and J. Warren. The Program Dependence Graph and its Use in Optimization. ACM Transactions on Programming Languages and Systems, 9(3):319–349, July 1987.

    Google Scholar 

  11. Miland Girkar and Constantine Polychronopoulos. The HTG: An Intermediate Representation for Programs Based on Control and Data Dependences. Technical report, Center for Supercomputing Res. and Dev.-University of Illinois, May 1991. CSRD Rpt. No.1046.

    Google Scholar 

  12. Rajiv Gupta and Mary Lou Soffa. A Reconfigurable LIW Architecture and its Compiler. Proc. of the 1987 Int'l Conf. on Parallel Processing, Aug. 1987.

    Google Scholar 

  13. Rajiv Gupta and Mary Lou Soffa. Region Scheduling. Proc. of the Second International Conferenece on Supercomputing, 3:141–148, May 1987.

    Google Scholar 

  14. Susan Horwitz, Jan Prins, and Thomas Reps. Integrating Non-Interfering Versions of Programs. Conf. Rec. Fifteenth ACM Symposium on Principles of Programming Languages, pages 133–145, January 1987.

    Google Scholar 

  15. L. Lamport. The Parallel Execution of DO Loops. Communications of the ACM, 17(2):83–93, February 1974.

    Google Scholar 

  16. Samuel Midkiff, David Padua, and Ron Cytron. Compiling Programs with User Parallelism. Proceedings of the Second Workshop on Languages and Compilers for Parallel Computing, August 1989.

    Google Scholar 

  17. Karl J. Ottenstein, Robert A. Ballance, and Arthur B. Maccabe. Gated Single-Assignment Form: Dataflow Interpretation for Imperative Languages. Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, White Plains, New York, pages 257–271, June 1990.

    Google Scholar 

  18. Rebecca Parsons Selke. A Rewriting Semantics for Program Dependence Graphs. Sixteenth ACM Principles of Programming Languages Symposium, January 11–13 1989. Austin, Texas.

    Google Scholar 

  19. Harini Srinivasan and Michael Wolfe. Analyzing Programs with Explicit Parallelism. Proceedings of the Fourth Workshop on Languages and Compilers for Parallel Computing, August 1991. To be published by Springer-Verlag.

    Google Scholar 

  20. Michael J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London and The MIT Press, Cambridge, Massachusetts, 1989. In the series, Research Monographs in Parallel and Distributed Computing This monograph is a revised version of the author's Ph.D. dissertation published as Technical Report UIUCDCS-R-82-1105, U. Illinois at Urbana-Champaign, 1982.

    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

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sarkar, V. (1993). A concurrent execution semantics for Parallel Program Graphs and Program Dependence Graphs. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_37

Download citation

  • DOI: https://doi.org/10.1007/3-540-57502-2_37

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57502-3

  • Online ISBN: 978-3-540-48201-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics