Analysis and transformation in an interactive parallel programming tool

The ParaScope Editor is a new kind of interactive parallel programming tool for developing scientific Fortran programs. It assists the knowledgeable user by displaying the results of sophisticated program analyses and by providing editing and a set of powerful interactive transformations. After an edit or parallelism-enhancing transformation, the ParaScope Editor incrementally updates both the analyses and source quickly. This paper describes the underlying implementation of the ParaScope Editor, paying particular attention to the analysis and representation of dependence information and its reconstruction after changes to the program.

[1]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[2]  Chau-Wen Tseng,et al.  Compiler optimizations for improving data locality , 1994, ASPLOS VI.

[3]  Pierre Jouvelot,et al.  Semantical interprocedural parallelization: an overview of the PIPS project , 1991 .

[4]  Ken Kennedy,et al.  Interactive Parallel Programming using the ParaScope Editor , 1991, IEEE Trans. Parallel Distributed Syst..

[5]  Michael Gerndt,et al.  Advanced tools and techniques for automatic parallelization , 1988, Parallel Comput..

[6]  Bowen Alpern,et al.  Detecting equality of variables in programs , 1988, POPL '88.

[7]  Ken Kennedy,et al.  Loop distribution with arbitrary control flow , 1990, Proceedings SUPERCOMPUTING '90.

[8]  Barbara G. Ryder,et al.  Incremental data-flow analysis algorithms , 1988, TOPL.

[9]  R. E. Kurt Stirewalt,et al.  Incremental dependence analysis for interactive parallelization , 1990, ICS '90.

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

[11]  David B. Loveman,et al.  Program Improvement by Source-to-Source Transformation , 1977, J. ACM.

[12]  Dennis Gannon,et al.  Faust: an environment for programming parallel scientific applications , 1988, Proceedings. SUPERCOMPUTING '88.

[13]  William Pugh,et al.  Eliminating false data dependences using the Omega test , 1992, PLDI '92.

[14]  Ken Kennedy,et al.  Compiling Fortran D for MIMD distributed-memory machines , 1992, CACM.

[15]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[16]  Ken Kennedy,et al.  Incremental dependence analysis , 1990 .

[17]  Ken Kennedy,et al.  An Implementation of Interprocedural Bounded Regular Section Analysis , 1991, IEEE Trans. Parallel Distributed Syst..

[18]  Ken Kennedy,et al.  Parallel program debugging with on-the-fly anomaly detection , 1990, Proceedings SUPERCOMPUTING '90.

[19]  Kathryn S. McKinley,et al.  Automatic and interactive parallelization , 1992 .

[20]  Ken Kennedy,et al.  Automatic translation of FORTRAN programs to vector form , 1987, TOPL.

[21]  Constantine D. Polychronopoulos,et al.  The structure of parafrase-2: an advanced parallelizing compiler for C and FORTRAN , 1990 .

[22]  Michael Wolfe,et al.  The Tiny Loop Restructuring Research Tool , 1991, ICPP.

[23]  Linda Torczon,et al.  Interprocedural optimization: eliminating unnecessary recompilation , 1986, SIGPLAN '86.

[24]  Kevin Smith,et al.  PAT : An Interactive Fortran Parallelizing Assistant Tool , 1988, ICPP.

[25]  Ken Kennedy,et al.  Estimating Interlock and Improving Balance for Pipelined Architectures , 1988, J. Parallel Distributed Comput..

[26]  Ken Kennedy,et al.  The parascope editor: an interactive parallel programming tool , 1993, Proceedings of the 1989 ACM/IEEE Conference on Supercomputing (Supercomputing '89).

[27]  Ken Kennedy,et al.  Parascope:a Parallel Programming Environment , 1988 .

[28]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[29]  Ken Kennedy,et al.  The impact of interprocedural analysis and optimization in the Rn programming environment , 1986, TOPL.

[30]  Michael G. Burke An interval-based approach to exhaustive and incremental interprocedural data-flow analysis , 1990, TOPL.

[31]  Pen-Chung Yew,et al.  The impact of synchronization and granularity on parallel systems , 1990, ISCA '90.

[32]  François Irigoin,et al.  Supernode partitioning , 1988, POPL '88.

[33]  KennedyKen,et al.  The impact of interprocedural analysis and optimization in the Rn programming environment , 1986 .

[34]  Ken Kennedy,et al.  Practical dependence testing , 1991, PLDI '91.

[35]  Ken Kennedy,et al.  Maximizing Loop Parallelism and Improving Data Locality via Loop Fusion and Distribution , 1993, LCPC.

[36]  David A. Padua,et al.  Dependence graphs and compiler optimizations , 1981, POPL '81.

[37]  Ken Kennedy,et al.  Analysis of event synchronization in a parallel programming tool , 1990, PPOPP '90.

[38]  Ken Kennedy,et al.  Improving register allocation for subscripted variables , 1990, PLDI '90.

[39]  KennedyKen,et al.  Experiences using the ParaScope Editor , 1993 .