Thread-level Speculative Parallelization
Diego R. Llanos · 2004
The basic idea under speculative parallelization (also called thread-level speculation) is to assign the execution of different blocks of consecutive iterations to different threads, running each one on its own processor. While execution proceeds, software monitor ensures that no thread consumes an incorrect version of a value that should be calculated by a predecessor, therefore violating sequential semantics. If such a dependence violation occur, the monitor stops the parallel execution of the offending threads, discards iterations incorrectly calculated, and restart their execution using the correct values.