Charles H. Bennett, Aram W. Harrow, et al.
IEEE Trans. Inf. Theory
Practical and efficient algorithms for concurrent data structures are difficult to construct and modify. Algorithms in the literature are often optimized for a specific setting, making it hard to separate the algorithmic insights from implementation details. The goal of this work is to systematically construct algorithms for a concurrent data structure starting from its sequential implementation. Towards that goal, we follow a construction process that combines manual steps corresponding to high-level insights with automatic exploration of implementation details. To assist us in this process, we built a new tool called PARAGLIDER. The tool quickly explores large spaces of algorithms and uses bounded model checking to check linearizability of algorithms. Starting from a sequential implementation and assisted by the tool, we present the steps that we used to derive various highly-concurrent algorithms. Among these algorithms is a new finegrained set data structure that provides a wait-free contains operation, and uses only the compare-and-swap (CAS) primitive for synchronization. Copyright copy; 2008 ACM.
Charles H. Bennett, Aram W. Harrow, et al.
IEEE Trans. Inf. Theory
A. Gupta, R. Gross, et al.
SPIE Advances in Semiconductors and Superconductors 1990
Ehud Altman, Kenneth R. Brown, et al.
PRX Quantum
Eric Price, David P. Woodruff
FOCS 2011