| | |
Summary: CoreDet: A Compiler and Runtime System
for Deterministic Multithreaded Execution
Tom Bergan Owen Anderson Joseph Devietti Luis Ceze Dan Grossman
University of Washington, Computer Science and Engineering
{tbergan,owen,devietti,luisceze,djg}@cs.washington.edu
http://sampa.cs.washington.edu/
Abstract
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 communica-
tion and synchronization. We develop two basic approaches, both
|