The ubiquity of multi-core processors in everything from servers to smartphones has demanded a similar prevalence of multi-threaded programs to take advantage of multiple cores. Unfortunately, writing multi-threaded code is still in the Wild West era of error-prone manual synchronization, unchecked concurrency bugs, and undefined semantics. One common symptom of an error in a multi-threaded program is a data race. Data races arise when a program performs concurrent updates to some location without synchronization. Automatically detecting data races during program execution enforces strong safety properties for multi-threaded programs. While techniques for data race detection exist they slow program execution too much to be viable for always-on enforcement.

To make always-on detection of data races practical, the project aims to develop new algorithms, language extensions, runtime systems, and hardware support to improve the efficiency of data race detection. The research includes validation of these techniques via formal proofs, experiments with multi-threaded benchmark suites, and detailed hardware simulation. The researchers plan to openly distribute the systems built for this project to facilitate examination by other researchers and integrate the research results into the computer architecture courses they teach. If successful, the proposed technology will improve the safety and quality of the vast amounts of multi-threaded code running on today's and tomorrow?s multi-core devices.

Project Start
Project End
Budget Start
2013-09-01
Budget End
2018-08-31
Support Year
Fiscal Year
2013
Total Cost
$700,000
Indirect Cost
Name
University of Pennsylvania
Department
Type
DUNS #
City
Philadelphia
State
PA
Country
United States
Zip Code
19104