Dynamic data race prediction aims to identify races based on a single program run represented by a trace. The challenge is to remain efficient while being as sound and as complete as possible. Efficient means a linear run-time as otherwise the method unlikely scales for real-world programs. We introduce an efficient, near complete and often sound dynamic data race prediction method that combines the lockset method with several improvements made in the area of happens-before methods. By near complete we mean that the method is complete in theory but for efficiency reasons the implementation applies some optimizations that may result in incompleteness. The method can be shown to be sound for two threads but is unsound in general. We provide extensive experimental data that shows that our method works well in practice.
翻译:动态数据竞赛预测旨在根据一个以微量表示的单一程序来识别种族。 挑战在于保持效率, 同时保持尽可能的健全和完整。 高效意味着直线运行时间, 与现实世界程序不可能采用的方法一样。 我们引入了高效、 接近完整和通常健全的动态数据竞赛预测方法, 将锁定方法与前发生方法领域的一些改进结合起来。 接近完成后, 我们的意思是该方法在理论上是完整的, 但是由于效率原因, 实施的方法应用了一些优化, 可能会导致不完全性。 该方法对于两个线条来说是健全的, 但总的来说是不可靠的。 我们提供了广泛的实验数据, 表明我们的方法在实践中效果良好 。