Efficient Symbolic Analysis for Parallelizing Compilers and Performance Estimators

Symbolic analysis is of paramount importance for parallelizing compilers and performance estimators to examine symbolic expressions with program unknowns such as machine and problem sizes and to solve queries based on systems of constraints (equalities and inequalities). This paper describes novel techniques for counting the number of solutions to a system of constraints, simplifying systems of constraints, computing lower and upper bounds of symbolic expressions, and determining the relationship between symbolic expressions. All techniques target wide classes of linear and non-linearsymbolic expressions and systems of constraints. Our techniques have been implemented and are used as part of a parallelizing compiler and a performance estimator to support analysis and optimization of parallel programs. Various examples and experiments demonstrate the effectiveness of our symbolic analysis techniques.

[1]  Rice UniversityCORPORATE,et al.  High performance Fortran language specification , 1993 .

[2]  Rudolf Eigenmann,et al.  Symbolic analysis techniques for effective automatic parallelization , 1995 .

[3]  Thomas Fahringer,et al.  Buffer-safe communication optimization based on data flow analysis and performance prediction , 1997, Proceedings 1997 International Conference on Parallel Architectures and Compilation Techniques.

[4]  Thomas Fahringer,et al.  Automatic Performance Prediction of Parallel Programs , 1996, Springer US.

[5]  T. Fahringer Automatic Estimation of Communication Costs for Data Parallel Programs , 1996 .

[6]  Geoffrey C. Fox,et al.  The Perfect Club Benchmarks: Effective Performance Evaluation of Supercomputers , 1989, Int. J. High Perform. Comput. Appl..

[7]  William Pugh,et al.  Simplifying Polynominal Constraints Over Integers to Make Dependence Analysis More Precise , 1994, CONPAR.

[8]  Ronald L. Graham,et al.  Concrete Mathematics, a Foundation for Computer Science , 1991, The Mathematical Gazette.

[9]  Prithviraj Banerjee,et al.  Advanced compilation techniques in the PARADIGM compiler for distributed-memory multicomputers , 1995, ICS '95.

[10]  Corporate Rice University,et al.  High performance Fortran language specification , 1993, FORF.

[12]  Thomas Fahringer Toward symbolic performance prediction of parallel programs , 1996, Proceedings of International Conference on Parallel Processing.

[13]  William Pugh,et al.  Counting solutions to Presburger formulas: how and why , 1994, PLDI '94.

[14]  Mark J. Clement,et al.  Symbolic performance prediction of scalable parallel programs , 1995, Proceedings of 9th International Parallel Processing Symposium.

[15]  Constantine D. Polychronopoulos,et al.  Symbolic analysis for parallelizing compilers , 1996, TOPL.

[16]  David A. Padua,et al.  Gated SSA-based demand-driven symbolic analysis for parallelizing compilers , 1995, ICS '95.

[17]  Thomas Fahringer Estimating and Optimizing Performance for Parallel Programs , 1995, Computer.

[18]  Peter Brezany,et al.  Vienna Fortran Compilation System - Version 1.2 - User's Guide , 1996 .

[19]  Thomas Fahringer On estimating the useful work distribution of parallel programs under P3T: a static performance estimator , 1996 .

[20]  Thomas Fahringer Compile-Time Estimation of Communication Costs for Data Parallel Programs , 1996, J. Parallel Distributed Comput..

[21]  Rudolf Eigenmann,et al.  An Overview of Symbolic Analysis Techniques Needed for the Effective Parallelization of the Perfect Benchmarks , 1994, 1994 Internatonal Conference on Parallel Processing Vol. 2.

[22]  Nadia Tawbi Estimation of nested loops execution time by integer arithmetic in convex polyhedra , 1994, Proceedings of 8th International Parallel Processing Symposium.

[23]  Paul Havlak,et al.  Interprocedural symbolic analysis , 1995 .

[24]  Thomas Fahringer,et al.  Symbolic evaluation for parallelizing compilers , 1997, ICS '97.