Speculative Parallelization of Partially Parallel Loops
Francis H. Dang5
and Lawrence Rauchwerger5 
| (5) |
Dept. of Computer Science, Texas A&M University, College Station, TX, 77843-3112 |
Abstract
Current parallelizing compilers cannot identify a significant fraction of parallelizable loops because they have complex or
statically insufficiently de- fined access patterns. We have previously proposed a framework for their identifi- cation. We
speculatively executed a loop as a doall, and applied a fully parallel data dependence test to determine if it had any cross-processor
dependences; if the test failed, then the loop was re-executed serially. While this method ex- ploits doall parallelism well,
it can cause slowdowns for loops with even one cross-processor flow dependence because we have to re-execute sequentially.
Moreover, the existing, partial parallelism of loops is not exploited. In this paper we propose a generalization of our speculative
doall parallelization technique, named Recursive LRPD test, that can extract and exploit the maximum available parallelism
of any loop and that limits potential slowdowns to the overhead of the run-time dependence test itself, i.e., removes the time lost
due to incorrect parallel execution. The asymptotic time-complexity is, for fully serial loops, equal to the sequential execution
time. We present the base algorithm and an analysis of the different heuristics for its practical application. Some preliminary
experimental results on loops from Track will show the performance of this new technique.
Research supported in part byNSF CAREER Award CCR-9734471,NSF GrantACI-9872126, NSF Grant EIA-9975018, DOE ASCI ASAP Level
2 Grant B347886 and a Hewlett-Packard Equipment Grant
References secured to subscribers.