Speculative Parallelization - Eliminating the Overhead of Failure.
Mikel Lujan, Phyllis Gustafson, Michael Paleczny and Christopher A. Vick
Abstract
Existing runtime parallelization techniques impose severe performance penalties when a speculative parallelization is attempted and fails. Some techniques require a sequential restart of the speculative execution while others only disregard the work after the first point of failure. This paper introduces a new technique that reduces the performance overhead of failure to less than 1% on standard processors through a combination of hoisting the failure path and partitioning work to a Coinspector Thread.