Abstract
Silvius Rus, Maikel Pennings, Lawrence Rauchwerger, "Sensitivity Analysis for Automatic Parallelization on Multi-Cores," In Proc. ACM Int. Conf.
Supercomputing (ICS), pp. 11, Jun 2007.
Proceedings(pdf, abstract)
Sensitivity Analysis (SA) is a novel compiler technique that
complements, and integrates with, static automatic parallelization
analysis for the cases when relevant program behavior is input
sensitive. In this paper we show how SA can extract all the input
dependent, statically unavailable, conditions for which loops can be
dynamically parallelized. SA generates a sequence of sufficient
conditions which, when evaluated dynamically in order of their
complexity, can each validate the dynamic parallel execution of the
corresponding loop. For example, SA can first attempt to validate
parallelization by checking simple conditions related to loop
bounds. If such simple conditions cannot be met, then validating
dynamic parallelization may require evaluating conditions related to
the entire memory reference trace of a loop, thus decreasing the
benefits of parallel execution. We have implemented Sensitivity
Analysis in the Polaris compiler and evaluated its performance using
22 industry standard benchmark codes running on two multicore
systems. In most cases we have obtained speedups superior to the Intel
Ifort compiler because with SA we could complement static analysis
with minimum cost dynamic analysis and extract most of the available
coarse grained parallelism.