An Online Profile Guided Optimization Approach for Speculative Parallel Threading

Speculative parallel threading technique has been proposed to speed up hard-to-parallelize applications running on multi-core chips. Traditionally offline profiling approach provides necessary information for the optimizations used in speculative parallelization. However, the offline profiling can't address the applications without appropriate training input. We propose an online profile guided optimization approach to address this problem, which performs profiling and optimizing at runtime and doesn't need an individual profiling pass as well as good training inputs. In our design, programs run in a manner of two continuous phases which are profiling phase and optimized execution phase respectively. Furthermore, our approach can also detect at runtime the behavior change of programs parallelized speculatively. Next the execution flow will be transferred to a new optimized version more suitable to this change. The evaluation shows that the ability of this approach is comparable to the traditional offline implementation. So we believe that this approach is able to serve as an individual guide to speculatively parallelize the applications when traditional offline profiling is unavailable.

[1]  Antonia Zhai,et al.  A scalable approach to thread-level speculation , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[2]  Kunle Olukotun,et al.  Transactional memory coherence and consistency , 2004, Proceedings. 31st Annual International Symposium on Computer Architecture, 2004..

[3]  Rajiv Gupta,et al.  Profile-Guided Compiler Optimizations , 2002, The Compiler Design Handbook.

[4]  Jin Lin,et al.  Data Dependence Profiling for Speculative Optimizations , 2004, CC.

[5]  Kunle Olukotun,et al.  The Stanford Hydra CMP , 2000, IEEE Micro.

[6]  Chen Yang,et al.  Speculative parallel threading architecture and compilation , 2005, 2005 International Conference on Parallel Processing Workshops (ICPPW'05).

[7]  Yunheung Paek,et al.  Advances in Computer Systems Architecture , 2008 .

[8]  Youfeng Wu,et al.  The accuracy of initial prediction in two-phase dynamic binary translators , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[9]  Chen Yang,et al.  Exploiting Thread-Level Speculative Parallelism with Software Value Prediction , 2005, Asia-Pacific Computer Systems Architecture Conference.

[10]  Kunle Olukotun,et al.  The Jrpm system for dynamically parallelizing Java programs , 2003, ISCA '03.

[11]  Chen Yang,et al.  A cost-driven compilation framework for speculative parallelization of sequential programs , 2004, PLDI '04.