Issue No.12 - December (2006 vol.39)
A. Gonzalez-Escribano , Departamento de Informatica, Valladolid Univ.
D.R. Llanos , Departamento de Informatica, Valladolid Univ.
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MC.2006.441
The most promising technique for automatically parallelizing loops when the system cannot determine dependences at compile time is speculative parallelization. Also called thread-level speculation, this technique assumes optimistically that the system can execute all iterations of a given loop in parallel. A hardware or software monitor divides the iterations into blocks and assigns them to different threads, one per processor, with no prior dependence analysis. If the system discovers a dependence violation at runtime, it stops the incorrectly computed work and restarts it with correct values. Of course, the more parallel the loop, the more benefits this technique delivers. To better understand how speculative parallelization works, it is necessary to distinguish between private and shared variables. Informally speaking, private variables are those that the program always modifies in each iteration before using them. On the other hand, values stored in shared variables are used in different iterations.
system monitoring, multi-threading, parallelising compilers, program control structures, runtime dependence violation discovery, speculative parallelization, automatic loop parallelization, program compiler, thread-level speculation, hardware monitor, software monitor, program dependence analysis, Hardware, Monitoring, Runtime, Performance loss, Concurrent computing, Speculative parallelization, How Things Work
A. Gonzalez-Escribano, D.R. Llanos, "Speculative parallelization", Computer, vol.39, no. 12, pp. 126-128, December 2006, doi:10.1109/MC.2006.441