The Best of Both Worlds: Trading Efficiency and Optimality in Fence Insertion for TSO
We present a method for automatic fence insertion in concurrent programs running under weak memory models that provides the best known trade-off between efficiency and optimality. On the one hand, the method can efficiently handle complex aspects of program behaviors such as unbounded buffers and large numbers of processes. On the other hand, it is able to find small sets of fences needed for ensuring correctness of the program. To this end, we propose a novel notion of correctness, called persistence, that compares the behavior of the program under the weak memory semantics with that under the classical interleaving semantics. We instantiate our framework for the Total Store Ordering memory model, and give an algorithm that reduces the fence insertion problem under TSO to the reachability problem for programs running under SC. Furthermore, we provide an abstraction scheme that substantially increases scalability to large numbers of processes.
Wed 15 AprDisplayed time zone: Azores change
10:30 - 12:30
|The Problem of Programming Language Concurrency Semantics
|The Best of Both Worlds: Trading Efficiency and Optimality in Fence Insertion for TSO
|Specifying and Verifying Concurrent Algorithms with Histories and Subjectivity