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 条
  • [1] CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution
    Bergan, Tom
    Anderson, Owen
    Devietti, Joseph
    Ceze, Luis
    Grossman, Dan
    ASPLOS XV: FIFTEENTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, 2010, : 53 - 64
  • [2] Compiler construction for lockstep execution of multithreaded processors
    Nguyen, Huong Giang
    Hwang, Seok Joong
    Kim, Seon Wook
    2007 CIT: 7TH IEEE INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION TECHNOLOGY, PROCEEDINGS, 2007, : 829 - 834
  • [3] Compiler and runtime support for adaptive sparse computations on a multithreaded architecture
    Zoppetti, GM
    Agrawal, G
    PARALLEL AND DISTRIBUTED COMPUTING SYSTEMS, 2002, : 488 - 493
  • [4] Compiler Transformations to Enable Synchronous Execution in an RIA Runtime
    Iyer, Anantharaman P. Narayana
    Chatterjee, Arijit
    Kishnani, Jyoti
    IEEE INTERNET COMPUTING, 2010, 14 (03) : 13 - 23
  • [5] Cilk: An efficient multithreaded runtime system
    Blumofe, RD
    Joerg, CF
    Kuszmaul, BC
    Leiserson, CE
    Randall, KH
    Zhou, YL
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 1996, 37 (01) : 55 - 69
  • [6] CILK - AN EFFICIENT MULTITHREADED RUNTIME SYSTEM
    BLUMOFE, RD
    JOERG, CF
    KUSZMAUL, BC
    LEISERSON, CE
    RANDALL, KH
    ZHOU, YL
    SIGPLAN NOTICES, 1995, 30 (08): : 207 - 216
  • [7] Cilk: An Efficient Multithreaded Runtime System
    Blumofe, R. D.
    Joerg, C. F.
    Kuszmaul, B. C.
    Leiserson, C. E.
    Journal of Parallel and Distributed Computing, 37 (01):
  • [8] DEEPTOOLS: Compiler and Execution Runtime Extensions for RAPiD AI Accelerator
    Venkataramani, Swagath
    Choi, Jungwook
    Srinivasan, Vijayalakshmi
    Wang, Wei
    Zhang, Jintao
    Schaal, Marcel
    Serrano, Mauricio J.
    Ishizaki, Kazuaki
    Inoue, Hiroshi
    Ogawa, Eri
    Ohara, Motiyoshi
    Chang, Leland
    Gopalakrishnan, Kailash
    IEEE MICRO, 2019, 39 (05) : 102 - 111
  • [9] A multithreaded runtime environment with thread migration for a HPF data-parallel compiler
    Bouge, L
    Hatcher, P
    Namyst, R
    Perez, C
    1998 INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PROCEEDINGS, 1998, : 418 - 425
  • [10] A multithreaded runtime system for a multiprocessor/multinode cluster
    Morrone, CJ
    Amaral, JN
    Tremblay, G
    Gao, GR
    HIGH PERFORMANCE COMPUTING SYSTEMS AND APPLICATIONS, 2003, 727 : 229 - 242