In combining-based synchronization, two main parameters that affect performance are the com- bining degree of the synchronization algorithm, i.e. the average number of requests that each com- biner serves, and the number of expensive synchronization primitives (like CAS, Swap, etc.) that it performs. The value of the first parameter must be high, whereas the second must be kept low. In this paper, we present Osci, a new combining technique that shows remarkable perform- ance when paired with cheap context switching. We experimentally show that Osci significantly outperforms all previous combining algorithms. Specifically, the throughput of Osci is higher than that of previously presented combining techniques by more than an order of magnitude. Notably, Osci’s throughput is much closer to the ideal than all previous algorithms, while keep- ing the average latency in serving each request low. We evaluated the performance of Osci in two different multiprocessor architectures, namely AMD and Intel. Based on Osci, we implement and experimentally evaluate implementations of concurrent queues and stacks. These implementations outperform by far all current state-of-the-art concur- rent queue and stack implementations. Although the current version of Osci has been evaluated in an environment supporting user-level threads, it would run correctly on any threading library, preemptive or not (including kernel threads).
@InProceedings{fatourou_et_al:LIPIcs.OPODIS.2017.8, author = {Fatourou, Panagiota and Kallimanis, Nikolaos D.}, title = {{Lock Oscillation: Boosting the Performance of Concurrent Data Structures}}, booktitle = {21st International Conference on Principles of Distributed Systems (OPODIS 2017)}, pages = {8:1--8:17}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-061-3}, ISSN = {1868-8969}, year = {2018}, volume = {95}, editor = {Aspnes, James and Bessani, Alysson and Felber, Pascal and Leit\~{a}o, Jo\~{a}o}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.OPODIS.2017.8}, URN = {urn:nbn:de:0030-drops-86282}, doi = {10.4230/LIPIcs.OPODIS.2017.8}, annote = {Keywords: Synchronization, concurrent data structures, combining} }
Feedback for Dagstuhl Publishing