Are lock-free concurrent algorithms practically wait-free?
Alistarh D-A, Censor Hillel K, Shavit N. 2014. Are lock-free concurrent algorithms practically wait-free? STOC: Symposium on Theory of Computing, 714–723.
Download (ext.)
https://arxiv.org/abs/1311.3200
[Preprint]
Conference Paper
| Published
| English
Author
Alistarh, Dan-AdrianISTA ;
Censor Hillel, Keren;
Shavit, Nir
Abstract
Lock-free concurrent algorithms guarantee that some concurrent operation will always make progress in a finite number of steps. Yet programmers prefer to treat concurrent code as if it were wait-free, guaranteeing that all operations always make progress. Unfortunately, designing wait-free algorithms is generally a very complex task, and the resulting algorithms are not always efficient. While obtaining efficient wait-free algorithms has been a long-time goal for the theory community, most non-blocking commercial code is only lock-free. This paper suggests a simple solution to this problem. We show that, for a large class of lock-free algorithms, under scheduling conditions which approximate those found in commercial hardware architectures, lock-free algorithms behave as if they are wait-free. In other words, programmers can keep on designing simple lock-free algorithms instead of complex wait-free ones, and in practice, they will get wait-free progress. Our main contribution is a new way of analyzing a general class of lock-free algorithms under a stochastic scheduler. Our analysis relates the individual performance of processes with the global performance of the system using Markov chain lifting between a complex per-process chain and a simpler system progress chain. We show that lock-free algorithms are not only wait-free with probability 1, but that in fact a general subset of lock-free algorithms can be closely bounded in terms of the average number of steps required until an operation completes. To the best of our knowledge, this is the first attempt to analyze progress conditions, typically stated in relation to a worst case adversary, in a stochastic model capturing their expected asymptotic behavior.
Publishing Year
Date Published
2014-01-01
Publisher
ACM
Acknowledgement
Dan Alistarh - Part of this work was performed while the author was a Postdoctoral Associate at MIT CSAIL, where he was supported by SNF
Postdoctoral Fellows Program, NSF grant CCF-1217921, DoE
ASCR grant ER26116/DE-SC0008923, and by grants from the Oracle and Intel corporations.
Keron Censor-Hillel - Shalon Fellow
Nir Shavit - This work was supported in part by NSF grants CCF-1217921 and
CCF-1301926, DoE ASCR grant ER26116/DE-SC0008923, and
by grants from the Oracle and Intel corporations.
Page
714 - 723
Conference
STOC: Symposium on Theory of Computing
IST-REx-ID
Cite this
Alistarh D-A, Censor Hillel K, Shavit N. Are lock-free concurrent algorithms practically wait-free? In: ACM; 2014:714-723. doi:10.1145/2591796.2591836
Alistarh, D.-A., Censor Hillel, K., & Shavit, N. (2014). Are lock-free concurrent algorithms practically wait-free? (pp. 714–723). Presented at the STOC: Symposium on Theory of Computing, ACM. https://doi.org/10.1145/2591796.2591836
Alistarh, Dan-Adrian, Keren Censor Hillel, and Nir Shavit. “Are Lock-Free Concurrent Algorithms Practically Wait-Free?,” 714–23. ACM, 2014. https://doi.org/10.1145/2591796.2591836.
D.-A. Alistarh, K. Censor Hillel, and N. Shavit, “Are lock-free concurrent algorithms practically wait-free?,” presented at the STOC: Symposium on Theory of Computing, 2014, pp. 714–723.
Alistarh D-A, Censor Hillel K, Shavit N. 2014. Are lock-free concurrent algorithms practically wait-free? STOC: Symposium on Theory of Computing, 714–723.
Alistarh, Dan-Adrian, et al. Are Lock-Free Concurrent Algorithms Practically Wait-Free? ACM, 2014, pp. 714–23, doi:10.1145/2591796.2591836.
All files available under the following license(s):
Copyright Statement:
This Item is protected by copyright and/or related rights. [...]
Link(s) to Main File(s)
Access Level
Open Access
Export
Marked PublicationsOpen Data ISTA Research Explorer
Sources
arXiv 1311.3200