International Journal of Parallel Programming

, Volume 44, Issue 3, pp 407–426

New Data Structures to Handle Speculative Parallelization at Runtime

  • Alvaro Estebanez
  • Diego R. Llanos
  • Arturo Gonzalez-Escribano
Article

DOI: 10.1007/s10766-014-0347-0

Cite this article as:
Estebanez, A., Llanos, D.R. & Gonzalez-Escribano, A. Int J Parallel Prog (2016) 44: 407. doi:10.1007/s10766-014-0347-0

Abstract

Software-based, thread-level speculation (TLS) is a software technique that optimistically executes in parallel loops whose fully-parallel semantics can not be guaranteed at compile time. Modern TLS libraries allow to handle arbitrary data structures speculatively. This desired feature comes at the high cost of local store and/or remote recovery times: The easier the local store, the harder the remote recovery. Unfortunately, both times are on the critical path of any TLS system. In this paper we propose a solution that performs local store in constant time, while recover values in a time that is in the order of \(T\), being \(T\) the number of threads. As we will see, this solution, together with some additional improvements, makes the difference between slowdowns and noticeable speedups in the speculative parallelization of non-synthetic, pointer-based applications on a real system. Our experimental results show a gain of 3.58\(\times \) to 28\(\times \) with respect to the baseline system, and a relative efficiency of up to, on average, 65 % with respect to a TLS implementation specifically tailored to the benchmarks used.

Keywords

Thread-level speculation Speculative parallelism  Memory improvements 

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Alvaro Estebanez
    • 1
  • Diego R. Llanos
    • 1
  • Arturo Gonzalez-Escribano
    • 1
  1. 1.Departamento de InformaticaUniversidad de ValladolidValladolidSpain

Personalised recommendations