Effectively exploiting parallelism in data flow analysis

We present an effective approach to performing data flow analysis in parallel and identify three types of parallelism inherent in this solution process: independent-problem parallelism, separate-unit parallelism and algorithmic parallelism. We present our investigations of Fortran procedures from thePerfect Benchmarks andnetlib libraries, which reveal structural characteristics of program flow graphs that are amenable to algorithmic parallelism. Previously, the utility of algorithmic parallelism had been explored using our parallel hybrid algorithm in the context of solving the Reaching Definitions problem for Fortran procedures. Here we present new refinements that optimize performance by increasing the grain size of the parallelism, to improve communication on distributed-memory machines. The empirical performance of our optimized and unoptimized hybrid algorithms for Reaching Definitions are compared on this large data set using an iPSC/2. Our empirical findings qualitatively validate the usefulness of algorithmic parallelism.

[1]  Angelika Zobel Parallel Interval Analysis of Data Flow Equations , 1990, ICPP.

[2]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[3]  Jeffrey M. Barth A practical interprocedural data flow analysis algorithm , 1978, CACM.

[4]  James Hook,et al.  Static single assignment for explicitly parallel programs , 1993, POPL '93.

[5]  Leon J. Osterweil,et al.  A mechanism for environment integration , 1990, TOPL.

[6]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[7]  Mark Seligman,et al.  Pointer target tracking an empirical study , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[8]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984 .

[9]  Mary W. Hall,et al.  The ParaScope Parallel Programming , 1992 .

[10]  Tarak Goradia Dynamic impact analysis: a cost-effective technique to enforce error-propagation , 1993, ISSTA '93.

[11]  Ken Kennedy,et al.  Compiler optimizations for Fortran D on MIMD distributed-memory machines , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[12]  David A. Padua,et al.  Issues in the Optimization of Parallel Programs , 1990, ICPP.

[13]  Barbara G. Ryder,et al.  Elimination algorithms for data flow analysis , 1986, CSUR.

[14]  Ken Kennedy,et al.  Fast interprocedual alias analysis , 1989, POPL '89.

[15]  Elaine J. Weyuker,et al.  Data flow-based test adequacy analysis for languages with pointers , 1991, TAV4.

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

[17]  Ken Kennedy,et al.  Compiling programs for distributed-memory multiprocessors , 1988, The Journal of Supercomputing.

[18]  Barbara G. Ryder,et al.  An efficient hybrid algorithm for incremental data flow analysis , 1989, POPL '90.

[19]  Mary Lou Soffa,et al.  Selecting and using data for integration testing , 1991, IEEE Software.

[20]  Mary Lou Soffa,et al.  Computation of interprocedural definition and use dependencies , 1990, Proceedings. 1990 International Conference on Computer Languages.

[21]  Barbara G. Ryder,et al.  Interprocedural Def-Use Associations for C Systems with Single Level Pointers , 1994, IEEE Trans. Software Eng..

[22]  Barbara G. Ryder,et al.  Experiences with a parallel algorithm for data flow analysis , 1991, The Journal of Supercomputing.

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

[24]  Wuu Yang,et al.  A program integration algorithm that accommodates semantics-preserving transformations , 1992, SDE 4.

[25]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

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

[27]  Barbara G. Ryder,et al.  Parallel Hybrid Data Flow Algorithms: A Case Study , 1992, LCPC.

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

[29]  Alexander V. Veidenbaum,et al.  Detecting redundant accesses to array data , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[30]  John Banning,et al.  : An Efficient , 2022 .

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

[32]  Mark N. Wegman,et al.  A Fast and Usually Linear Algorithm for Global Flow Analysis , 1976, J. ACM.

[33]  Jack J. Dongarra,et al.  Distribution of mathematical software via electronic mail , 1985, SGNM.

[34]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[35]  F. Kenneth Zadeck,et al.  Incremental data flow analysis in a structured program editor , 1984, SIGPLAN '84.

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

[37]  Barbara G. Ryder,et al.  Region analysis: a parallel elimination method for data flow analysis , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[38]  Ken Kennedy,et al.  Interprocedural side-effect analysis in linear time , 1988, PLDI '88.

[39]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[40]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[41]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[42]  George Cybenko,et al.  Supercomputer performance evaluation and the Perfect Benchmarks , 1990, ICS '90.

[43]  Thomas R. Gross,et al.  Parallel compilation for a parallel machine , 1989, PLDI '89.

[44]  Barbara G. Ryder,et al.  Profiling an Incremental Data Flow Analysis Algorithm , 1990, IEEE Trans. Software Eng..

[45]  Barbara G. Ryder,et al.  Interprocedural modification side effect analysis with pointer aliasing , 1993, PLDI '93.

[46]  G. A. Venkatesh,et al.  The semantic approach to program slicing , 1991, PLDI '91.

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

[48]  Ron Cytron,et al.  Interprocedural dependence analysis and parallelization , 1986, SIGP.

[49]  Rajiv Gupta,et al.  The Combining DAG: A Technique for Parallel Data Flow Analysis , 1994, IEEE Trans. Parallel Distributed Syst..

[50]  Barbara G. Ryder ISMM: the incremental software maintenance manager , 1989, Proceedings. Conference on Software Maintenance - 1989.

[51]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[52]  Barbara G. Ryder,et al.  Performing data flow analysis in parallel , 1990, Proceedings SUPERCOMPUTING '90.

[53]  Mary Lou Soffa,et al.  Interprocedual data flow testing , 1989 .

[54]  Vatsa Santhanam,et al.  Register allocation across procedure and module boundaries , 1990, PLDI '90.

[55]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[56]  Leslie Ann Goldberg,et al.  On the use of diagnostic dependence-analysis tools in parallel programming: Experiences using PTOOL , 1990, The Journal of Supercomputing.

[57]  Milind Girkar,et al.  Parafrase-2: an Environment for Parallelizing, Partitioning, Synchronizing, and Scheduling Programs on Multiprocessors , 1989, Int. J. High Speed Comput..

[58]  Constantine D. Polychronopoulos,et al.  Parallel programming and compilers , 1988 .

[59]  David Callahan,et al.  The program summary graph and flow-sensitive interprocedual data flow analysis , 1988, PLDI '88.

[60]  Monica S. Lam,et al.  Global optimizations for parallelism and locality on scalable parallel machines , 1993, PLDI '93.

[61]  Jyh-Herng Chow,et al.  Compile-time analysis of parallel programs that share memory , 1992, POPL '92.