LOFT: Redundant Synchronization Event Removal for Data Race Detection

Abstract: Many happens-before based techniques for multithreaded programs implement vector clocks to track incrementally the causal relations among the synchronization operations acting on threads and locks. In these detectors, every such operation results in a vector-based assignment to a vector clock, even though the assigned value is the same as the value of the vector clock right before the assignment. The cost of such vector-based operations however grows with the number of threads and the amount of such operations. It is unclear to what extent redundant assignments can be removed. Whether two consecutive assignments to the same vector clock of a thread result in the same content critically depends on the operations on the locks occurred in between these assignments. In this paper, we systematically explore the said insight and quantify a sufficient condition that can soundly remove such operations without affecting the precision of such tracking. We applied our approach on FastTrack to formulate LOFT. We evaluate LOFT using the PARSEC benchmarking suite. The result shows that, on average, LOFT removes 58.0% of all such operations incurred by FastTrack, and runs 16.2% faster than the latter in tracking the causal relations among these operations.
Grants:GRF 111410
Links: PDF
Remarks: The source code and the software will be avilable soon.
Related Papers:-

Selected Tags

Tag Groups


ACM SigSoft
IEEE Software Engineering Online