Compiler Estimation of Load Imbalance Overhead in Speculative Parallelization
Speculative parallelization is a technique that complements automatic compiler parallelization by allowing code sections that cannot be fully analyzed by the compiler to be aggresively executed in parallel.However, while speculative parallelization can potentially deliver significant speedups, sever...
Saved in:
Published in | PACT: Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques; 29 Sept.-03 Oct. 2004 pp. 203 - 214 |
---|---|
Main Authors | , |
Format | Conference Proceeding |
Language | English |
Published |
Washington, DC, USA
IEEE Computer Society
29.09.2004
|
Series | ACM Conferences |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Speculative parallelization is a technique that complements automatic compiler parallelization by allowing code sections that cannot be fully analyzed by the compiler to be aggresively executed in parallel.However, while speculative parallelization can potentially deliver significant speedups, several overheads associated with the technique limit these speedups in practice. This paper proposes a novel compiler model of speculative multithreaded execution that can be used to reason about the overheads and expected resulting performance gains, or losses, from speculative parallelization.This model is based on estimating the likely execution duration of threads, properly takes into account the scheduling restrictions of most speculative execution environments, and can include all speculative parallelization overheads.Also, different from heuristics that attempt to qualitatively estimate potentially "good" or "bad" sections for speculative multithreaded execution, this model allows the compiler to estimate the speedup or slowdoen quantitatively.Such quantitative estimate can then be used by the compiler or run-time system to make more complex and educated tradeoff decisions. We use the proposed framework on a number of loops from a collection of SPEC benchmarks that suffer mainly from load imbalance and thread dispatch and commit overheads. Experimental results show that our framework can identify on average 68% of the loops that cause slowdowns and on average 97% of the loops that lead to speedups.In fact, our framework predicts the speedups or slowdowns with an error of less than 20% for an average of 44% of the loops across the benchamrks, and with an error of less than 50% for an average of 84% of the loops.Overall, our framework leads to a performance improvement of 5% on average, and as high as 38%, over a naive approach that attempts to speculatively parallelize all the loops considered. |
---|---|
Bibliography: | SourceType-Conference Papers & Proceedings-1 ObjectType-Conference Paper-1 content type line 25 |
ISBN: | 9780769522296 0769522297 |
ISSN: | 1089-795X |
DOI: | 10.5555/1025127.1026009 |