International Journal of Parallel Programming

, Volume 37, Issue 5, pp 508–535

Speculative Parallelization of Sequential Loops on Multicores

Open Access
Article

DOI: 10.1007/s10766-009-0111-z

Cite this article as:
Tian, C., Feng, M., Nagarajan, V. et al. Int J Parallel Prog (2009) 37: 508. doi:10.1007/s10766-009-0111-z

Abstract

The advent of multicores presents a promising opportunity for speeding up the execution of sequential programs through their parallelization. In this paper we present a novel solution for efficiently supporting software-based speculative parallelization of sequential loops on multicore processors. The execution model we employ is based upon state separation, an approach for separately maintaining the speculative state of parallel threads and non-speculative state of the computation. If speculation is successful, the results produced by parallel threads in speculative state are committed by copying them into the computation’s non-speculative state. If misspeculation is detected, no costly state recovery mechanisms are needed as the speculative state can be simply discarded. Techniques are proposed to reduce the cost of data copying between non-speculative and speculative state and efficiently carrying out misspeculation detection. We apply the above approach to speculative parallelization of loops in several sequential programs which results in significant speedups on a Dell PowerEdge 1900 server with two Intel Xeon quad-core processors.

Keywords

Multicores Speculative parallelization Profile-guided parallelization State separation 

Copyright information

© The Author(s) 2009

Authors and Affiliations

  • Chen Tian
    • 1
  • Min Feng
    • 1
  • Vijay Nagarajan
    • 1
  • Rajiv Gupta
    • 1
  1. 1.Department of Computer Science and EngineeringUniversity of California at RiversideRiversideUSA

Personalised recommendations