D4: fast concurrency debugging with parallel differential analysis.
Published in Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’18), 2018
Recommended citation: Liu, Bozhen. Huang, Jeff. (2018). "D4: fast concurrency debugging with parallel differential analysis." PLDI. https://dl.acm.org/doi/pdf/10.1145/3296979.3192390
Abstract
We present D4, a fast concurrency analysis framework that detects concurrency bugs (e.g., data races and deadlocks) interactively in the programming phase. As developers add, modify, and remove statements, the code changes are sent to D4 to detect concurrency bugs in real time, which in turn provides immediate feedback to the developer of the new bugs. The cornerstone of D4 includes a novel system design and two novel parallel differential algorithms that embrace both change and parallelization for fundamental static analyses of concurrent programs. Both algorithms react to program changes by memoizing the analysis results and only recomputing the impact of a change in parallel. Our evaluation on an extensive collection of large real-world applications shows that D4 efficiently pinpoints concurrency bugs within 100ms on average after a code change, several orders of magnitude faster than both the exhaustive analysis and the state-of-the-art incremental techniques.