next up previous
Next: Conclusions Up: Interprocedural Analysis for Parallelization Previous: Generating Executable Code

Experience with this System

  This system has been used as an experimental platform in an extensive empirical evaluation of the effectiveness of automatic parallelization technology. The full results are presented elsewhere [7], but we present a few highlights in this section.

We have compared the results of our interpocedural analysis with the FIDA system (Full Interprocedural Data-Flow Analysis), an interprocedural system that performs precise flow-insensitive array analysis [10] (see Section 2). The FIDA system was the first to measure how interprocedural analysis on full applications (from the PERFECT and SPEC89 benchmark suites) affects the number of parallel loops that the system can automatically recognize. We compare how many loops containing procedure calls are parallelized using the two systems in Figure 2. The SUIF system is able to locate greater than 5 times more parallel loops than FIDA. This marked difference is due to the additional array analysis techniques employed in our system, and the tight integration with comprehensive interprocedural scalar analysis.



: Static loop count comparison of our system with FIDA.

As part of our evaluation, we have measured the importance of the individual techniques employed in this system but not available in current commercial systems. In particular, we have measured how much the advanced array analyses for privatization and reduction recognition and the interprocedural array analysis on advanced array analyses impact the results of parallelization. We have found that these techniques are essential to achieving any speedup on three of the twelve SPEC92FP programs, four of the eight NAS sample benchmarks and two of the thirteen PERFECT benchmarks.

Saman Amarasinghe
Mon Oct 2 11:00:22 PDT 1995