Evaluating Automatic Parallelization in SUIF

This paper presents the results of an experiment to measure empirically the remaining opportunities for exploiting loop-level parallelism that are missed by the Stanford SUIF compiler, a state-of-the-art automatic parallelization system targeting shared-memory multiprocessor architectures. For the purposes of this experiment, we have developed a run-time parallelization test called the Extended Lazy Privatizing Doall (ELPD) test, which is able to simultaneously test multiple loops in a loop nest. The ELPD test identifies a specific type of parallelism where each iteration of the loop being tested accesses independent data, possibly by making some of the data private to each processor. For 29 programs in three benchmark suites, the ELPD test was executed at run time for each candidate loop left unparallelized by the SUIF compiler to identify which of these loops could safely execute in parallel for the given program input. The results of this experiment point to two main requirements for improving the effectiveness of parallelizing compiler technology: incorporating control flow tests into analysis and extracting low-cost run-time parallelization tests from analysis results.

[1]  David A. Padua,et al.  Automatic Array Privatization , 1993, Compiler Optimizations for Scalable Parallel Systems Languages.

[2]  Sungdo Moon,et al.  Predicated array data-flow analysis for run-time parallelization , 1998, ICS '98.

[3]  Mary W. Hall,et al.  Detecting Coarse - Grain Parallelism Using an Interprocedural Parallelizing Compiler , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[4]  Geoffrey C. Fox,et al.  Runtime Support and Compilation Methods for User-Specified Irregular Data Distributions , 1995, IEEE Trans. Parallel Distributed Syst..

[5]  John M. Mellor-Crummey,et al.  Compile-time support for efficient data race detection in shared-memory parallel programs , 1993, PADD '93.

[6]  Sungdo Moon,et al.  Evaluation of predicated array data-flow analysis for automatic parallelization , 1999, PPoPP '99.

[7]  Rudolf Eigenmann,et al.  Performance Analysis of Parallelizing Compilers on the Perfect Benchmarks Programs , 1992, IEEE Trans. Parallel Distributed Syst..

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

[9]  Yunheung Paek,et al.  Simplification of array access patterns for compiler optimizations , 1998, PLDI.

[10]  Lawrence Rauchwerger,et al.  The LRPD test: speculative run-time parallelization of loops with privatization and reduction parallelization , 1995, PLDI '95.

[11]  David A. Padua,et al.  On the Automatic Parallelization of the Perfect Benchmarks , 1998, IEEE Trans. Parallel Distributed Syst..

[12]  Monica S. Lam,et al.  Interprocedural Analysis for Parallelization , 1995, LCPC.

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

[14]  Ken Kennedy,et al.  The ParaScope parallel programming environment , 1993, Proc. IEEE.

[15]  Zhiyuan Li,et al.  Experience with efficient array data flow analysis for array privatization , 1997, PPOPP '97.

[16]  William Pugh,et al.  Constraint-based array dependence analysis , 1998, TOPL.

[17]  Ken Kennedy Practical techniques to augment dependence analysis in the presence of symbolic terms , 1997 .

[18]  Sungdo Moon,et al.  Measuring the effectiveness of automatic parallelization in SUIF , 1998, ICS '98.

[19]  Yunheung Paek,et al.  Parallel Programming with Polaris , 1996, Computer.

[20]  Monica S. Lam,et al.  Maximizing Multiprocessor Performance with the SUIF Compiler , 1996, Digit. Tech. J..

[21]  Saman Amarasinghe,et al.  Parallelizing Compiler Techniques Based on Linear Inequalities , 1997 .

[22]  Gyungho Lee,et al.  Symbolic Array Dataflow Analysis for Array Privatization and Program Parallelization , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[23]  Amer Diwan,et al.  SUIF Explorer: an interactive and interprocedural parallelizer , 1999, PPoPP '99.

[24]  Peng Tu,et al.  Automatic array privatization and demand-driven symbolic analysis , 1996 .

[25]  Ken Kennedy,et al.  A Methodology for Procedure Cloning , 1993, Computer languages.