A Concurrent Execution Semantics for Parallel Program Graphs and Program Dependence Graphs

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.

[1]  Leslie Lamport,et al.  The parallel execution of DO loops , 1974, CACM.

[2]  Jeanne Ferrante,et al.  On linearizing parallel code , 1985, POPL.

[3]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[4]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[5]  Rajiv Gupta A reconfigurable liw architecture and its compiler , 1987 .

[6]  Thomas W. Reps,et al.  Integrating non-intering versions of programs , 1988, POPL '88.

[7]  Wilson C. Hsieh,et al.  A framework for determining useful parallelism , 1988, ICS '88.

[8]  A Rewriting Semantics for Program Dependence Graphs , 1989, POPL.

[9]  William Baxter,et al.  The program dependence graph and vectorization , 1989, POPL '89.

[10]  R. Parsons-Selke,et al.  A rewriting semantics for program dependence graphs , 1989, POPL '89.

[11]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[12]  Matthias Felleisen,et al.  The semantics of program dependence , 1989, PLDI '89.

[13]  Samuel P. Midkiff,et al.  Compiling programs with user parallelism , 1990 .

[14]  Keshav Pingali,et al.  From Control Flow to Dataflow , 1991, J. Parallel Distributed Comput..

[15]  Jeanne Ferrante,et al.  A foundation for sequentializing parallel code , 1990, SPAA '90.

[16]  Vivek Sarkar,et al.  Experiences using control dependence in PTRAN , 1990 .

[17]  Michael Wolfe,et al.  Analyzing Programs with Explicit Parallelism , 1991, LCPC.