Harmonizing Speculative and Non-Speculative Execution in Architectures for Ordered Parallelism

Harmonizing Speculative and Non-Speculative Execution in Architectures for Ordered Parallelism
复制标题

DOI:
10.1109/micro.2018.00026
复制
发表时间:
2018-10
期刊:
2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)
影响因子:
--
通讯作者:
M. C. Jeffrey;Victor A. Ying;Suvinay Subramanian;Hyun Ryong Lee;J. Emer;Daniel Sánchez
M. C. Jeffrey;Victor A. Ying;Suvinay Subramanian;Hyun Ryong Lee;J. Emer;Daniel Sánchez
中科院分区:
其他
文献类型:
--
作者:
M. C. Jeffrey;Victor A. Ying;Suvinay Subramanian;Hyun Ryong Lee;J. Emer;Daniel Sánchez

文献摘要

相似文献

多核心系统应支持投机性和非指定性并行性。投机性并行性易于使用,对于扩展许多具有挑战性的应用至关重要,而非指定的并行性更有效,允许并行不可撤销的动作(例如,并行I/O)。不幸的是,先前的技术远非该目标。硬件交易记忆(HTM)系统支持投机性(交易)和非指定性(非交易)工作,但缺乏两者之间的协调机制,并且仅限于无序的并行性。先前的工作扩展了HTMS,以避免通过逃生动作和开放性交易的投机执行局限。但是这些机制与利用有序并行性的系统不兼容,这些系统并行化了更广泛的应用程序,并且更易于使用。我们贡献了两种技术,可以在有序并行性的上下文中无缝编写和协调投机性和非指定性工作:(i)一个基于任务的执行模型,该模型有效地协调同步的投机和非指定顺序的任务,从而使他们能够创建任务的任务。两种并在共享数据上运行; (ii)推测任务调用软件管理的投机操作的一种安全方法,避免了硬件版本管理和冲突检测。这些贡献提高了效率并实现了新的功能。在几个基准测试中,它们允许系统动态选择是投机或非特定性执行任务,避免投机任务之间不必要的冲突,并允许投机任务安全调用不可撤销的动作。
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.