Abstract
Hao Yu, Lawrence Rauchwerger, "Techniques for Reducing the Overhead of Run-time Parallelization," In Int. Conf. Compiler Construction (CC), pp. 232, Berlin, Germany, Mar 2000.
Proceedings(ps, pdf, abstract)
Current parallelizing compilers cannot identify a significant fraction of parallelizable loops because they have complex or statically insufficiently
defined access patterns. As parallelizable loops arise frequently in practice, we have introduced a novel framework for their identification:
speculative parallelization. While we have previously shown that this method is inherently scalable its practical success depends on the fraction of
ideal speedup that can be obtained on modest to moderately large parallel machines. Maximum parallelism can be obtained only through a minimization of
the run-time overhead of the method, which in turn depends on its level of integration within a classic restructuring compiler and on its adaptation to
characteristics of the parallelized application. We present several compiler and run-time techniques designed specifically for optimizing the run-time
parallelization of sparse applications. We show how we minimize the run-time overhead associated with the speculative parallelization of sparse
applications by using static control flow information to reduce the number of memory references that have to be collected at run-time. We then present
heuristics to speculate on the type and data structures used by the program and thus reduce the memory requirements needed for tracing the sparse
access patterns. We present an implementation in the Polaris infrastructure and experimental results.