Speculative parallelization is a runtime technique that optimistically executes sequential code in parallel, checking that no dependence violations arise. In the case of a dependence violation, all mechanisms proposed so far either switch to sequential execution, or conservatively stop and restart the offending thread and all its successors, potentially discarding work that does not depend on this particular violation.
We have systematically explored the design space of solutions for this problem, proposing a new mechanism that reduces the number of threads that should be restarted when a data dependence violation is found.
More details can be found in the following publications (in reversed chronological order):
Squashing Alternatives for Software-based Speculative Parallelization. Alvaro García-Yáguez, Diego R. Llanos, Arturo González-Escribano. IEEE Transactions on Computers, Vol. 63, no. 7, July 2014, pags. 1826-1839, ISSN 0018-9340, IEEE Press, 2014.
Exclusive Squashing for Thread-Level Speculation. Alvaro García-Yáguez, Diego R. Llanos, Arturo Gonzalez-Escribano. Proceedings of the 20th International ACM Symposium on High Performance Parallel and Distributed Computing (HPDC 2011), San Jose, California, USA, June 8-11 2011, pages 275-276.