Sequential Proximity
- 1 Citations
- 595 Downloads
Abstract
Establishing the scalability of a concurrent algorithm a priori, before implementing and evaluating it on a concrete multi-core platform, seems difficult, if not impossible. In the context of search data structures however, according to all practical work of the past decade, algorithms that scale share a common characteristic: They all resemble standard sequential implementations for their respective data structure type and strive to minimize the number of synchronization operations.
In this paper, we present sequential proximity, a theoretical framework to determine whether a concurrent search algorithm is close to its sequential counterpart. With sequential proximity we take the first step towards a theory of scalability for concurrent search algorithms.
References
- 1.Antoniadis, K., Guerraoui, R., Stainer, J., Trigonakis, V.: Sequential proximity: towards provably scalable concurrent search algorithms. Technical report, EPFL (2017)Google Scholar
- 2.Attiya, H., Guerraoui, R., Hendler, D., Kuznetsov, P. Michael, M.M., Vechev, M.T.: Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated. In: POPL (2011)Google Scholar
- 3.Bronson, N.G., Casper, J., Chafi, H., Olukotun, K.: A Practical Concurrent Binary Search Tree. In: PPopp (2010)Google Scholar
- 4.David, T., Guerraoui, R., Trigonakis, V., Concurrency, A.: The secret to scaling concurrent search data structures. In: ASPLOS (2015)Google Scholar
- 5.Ellen, F., Fatourou, P., Ruppert, E., van Breugel, F.: Non-blocking binary search trees. In: PODC (2010)Google Scholar
- 6.Facebook: RocksDB. http://rocksdb.org
- 7.Fraser, K.: Practical lock-freedom. Ph.D. thesis, University of Cambridge (2004)Google Scholar
- 8.Guerraoui, R., Trigonakis, V.: Optimistic concurrency with OPTIK. In: PPopp (2016)Google Scholar
- 9.Harris, T.L.: A pragmatic implementation of non-blocking linked-lists. In: Welch, J. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001). doi: 10.1007/3-540-45414-4_21 CrossRefGoogle Scholar
- 10.Heller, S., Herlihy, M., Luchangco, V., Moir, M., Scherer, W.N., Shavit, N.: A lazy concurrent list-based set algorithm. In: Anderson, J.H., Prencipe, G., Wattenhofer, R. (eds.) OPODIS 2005. LNCS, vol. 3974, pp. 3–16. Springer, Heidelberg (2006). doi: 10.1007/11795490_3 CrossRefGoogle Scholar
- 11.Herlihy, M.: Wait-free synchronization. In: TOPLAS (1991)Google Scholar
- 12.Herlihy, M., Wing, J.: Linearizability: a correctness condition for concurrent objects. In: TOPLAS (1990)Google Scholar
- 13.Herlihy, M., Lev, Y., Luchangco, V., Shavit, N.: A simple optimistic skiplist algorithm. In: Prencipe, G., Zaks, S. (eds.) SIROCCO 2007. LNCS, vol. 4474, pp. 124–138. Springer, Heidelberg (2007). doi: 10.1007/978-3-540-72951-8_11 CrossRefGoogle Scholar
- 14.Howley, S.V., Jones, J.: A non-blocking internal binary search tree. In: SPAA (2012)Google Scholar
- 15.Linux Kernel: Linux Kernel. https://www.kernel.org
- 16.Matveev, A., Shavit, N., Felber, P., Marlier, P.: Read-log-update: a lightweight synchronization mechanism for concurrent programming. In: SOSP (2015)Google Scholar
- 17.McKenney, P.E., Slingwine, J.D.: Read-copy update: using execution history to solve concurrency problems. In: PDCS (1998)Google Scholar
- 18.Pugh, W., Lists, S.: A probabilistic alternative to balanced trees. In: CACM (1990)Google Scholar