Idiom recognition in the Polaris parallelizing compiler

The elimination of induction variables and the parallelization of reductions in FORTRAN programs have been shown to be integral to performance improvement on parallel computers [7, 8]. As part of the Polaris project [5], compiler passes that recognize these idioms have been implemented and evaluated. Developing these techniques to the point necessary to achieve signi cant speedups on real applications has prompted solutions to problems that have not been addressed in previous reports on idiom recognition techniques. These include analysis techniques capable of disproving zero-trip loops, symbolic handling facilities to compute closed forms of recurrences, and interfaces to other compilation passes such as the data-dependence test. In comparison, the recognition phase of solving induction variables, which has receivedmost attention so far, has in fact turned out to be relatively straightforward. This paper provides an overview of techniques described in more detail in [12].

[1]  Constantine D. Polychronopoulos,et al.  Symbolic Program Analysis and Optimization for Parallelizing Compilers , 1992, LCPC.

[2]  Lawrence Rauchwerger,et al.  Automatic Detection of Parallelism: A grand challenge for high performance computing , 1994, IEEE Parallel & Distributed Technology: Systems & Applications.

[3]  William M. Pottenger Induction Variable Substitution And Reduction Recognition In The Polaris Parallelizing Compiler , 1995 .

[4]  Rudolf Eigenmann,et al.  Parallelization in the Presence of Generalized Induction and Reduction Variables , 1995 .

[5]  David A. Padua,et al.  Experience in the Automatic Parallelization of Four Perfect-Benchmark Programs , 1991, LCPC.

[6]  Williams Ludwell Harrison,et al.  Automatic recognition of induction variables and recurrence relations by abstract interpretation , 1990, PLDI '90.

[7]  Michael Wolfe,et al.  Beyond induction variables: detecting and classifying sequences using a demand-driven SSA form , 1995, TOPL.

[8]  Lawrence Rauchwerger,et al.  Polaris: Improving the Effectiveness of Parallelizing Compilers , 1994, LCPC.

[9]  Rudolf Eigenmann,et al.  Symbolic range propagation , 1995, Proceedings of 9th International Parallel Processing Symposium.

[10]  Rudolf Eigenmann,et al.  Polaris: Improving the E ectiveness of Parallelizing Compilers , 1994 .

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

[12]  Rudolf Eigenmann,et al.  Automatic program parallelization , 1993, Proc. IEEE.

[13]  Rudolf Eigenmann,et al.  The range test: a dependence test for symbolic, non-linear expressions , 1994, Proceedings of Supercomputing '94.