Pacer: Proportional Detection of Data Races
Software is becoming more parallel due to hardware trends that are increasing the number of processors on chips. Unfortunately, parallel programming is quite challenging, and even experts write code that allows erroneous thread interleavings. This talk focuses on a common concurrency bug called a data race that involves two accesses to the same variable that do not correctly synchronize. Data races lead to sequential consistency violations, and they indicate other serious errors such as atomicity and order violations. Some data races are difficult to identify prior to deploying software because they may occur infrequently or only with certain inputs and environments. Thus, we would like to detect races in deployed software, but prior approaches add overheads too high for production use.
This talk presents Pacer, a deployable, scalable approach for detecting data races. The key to Pacer is a sampling approach that detects any race whose first access occurs in a global sampling period. Pacer is well suited for widespread use in deployed systems, where it can help programmers identify and fix rare, difficult-to-reproduce races, leading to software that is significantly more reliable than it is today.
Michael D. Bond is a postdoctoral fellow in Computer Science at UT Austin. He received his PhD from UT Austin in December 2008, supervised by Kathryn S. McKinley. His research makes software more robust by using dynamic analysis to diagnose and tolerate unexpected errors. His dissertation received the 2008 ACM SIGPLAN Outstanding Doctoral Dissertation Award.