Automatic Parallelization Using Thread-level Speculation for Multicore Processors

(August 2013 ~ July 2016)

  • Thread-level speculation (TLS) is a technique that aggressively exploits the parallelism of applications at runtime. TLS speculatively executes the dependent threads and defers checking whether any dependencies are violated at runtime. If the dependencies are preserved, performance benefits are obtained as a result of parallel execution. By contrast, if dependencies are violated, appropriate recovery codes must be executed to roll back to the status prior to misspeculation. The related dependent threads must then be re-executed. Misspeculation incurs high penalties, and frequent misspeculation can nullify the benefits of parallelization. If the dependence probability of dependent threads is low, it has high possibility that TLS execution can get performance benefits.

    This research project entitled "Automatic Parallelization Using Thread-level Speculation for Multicore Processors" is a three-year project. The goal of this research project is to develop TLS techniques, and integrate the proposed TLS techniques with OpenMP programming model. The OpenMP compiler of supporting TLS techniques will be implemented based on GCC OpenMP compiler. The goal of this research project is not only to develop an OpenMP compiler prototype, but also to achieve an average 15% performance improvement for the tested benchmark programs, SPEC OMP 2012.

    Keywords:Parallelization, Compiler Optimization, Thread-level Speculation