• DocumentCode
    3766
  • Title

    SEED: A Statically Greedy and Dynamically Adaptive Approach for Speculative Loop Execution

  • Author

    Lin Gao ; Lian Li ; Jingling Xue ; Pen-Chung Yew

  • Author_Institution
    Earth Syst. Sci., Comput. Centre (ESSCC), Univ. of Queensland, Brisbane, QLD, Australia
  • Volume
    62
  • Issue
    5
  • fYear
    2013
  • fDate
    May-13
  • Firstpage
    1004
  • Lastpage
    1016
  • Abstract
    Research on compiler techniques for thread-level loop speculation has so far remained on studying its performance limits: loop candidates that are worthy of parallelization are manually selected by the researchers or based on extensive profiling and preexecution. It is therefore difficult to include them in a production compiler for speculative multithreaded multicore processors. In a way, existing techniques are statically adaptive ("realized"; by the researchers for different inputs) yet dynamically greedy (since all iterations of all selected loop candidates are always parallelized at run time). This paper introduces a Statically GrEEdy and Dynamically Adaptive (SEED) approach for thread-level speculation on loops that is quite different from most other existing techniques. SEED relies on the compiler to select and optimize loop candidates greedily (possibly in an input-independent way) and provides a runtime scheduler to schedule loop iterations adaptively. To select loops for parallelization at runtime (subject to program inputs), loop iterations are prioritized in terms of their potential benefits rather than their degree of speculation as in many prior studies. In our current implementation, the benefits of speculative threads are estimated by a simple yet effective cost model. It comprises a mechanism for efficiently tracing the loop nesting structures of the program and a mechanism for predicting the outcome of speculative threads. We have evaluated SEED using a set of SPECint2000 and Olden benchmarks. Compared to existing techniques with a program\´s loop candidates being ideally selected a priori, SEED can achieve comparable or better performance while aututomating the entire loop candidate selection process.
  • Keywords
    multi-threading; multiprocessing systems; program compilers; program control structures; Olden benchmarks; SEED; SPECint2000 benchmarks; compiler techniques; cost model; loop candidates; loop iteration scheduling; loop nesting structures; runtime scheduler; speculative loop execution; speculative multithreaded multicore processors; statically greedy and dynamically adaptive approach; thread-level loop speculation; Dynamic scheduling; Hardware; Instruction sets; Optimization; Parallel processing; Runtime; Dynamic scheduling; Hardware; Instruction sets; Loop-level speculation; Optimization; Parallel processing; Runtime; speculative compilation; thread-level speculation;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/TC.2012.41
  • Filename
    6148216