Processor-Oblivious Record and Replay

Processor-Oblivious Record and Replay
复制标题

DOI:
10.1145/3365659
复制
发表时间:
2019-12
期刊:
ACM Transactions on Parallel Computing (TOPC)
影响因子:
--
通讯作者:
R. Utterback;Kunal Agrawal;I. Lee;Milind Kulkarni
R. Utterback;Kunal Agrawal;I. Lee;Milind Kulkarni
中科院分区:
其他
文献类型:
--
作者:
R. Utterback;Kunal Agrawal;I. Lee;Milind Kulkarni

文献摘要

相似文献

记录和复制系统是通过首先记录执行,然后重播执行以产生相同的访问模式来调试非确定性并行程序的有用工具。单个线程的行为和交错。取而代之的是,这些语言提供了一个符合处理器的编程模型,其中程序使用高级构造(例如Spawn/Sync)揭示了任务并行,而无需考虑可用于运行该程序的线程/内核的数量。 - 重播将违反这些程序的合并性质,因为它们将线程数纳入了记录的信息,从而将重播的执行限制为本文中的相同数量。适用于处理器的记录和复制方案用于动态多线程语言,其中记录和重播可以使用不同数量的处理器,并且都使用工作窃取,我们为我们的记录和重播方案提供了理论保证。一个锁定和重播的程序对于所有情况都几乎是最佳的。大量的开销。
Record-and-replay systems are useful tools for debugging non-deterministic parallel programs by first recording an execution and then replaying that execution to produce the same access pattern. Existing record-and-replay systems generally target thread-based execution models, and record the behaviors and interleavings of individual threads. Dynamic multithreaded languages and libraries, such as the Cilk family, OpenMP, TBB, and the like, do not have a notion of threads. Instead, these languages provide a processor-oblivious model of programming, where programs expose task parallelism using high-level constructs such as spawn/sync without regard to the number of threads/cores available to run the program. Thread-based record-and-replay would violate the processor-oblivious nature of these programs, as they incorporate the number of threads into the recorded information, constraining the replayed execution to the same number of threads. In this article, we present a processor-oblivious record-and-replay scheme for dynamic multithreaded languages where record and replay can use different number of processors and both are scheduled using work stealing. We provide theoretical guarantees for our record and replay scheme—namely that record is optimal for programs with one lock and replay is near-optimal for all cases. In addition, we implemented this scheme in the Cilk Plus runtime system and our evaluation indicates that processor-obliviousness does not cause substantial overheads.