Speculative N-Way barriers
Lukasz Ziarek, Suresh Jagannathan, Matthew T. Fluet, Umut A. Acar · 2009
Speculative execution is an important technique that has historically been used to extract concurrency from sequential programs. While techniques to support speculation work well when computations perform relatively simple actions (e.g., reads and writes to known locations), understanding speculation for multi-threaded programs in which threads may communicate and synchronize through multiple shared references is significantly more challenging, and is the focus of this paper.