TY - GEN
T1 - Accurate and efficient filtering for the Intel thread checker race detector
AU - Sack, Paul
AU - Bliss, Brian E.
AU - Ma, Zhiqiang
AU - Petersen, Paul
AU - Torrellas, Josep
PY - 2006
Y1 - 2006
N2 - Debugging data races in parallel applications is a difficult task. Error-causing data races may appear to vanish due to changes in an application's optimization level, thread scheduling, whether or not a debugger is used, and other effects. Further, many race conditions cause incorrect program behavior only in rare scenarios and may lie undetected during software testing.Tools exist today that do a decent job in finding data races in multi-threaded applications. Some data-race detection tools are very efficient and can detect data races with less than a 2x performance penalty. Most such tools, however, do not provide enough information to the user, require recompilation, or impose other usage restrictions. Other tools, such as the one considered in this paper (Intel's Thread Checker), provide users with plenty of useful information and can be used with any application binary, but have high overheads - often over 200x. It is the goal of this paper to speed up Thread Checker by filtering out the vast majority of memory references that are highly unlikely to be involved in data races. In our work, we develop filters that filter 90-100% of all memory references from the datarace detection algorithm, resulting in speedups of 2.2-5.5x, with an average improvement of 3.3x.
AB - Debugging data races in parallel applications is a difficult task. Error-causing data races may appear to vanish due to changes in an application's optimization level, thread scheduling, whether or not a debugger is used, and other effects. Further, many race conditions cause incorrect program behavior only in rare scenarios and may lie undetected during software testing.Tools exist today that do a decent job in finding data races in multi-threaded applications. Some data-race detection tools are very efficient and can detect data races with less than a 2x performance penalty. Most such tools, however, do not provide enough information to the user, require recompilation, or impose other usage restrictions. Other tools, such as the one considered in this paper (Intel's Thread Checker), provide users with plenty of useful information and can be used with any application binary, but have high overheads - often over 200x. It is the goal of this paper to speed up Thread Checker by filtering out the vast majority of memory references that are highly unlikely to be involved in data races. In our work, we develop filters that filter 90-100% of all memory references from the datarace detection algorithm, resulting in speedups of 2.2-5.5x, with an average improvement of 3.3x.
KW - Data-race detection
UR - http://www.scopus.com/inward/record.url?scp=34547175193&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=34547175193&partnerID=8YFLogxK
U2 - 10.1145/1181309.1181315
DO - 10.1145/1181309.1181315
M3 - Conference contribution
AN - SCOPUS:34547175193
SN - 1595935762
SN - 9781595935762
T3 - ASID'06: 1st Workshop on Architectural and System Support for Improving Software Dependability
SP - 34
EP - 41
BT - ASID'06
T2 - ASID'06: 1st Workshop on Architectural and System Support for Improving Software Dependability
Y2 - 21 October 2006 through 21 October 2006
ER -