Abstract | ||
---|---|---|
Multithreaded programming is notoriously difficult to get right. A key problem is non-determinism, which complicates debugging, testing, and reproducing errors. One way to simplify multithreaded programming is to enforce deterministic execution, but current deterministic systems for C/C++ are incomplete or impractical. These systems require program modification, do not ensure determinism in the presence of data races, do not work with general-purpose multithreaded programs, or run up to 8.4× slower than pthreads. This paper presents Dthreads, an efficient deterministic multithreading system for unmodified C/C++ applications that replaces the pthreads library. Dthreads enforces determinism in the face of data races and deadlocks. Dthreads works by exploding multithreaded applications into multiple processes, with private, copy-on-write mappings to shared memory. It uses standard virtual memory protection to track writes, and deterministically orders updates by each thread. By separating updates from different threads, Dthreads has the additional benefit of eliminating false sharing. Experimental results show that Dthreads substantially outperforms a state-of-the-art deterministic runtime system, and for a majority of the benchmarks evaluated here, matches and occasionally exceeds the performance of pthreads. |
Year | DOI | Venue |
---|---|---|
2011 | 10.1145/2043556.2043587 | SOSP |
Keywords | Field | DocType |
multithreaded application,general-purpose multithreaded program,efficient deterministic,state-of-the-art deterministic runtime system,current deterministic system,shared memory,deterministic execution,multithreaded programming,pthreads library,data race,efficient deterministic multithreading,evidence,distributed systems,virtual memory,security | Multithreading,Shared memory,Computer science,Virtual memory,Parallel computing,POSIX Threads,Real-time computing,Thread (computing),False sharing,Debugging,Runtime system,Distributed computing | Conference |
Citations | PageRank | References |
114 | 2.76 | 19 |
Authors | ||
3 |
Name | Order | Citations | PageRank |
---|---|---|---|
Tongping Liu | 1 | 234 | 10.34 |
Charlie Curtsinger | 2 | 339 | 12.95 |
Emery D. Berger | 3 | 1048 | 55.87 |