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 :
بازگشت