Year: 2012
Type: dissertation
Abstract: Nondeterminism is one of the main reasons that parallel programming is so difficult.Bugs can vanish when programs are rerun or run under a debugger, thwarting attempts at their removal.Stress-testing is a common practice to flush out rare defects though it consumes extensive processing power and offers no real guarantees of discovering bugs.Deployment can similarly expose new issues that are difficult to reproduce.Finally, nondeterminism frustrates replicating multithreaded programs for fault-tolerance or performance as the replicas can diverge silently.Determinism eliminates these problems, making debugging and replication possible and making testing more valuable and efficient.Previous efforts at providing determinism required programs to be (re-)written in restrictive languages.In contrast to these language-level determinism schemes, this dissertation shows how execution-level determinism can be provided for arbitrary parallel programs, even programs that contain concurrency errors.First, we employ a hardware-based approach to provide determinism for unmodified binaries running on a deterministic multiprocessor system.Second, we show that memory consistency relaxations both enable a pure software-based implementation of execution-
Authors: Luís Ceze, Joseph Devietti
Institution: University of Washington
Language: English
Subfield: Computer Networks and Communications
Field: Computer Science
Domain: Physical Sciences
Open Access status: green
OpenAlex ID: W2284756213
