Scaling predictive analysis of concurrent programs by removing trace redundancy Academic Article uri icon

abstract

  • Predictive trace analysis (PTA) of concurrent programs is powerful in finding concurrency bugs unseen in past program executions. Unfortunately, existing PTA solutions face considerable challenges in scaling to large traces. In this article, we identify that a large percentage of events in the trace are redundant for presenting useful analysis results to the end user. Removing them from the trace can significantly improve the scalability of PTA without affecting the quality of the results. We present a trace redundancy theorem that specifies a redundancy criterion and the soundness guarantee that the PTA results are preserved after removing the redundancy. Based on this criterion, we design and implement TraceFilter, an efficient algorithm that automatically removes redundant events from a trace for the PTA of general concurrency access anomalies. We evaluated TraceFilter on a set of popular concurrent benchmarks as well as real world large server programs. Our experimental results show that TraceFilter is able to significantly improve the scalability of PTA by orders of magnitude, without impairing the analysis result.

published proceedings

  • ACM Transactions on Software Engineering and Methodology

altmetric score

  • 3

author list (cited authors)

  • Huang, J., Zhou, J., & Zhang, C.

citation count

  • 13

complete list of authors

  • Huang, Jeff||Zhou, Jinguo||Zhang, Charles

publication date

  • February 2013