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.
References
A.V. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.
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.
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.
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.
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.
Micah Beck and Keshav Pingali. From Control Flow to Dataflow. Technical report, Department of Computer Science, Cornell University, October 1989. TR 89-1050.
Robert Cartwright and Mathias Felleisen. The Semantics of Program Dependence. SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 13–27, June 1989.
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).
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.
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.
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.
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.
Rajiv Gupta and Mary Lou Soffa. Region Scheduling. Proc. of the Second International Conferenece on Supercomputing, 3:141–148, May 1987.
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.
L. Lamport. The Parallel Execution of DO Loops. Communications of the ACM, 17(2):83–93, February 1974.
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.
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.
Rebecca Parsons Selke. A Rewriting Semantics for Program Dependence Graphs. Sixteenth ACM Principles of Programming Languages Symposium, January 11–13 1989. Austin, Texas.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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