Abstract

Thread-Level Speculation (TLS) is an automatic parallelization technique for serial programs on multi-core platforms, and permits the generation of multiple threads during compilations well as in run-time. The most obvious difference between TLS and the conventional parallelization model is that TLS can partition programs into multiple threads to be speculatively executed in the presence of ambiguous data and control dependences, while the correctness of the programs is guaranteed by run-time system. As TLS (in different ways) has become ubiquitous in today's parallel computing, it seems worthwhile to provide a review of TLS that has evolved over the last few decades. We concentrate on a comprehensive review of models with some practical relevance together with a perspective on models with potential future relevance. This review attempts to collect, organize, and summarize the most representative publications in thread-level speculation. In chronological order, TLS evolved from Hardware Thread-Level Speculation (HTLS) to Software Thread-Level Speculation (STLS), and to Algorithm Thread-Level Speculation (ATLS). Moreover, a perspective is given to clarify the future development of TLS. Aside from presenting the models, we also refer to features, implementations, and tools.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call