Computer Science Building, Room 151
The advent of multicore architecture has increased the demand for multithreaded programs, but writing them remains painful for programmers. It is notoriously far more challenging to write concurrent programs correctly and efficiently than sequential ones because of the wide range of performance problems and concurrency errors, including false sharing, race conditions and deadlocks, etc.
In this proposal we introduce a series of runtime systems to combat performance problems and concurrency errors of multithreaded programs.
The first system, SHERIFF, attacks the notorious performance problem of multithreaded programs - false sharing. SHERIFF can precisely detect false sharing problems without false positives and automatically mitigate false sharing problems without intervention.
Our second system, DTHREADS, automatically ensures determinism for unmodified C/C++ applications without requiring programmer interventions. DTHREADS leverages virtual memory and process isolation, combined with a deterministic commit protocol, to ensure robust deterministic execution with very low runtime overhead.
Finally, we propose STOPGAP, a novel detection tool for write-write races based on synchronization boundaries. STOPGAP detects more races than standard happens-before approaches without introducing false positives, unlike lockset based approaches. STOPGAP can also locate heap-based overflows and underflows without adding perceptible performance overhead.
Advisor: Emery Berger