ETRI-Knowledge Sharing Plaform



논문 검색
구분 SCI
연도 ~ 키워드


학술지 Efficient Noise Injection for Exposing Hidden Data Races
Cited 1 time in scopus Download 38 time Share share facebook twitter linkedin kakaostory
유미선, 마유승, 배두환
Journal of Supercomputing, v.76 no.1, pp.292-323
19HS4800, 인공지능 시스템을 위한 뉴로모픽 컴퓨팅 SW 플랫폼 기술 개발, 김태호
The happens-before (HB) relation is widely used to precisely detect data races, which are among the major causes of concurrency bugs. However, the HB relation is sensitive to thread interleaving; thus, hidden races that can be revealed in other thread interleavings may remain despite the repeated running of a program with an HB detector. In this paper, we propose a noise injection-based race detection technique (RaceInducer) that can expose and detect hidden races by using the runtime HB analysis result to determine the noise injection instants. RaceInducer delays a thread execution after the occurrence of the first no-lock non-racing accesses of three types (read-exclusive, write-exclusive, and read-shared) to a shared variable during a precise HB detection (FastTrack). Using this technique, RaceInducer can efficiently disturb the normal locking sequences between two threads that generate HB edges hiding data races. We implemented RaceInducer on the RoadRunner instrumentation framework for Java and evaluated its detection capability and runtime overheads on 12 real-world benchmark programs. The evaluation results showed that RaceInducer generated a lower runtime overhead compared to random noise injection that randomly injected noise for no-lock non-racing accesses and can detect more races with the same noise strength. RaceInducer generates particularly lower runtime overhead than the random noise injection for large programs that generates a high number of shared-memory accesses. In addition, we experimentally demonstrated that RaceInducer incurred lower runtime overheads than a current hidden-race detector (DrFinder) for programs with a relatively large number of locking operations.
KSP 제안 키워드
Data race, HB analysis, Happens-before, Hidden data, Memory Access, Noise injection, Noise strength, Random Noise, Real-world, Runtime overhead, Shared Memory