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 条
  • [31] SilkRoad: A multithreaded runtime system with software distributed shared memory for SMP clusters
    Peng, L
    Wong, WF
    Feng, MD
    Yuen, CK
    CLUSTER 2000: IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING, PROCEEDINGS, 2000, : 243 - 249
  • [32] Multithreaded runtime framework for parallel and adaptive applications
    Thomadakis, Polykarpos
    Tsolakis, Christos
    Chrisochoides, Nikos
    ENGINEERING WITH COMPUTERS, 2022, 38 (05) : 4675 - 4695
  • [33] Hardware budget and runtime system for Data-Driven Multithreaded Chip Multiprocessor
    Stavrou, Kyriakos
    Trancoso, Pedro
    Evripidou, Paraskevas
    ADVANCES IN COMPUTER SYSTEMS ARCHITECTURE, PROCEEDINGS, 2006, 4186 : 244 - 259
  • [35] On the Roles of the Programmer, the Compiler and the Runtime System When Programming Accelerators in OpenMP
    Ozen, Guray
    Ayguade, Eduard
    Labarta, Jesus
    USING AND IMPROVING OPENMP FOR DEVICES, TASKS, AND MORE, 2014, 8766 : 215 - 229
  • [36] A general compiler framework for speculative multithreaded processors
    Bhowmik, A
    Franklin, M
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2004, 15 (08) : 713 - 724
  • [37] The Hyperion system:: Compiling multithreaded Java']Java bytecode for distributed execution
    Antoniu, G
    Bougé, L
    Hatcher, P
    MacBeth, M
    McGuigan, K
    Namyst, R
    PARALLEL COMPUTING, 2001, 27 (10) : 1279 - 1297
  • [38] Multithreaded runtime framework for parallel and adaptive applications
    Polykarpos Thomadakis
    Christos Tsolakis
    Nikos Chrisochoides
    Engineering with Computers, 2022, 38 : 4675 - 4695
  • [39] Dandelion: a Compiler and Runtime for Heterogeneous Systems
    Rossbach, Christopher J.
    Yu, Yuan
    Currey, Jon
    Martin, Jean-Philippe
    Fetterly, Dennis
    SOSP'13: PROCEEDINGS OF THE TWENTY-FOURTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, 2013, : 49 - 68
  • [40] Runtime checking of multithreaded applications with Visual Threads
    Harrow, JJ
    SPIN MODEL CHECKING AND SOFTWARE VERIFICATON, 2000, 1885 : 331 - 342