Pruning False Positives of Static Data-Race Detection via Thread Specialization

作者: Chen Chen , Kai Lu , Xiaoping Wang , Xu Zhou , Li Fang

DOI: 10.1007/978-3-642-45293-2_6

关键词: False positive rateParallel computingFalse positive paradoxStatic dataDynamic instrumentationComputer scienceStatic analysisThread (computing)

摘要: Static data-race detection is a powerful tool by providing clues for dynamic approaches to only instrument certain memory accesses. However, static analysis suffers from high false positive rate. A key reason that overestimates the set of shared objects thread can access. We propose specialization distinguish threads statically. By fixing number as well ID assigned each thread, program be transformed simplified version. on this infer range addresses accessed more accurately. Our approach prunes positives an average 89.2% and reduces instrumentation 63.4% in seven benchmarks.

参考文章(23)
Nicholas Sterling, WARLOCK - A Static Data Race Analysis Tool. USENIX Winter. pp. 97- 106 ,(1993)
Cristian Cadar, Daniel Dunbar, Dawson Engler, KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs operating systems design and implementation. pp. 209- 224 ,(2008) , 10.5555/1855741.1855756
Ted Kremenek, Dawson Engler, Z-ranking: using statistical analysis to counter the impact of static analysis approximations static analysis symposium. pp. 295- 315 ,(2003) , 10.5555/1760267.1760289
Thomas Reps, Todd Turnidge, Program Specialization via Program Slicing Selected Papers from the International Seminar on Partial Evaluation. pp. 409- 429 ,(1996) , 10.1007/3-540-61580-6_20
Vineet Kahlon, Nishant Sinha, Erik Kruus, Yun Zhang, Static data race detection for concurrent programs with asynchronous calls foundations of software engineering. pp. 13- 22 ,(2009) , 10.1145/1595696.1595701
Vivek Nirkhe, William Pugh, Partial evaluation of high-level imperative programming languages with applications in hard real-time systems symposium on principles of programming languages. pp. 269- 280 ,(1992) , 10.1145/143165.143223
Radu Rugina, Martin Rinard, Symbolic bounds analysis of pointers, array indices, and accessed memory regions Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation - PLDI '00. ,vol. 35, pp. 182- 195 ,(2000) , 10.1145/349299.349325
Polyvios Pratikakis, Jeffrey S. Foster, Michael Hicks, LOCKSMITH ACM Transactions on Programming Languages and Systems. ,vol. 33, pp. 1- 55 ,(2011) , 10.1145/1889997.1890000
Charles Consel, Olivier Danvy, Tutorial notes on partial evaluation Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93. pp. 493- 501 ,(1993) , 10.1145/158511.158707
Jingyue Wu, Yang Tang, Gang Hu, Heming Cui, Junfeng Yang, Sound and precise analysis of parallel programs through schedule specialization programming language design and implementation. ,vol. 47, pp. 205- 216 ,(2012) , 10.1145/2254064.2254090