tonyliu AT cs DOT umass DOT edu
Computer Science Building Room 354
140 Governors Drive
University of Massachusetts
Amherst, MA 01003
Grace: Safe Multithreaded Programming for C/C++
Shift from single to multiple core architectures means that programmers
must write concurrent, multithreaded programs in order to increase
application performance. Unfortunately, multithreaded applications
are susceptible to numerous errors, including deadlocks, race conditions,
atomicity violations, and order violations. These errors are
notoriously difficult for programmers to debug.
This paper presents Grace, a software-only runtime system that
eliminates concurrency errors for a class of multithreaded programs:
those based on fork-join parallelism. By turning threads into processes,
leveraging virtual memory protection, and imposing a sequential
commit protocol, Grace provides programmers with the appearance
of deterministic, sequential execution, while taking advantage
of available processing cores to run code concurrently and efficiently.
Experimental results demonstrate Grace's effectiveness:
with modest code changes across a suite of computationally-intensive
benchmarks (1-16 lines), Grace can achieve high scalability and
performance while preventing concurrency errors.