TY - GEN
T1 - Partial-coherence abstractions for relaxed memory models
AU - Kuperstein, Michael
AU - Vechev, Martin
AU - Yahav, Eran
PY - 2011
Y1 - 2011
N2 - We present an approach for automatic verification and fence inference in concurrent programs running under relaxed memory models. Verification under relaxed memory models is a hard problem. Given a finite state program and a safety specification, verifying that the program satisfies the specification under a sufficiently relaxed memory model is undecidable. For stronger models, the problem is decidable but has non-primitive recursive complexity. In this paper, we focus on models that have store-buffer based semantics, e.g., SPARC TSO and PSO. We use abstract interpretation to provide an effective verification procedure for programs running under this type of models. Our main contribution is a family of novel partial-coherence abstractions, specialized for relaxed memory models, which partially preserve information required for memory coherence and consistency. We use our abstractions to automatically verify programs under relaxed memory models. In addition, when a program violates its specification but can be fixed by adding fences, our approach can automatically infer a correct fence placement that is optimal under the abstraction. We implemented our approach in a tool called BLENDER and applied it to verify and infer fences in several concurrent algorithms.
AB - We present an approach for automatic verification and fence inference in concurrent programs running under relaxed memory models. Verification under relaxed memory models is a hard problem. Given a finite state program and a safety specification, verifying that the program satisfies the specification under a sufficiently relaxed memory model is undecidable. For stronger models, the problem is decidable but has non-primitive recursive complexity. In this paper, we focus on models that have store-buffer based semantics, e.g., SPARC TSO and PSO. We use abstract interpretation to provide an effective verification procedure for programs running under this type of models. Our main contribution is a family of novel partial-coherence abstractions, specialized for relaxed memory models, which partially preserve information required for memory coherence and consistency. We use our abstractions to automatically verify programs under relaxed memory models. In addition, when a program violates its specification but can be fixed by adding fences, our approach can automatically infer a correct fence placement that is optimal under the abstraction. We implemented our approach in a tool called BLENDER and applied it to verify and infer fences in several concurrent algorithms.
KW - abstract interpretation
KW - concurrency
KW - relaxed memory models
KW - synthesis
KW - weak memory models
UR - http://www.scopus.com/inward/record.url?scp=79959882075&partnerID=8YFLogxK
U2 - https://doi.org/10.1145/1993498.1993521
DO - https://doi.org/10.1145/1993498.1993521
M3 - منشور من مؤتمر
SN - 9781450306638
T3 - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
SP - 187
EP - 198
BT - PLDI'11 - Proceedings of the 2011 ACM Conference on Programming Language Design and Implementation
T2 - 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'11
Y2 - 4 June 2011 through 8 June 2011
ER -