Harmonizing Speculative and Non-Speculative Execution in Architectures for Ordered Parallelism
Name
2018.espresso.micro.pdf
Description
Accepted version
Size
996.18 KB
Format
Adobe PDF
Checksum (MD5)
81f4657bdbf1bd7c7e28f4f1bdb778f3
Author(s) • • • • •
Jeffrey, Mark C.
Ying, Victor A.
Subramanian, Suvinay
Lee, Hyun Ryong
Emer, Joel
Sanchez, Daniel
Date Issued
October 2018
Publisher
IEEE
Citation
Jeffrey, Mark C., Ying, Victor A., Subramanian, Suvinay, Lee, Hyun Ryong, Emer, Joel et al. 2018. "Harmonizing Speculative and Non-Speculative Execution in Architectures for Ordered Parallelism."
Version
Author's final manuscript
Abstract
© 2018 IEEE. Multicore systems should support both speculative and non-speculative parallelism. Speculative parallelism is easy to use and is crucial to scale many challenging applications, while non-speculative parallelism is more efficient and allows parallel irrevocable actions (e.g., parallel I/O). Unfortunately, prior techniques are far from this goal. Hardware transactional memory (HTM) systems support speculative (transactional) and non-speculative (non-Transactional) work, but lack coordination mechanisms between the two, and are limited to unordered parallelism. Prior work has extended HTMs to avoid the limitations of speculative execution, e.g., through escape actions and open-nested transactions. But these mechanisms are incompatible with systems that exploit ordered parallelism, which parallelize a broader range of applications and are easier to use. We contribute two techniques that enable seamlessly composing and coordinating speculative and non-speculative work in the context of ordered parallelism: (i) a task-based execution model that efficiently coordinates concurrent speculative and non-speculative ordered tasks, allowing them to create tasks of either kind and to operate on shared data; and (ii) a safe way for speculative tasks to invoke software-managed speculative actions that avoid hardware version management and conflict detection. These contributions improve efficiency and enable new capabilities. Across several benchmarks, they allow the system to dynamically choose whether to execute tasks speculatively or non-speculatively, avoid needless conflicts among speculative tasks, and allow speculative tasks to safely invoke irrevocable actions.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1109/micro.2018.00026