DocumentCode
509947
Title
Light64: Lightweight hardware support for data race detection during Systematic Testing of parallel programs
Author
Nistor, Adrian ; Marinov, Darko ; Torrellas, Josep
Author_Institution
Univ. of Illinois at Urbana-Champaign, Urbana, IL, USA
fYear
2009
fDate
12-16 Dec. 2009
Firstpage
541
Lastpage
552
Abstract
Developing and testing parallel code is hard. Even for one given input, a parallel program can have many possible different thread interleavings, which are hard for the programmer to foresee and for a testing tool to cover using stress or random testing. For this reason, a recent trend is to use systematic testing, which methodically explores different thread interleavings, while checking for various bugs. Data races are common bugs but, unfortunately, checking for races is often skipped in systematic testers because it introduces substantial runtime overhead if done purely in software. Recently, several techniques for race detection in hardware have been proposed, but they still require significant hardware support. This paper presents Light64, a novel technique for data race detection during systematic testing that has both small runtime overhead and very lightweight hardware requirements. Light64 is based on the observation that two thread interleavings in which racing accesses are flipped will very likely exhibit some deviation in their program execution history. Light64 computes a 64-bit hash of the program execution history during systematic testing. If the hashes of two interleavings with the same happens-before graph differ, then a race has occurred. Light64 only needs a 64-bit register per core, a drastic improvement over previous hardware schemes. In addition, our experiments on SPLASH-2 applications show that Light64 has no false positives, detects 96% of races, and induces only a small slowdown for race-free executions - on average, 1% and 37% in two different modes.
Keywords
parallel programming; program testing; Light64; SPLASH-2 applications; data race detection; lightweight hardware support; parallel programs; program execution history; random testing; stress testing; systematic testing; thread interleavings; Computer bugs; Hardware; History; Interleaved codes; Programming profession; Runtime; Software testing; Stress; System testing; Yarn; Data Race; Execution History Hash; Systematic Testing;
fLanguage
English
Publisher
ieee
Conference_Titel
Microarchitecture, 2009. MICRO-42. 42nd Annual IEEE/ACM International Symposium on
Conference_Location
New York, NY
ISSN
1072-4451
Print_ISBN
978-1-60558-798-1
Type
conf
Filename
5375056
Link To Document