Int J Performability Eng ›› 2018, Vol. 14 ›› Issue (11): 2683-2691.doi: 10.23940/ijpe.18.11.p14.26832691

Previous Articles     Next Articles

SRD: Static Data Race Detection for Concurrent Programs

Yang Zhang, Yanan Liang, and Dongwen Zhang*   

  1. School of Information Science and Technology, Hebei University of Science and Technology, Shijiazhuang, 050000, China
  • Submitted on ;
  • Contact: * E-mail address: zdwwtx@hebust.edu.cn
  • About author:Yang Zhang received his Ph.D. from the Beijing Institute of Technology. Currently, he is an associate professor at Hebei University of Science and Technology. His research interests include parallel programming, software refactoring, and program analysis.Yanan Liang is currently a candidate for a Master's degree at Hebei University of Science and Technology. Her research interests focus on parallel programming and data race detection.Dongwen Zhang received her Ph.D. from the Beijing Institute of Technology. She is currently a professor in the School of Information Science and Engineering at Hebei University of Science and Technology. Her research interests focus on parallel programming models and software refactoring for parallelism.

Abstract: Data race probably occurs when many threads concurrently access the same memory location and at least one is a write thread. Data race detection suffers from false negatives and false positives. How to detect data race and avoid false negatives and false positives has become a hot topic. This paper proposes a static data race detection methodology to eliminate false negatives and false positives. We use Soot to conduct intra-thread and inter-thread analysis. Our data race detection focuses on variable access events that are collected from call graphs. Several program analysis technologies, such as alias variable analysis, alias lock analysis, happens-before analysis, constraint graph, and slicing analysis, are used to improve the coverage and precision of the detection results. In the experimentation, several benchmarks, such as raytracer, sor, and mergesort, have been selected to evaluate our methodology. Experimental results show that SRD can not only eliminate fake races but also identify potential races. Furthermore, SRD can detect more positive races than the existing tool RVPredict.

Key words: data race, intra/inter-thread analysis, alias analysis, happens-before, concurrent program