Languages and Compilers for Parallel Computing

Volume 5335 of the series Lecture Notes in Computer Science pp 232-248

Compiler-Driven Dependence Profiling to Guide Program Parallelization

  • Peng WuAffiliated withProgramming Models and Tools for Scalable Systems, IBM T.J. Watson Research Center
  • , Arun KejariwalAffiliated withCenter for Embedded Computer Systems, University of California, Irvine
  • , Călin CaşcavalAffiliated withProgramming Models and Tools for Scalable Systems, IBM T.J. Watson Research Center

* Final gross prices may vary according to local VAT.

Get Access


As hardware systems move toward multicore and multithreaded architectures, programmers increasingly rely on automated tools to help with both the parallelization of legacy codes and effective exploitation of all available hardware resources. Thread-level speculation (TLS) has been proposed as a technique to parallelize the execution of serial codes or serial sections of parallel codes. One of the key aspects of TLS is task selection for speculative execution.

In this paper we propose a cost model for compiler-driven task selection for TLS. The model employs profile-based analysis of may-dependences to estimate the probability of successful speculation. We discuss two techniques to eliminate potential inter-task dependences, thereby improving the rate of successful speculation. We also present a profiling tool, DProf, that is used to provide run-time information about may-dependences to the compiler and map dynamic dependences to the source code. This information is also made available to the programmer to assist in code rewriting and/or algorithm redesign.

We used DProf to quantify the potential of this approach and we present results on selected applications from the SPEC CPU2006 and SEQUOIA benchmarks.