ACM SIGPLAN Notices · 2014 · 35 citations · 16 references
ComputingComputer EngineeringComputer ScienceComputer ArchitectureConcurrency AnalysisConcurrency ControlConcurrent ProgrammingData Race AnalysisDynamic Race DetectionRace Condition AnalysisRace Condition DetectionRace Conditions
This paper introduces the concept of a commutativity race. A commutativity race occurs in a given execution when two library method invocations can happen concurrently yet they do not commute. Commutativity races are an elegant concept enabling reasoning about concurrent interaction at the library interface. We present a dynamic commutativity race detector. Our technique is based on a novel combination of vector clocks and a structural representation automatically obtained from a commutativity specification. Conceptually, our work can be seen as generalizing classical read-write race detection. We also present a new logical fragment for specifying commutativity conditions. This fragment is expressive, yet guarantees a constant number of comparisons per method invocation rather than linear with unrestricted specifications. We implemented our analyzer and evaluated it on real-world applications. Experimental results indicate that our analysis is practical: it discovered harmful commutativity races with overhead comparable to state-of-the-art, low-level race detectors.
16
Cormac Flanagan, Stephen N. Freund · 2009 · 671 citations
Optimistic parallelism requires abstractions
Milind Kulkarni, Keshav Pingali, Bruce Walter et al. · 2007 · 447 citations
Maurice Herlihy, Eric Koskinen · 2008 · 311 citations