Data races are a real problem for parallel software, yet hard to detect. Sound predictive analysis observes a program execution and detects data races that exist in some other, unobserved execution. However, existing predictive analyses miss races because they do not scale to full program executions or do not precisely incorporate data and control dependence. This paper introduces two novel, sound predictive approaches that incorporate data and control dependence and handle full program executions. An evaluation using real, large Java programs shows that these approaches detect more data races than the closest related approaches, thus advancing the state of the art in sound predictive race detection.
翻译:数据竞赛是平行软件的一个实际问题,但很难检测。 可靠的预测分析观察了程序执行,并检测了某些其他未观察的执行中存在的数据竞赛。 但是, 现有的预测分析误差了种族竞赛, 因为它们没有达到完全的方案处决, 也没有精确地纳入数据和控制依赖性。 本文介绍了两种新颖的、 健全的预测方法, 包括数据和控制依赖性, 以及处理完全的方案处决。 使用真实的大型爪哇方案进行的评估显示, 这些方法比最接近的相关方法检测更多的数据竞赛, 从而提升了可靠预测种族探测的先进水平 。