CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution

被引:30
|
作者
Bergan, Tom [1 ]
Anderson, Owen [1 ]
Devietti, Joseph [1 ]
Ceze, Luis [1 ]
Grossman, Dan [1 ]
机构
[1] Univ Washington, Seattle, WA 98195 USA
关键词
Reliabity; Design; Performance;
D O I
10.1145/1735971.1736029
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The behavior of a multithreaded program does not depend only on its inputs. Scheduling, memory reordering, timing, and low-level hardware effects all introduce nondeterminism in the execution of multithreaded programs. This severely complicates many tasks, including debugging, testing, and automatic replication. In this work, we avoid these complications by eliminating their root cause: we develop a compiler and runtime system that runs arbitrary multithreaded C/C++ POSIX Threads programs deterministically. A trivial non-performant approach to providing determinism is simply deterministically serializing execution. Instead, we present a compiler and runtime infrastructure that ensures determinism but resorts to serialization rarely, for handling interthread communication and synchronization. We develop two basic approaches, both of which are largely dynamic with performance improved by some static compiler optimizations. First, an ownership-based approach detects interthread communication via an evolving table that tracks ownership of memory regions by threads. Second, a buffering approach uses versioned memory and employs a deterministic commit protocol to make changes visible to other threads. While buffering has larger single-threaded overhead than ownership, it tends to scale better (serializing less often). A hybrid system sometimes performs and scales better than either approach individually. Our implementation is based on the LLVM compiler infrastructure. It needs neither programmer annotations nor special hardware. Our empirical evaluation uses the PARSEC and SPLASH2 benchmarks and shows that our approach scales comparably to nondeterministic execution.
引用
收藏
页码:53 / 64
页数:12
相关论文
共 50 条
  • [21] A Compiler and Runtime System for Enabling Data Mining Applications on GPUs
    Ma, Wenjing
    Agrawal, Gagan
    ACM SIGPLAN NOTICES, 2009, 44 (04) : 287 - 288
  • [22] MetaVM: A transparent distributed object system supported by runtime compiler
    Shudo, K
    Muraoka, Y
    PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, VOLS I-V, 2000, : 879 - 882
  • [23] A Compiler and Runtime for Heterogeneous Computing
    Auerbach, Joshua
    Bacon, David F.
    Burcea, Ioana
    Cheng, Perry
    Fink, Stephen J.
    Rabbah, Rodric
    Shukla, Sunil
    2012 49TH ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE (DAC), 2012, : 271 - 276
  • [24] Multithreaded execution architecture and compilation
    Tullsen, DM
    Gao, G
    FIFTH INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE, PROCEEDINGS, 1999, : 321 - 321
  • [25] A SYCL Compiler and Runtime Architecture
    Bader, Alexey
    Brodman, James
    Kinsner, Michael
    PROCEEDINGS OF THE INTERNATIONAL WORKSHOP ON OPENCL (IWOCL'19), 2019,
  • [26] Runtime analysis of atomicity for multithreaded programs
    Wang, LQ
    Stoller, SD
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2006, 32 (02) : 93 - 110
  • [27] SeRoT: A Secure Runtime System on Trusted Execution Environments
    Liu, Jingbin
    Qin, Yu
    Feng, Dengguo
    2020 IEEE 19TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS (TRUSTCOM 2020), 2020, : 30 - 37
  • [28] Deterministic scheduling for multithreaded replicas
    Zhao, WB
    Moser, LE
    Melliar-Smith, PM
    WORDS 2005: 10TH IEEE INTERNATIONAL WORKSHOP ON OBJECT-ORIENTED REAL-TIME DEPENDABLE, PROCEEDINGS, 2005, : 74 - 81
  • [29] Implementing Java']Java consistency using a generic, multithreaded DSM runtime system
    Antoniu, G
    Bougé, L
    Hatcher, P
    MacBeth, M
    McGuigan, K
    Namyst, R
    PARALLEL AND DISTRIBUTED PROCESSING, PROCEEDINGS, 2000, 1800 : 560 - 567
  • [30] Multithreaded compiler optimization technology with low power
    Zhao, Rong-Cai
    Tang, Zhi-Min
    Zhang, Zhao-Qing
    Gao, Guang R.
    Ruan Jian Xue Bao/Journal of Software, 2002, 13 (06): : 1123 - 1129