Mutable Locks: Combining the Best of Spin and Sleep Locks

Romolo Marotta, Davide Tiriticco, Pierangelo Di Sanzo, Alessandro Pellegrini, Bruno Ciciani, and Francesco Quaglia

Published in: Concurrency and Computation: Practice and Experience, 2020
pdf Download PDF

In this article we present Mutable Locks, a synchronization construct with the same semantic of traditional locks (such as spin locks or sleep locks), but with a self-tuned optimized trade off between responsiveness and CPU-time usage during threads’ wait phases. Mutable locks tackle the need for efficient synchronization supports in the era of multi-core machines, where the run-time performance should be optimized while reducing resource usage. This goal should be achieved with no intervention by the programmers. Our proposal is intended for exploitation in generic concurrent applications, where scarce or no knowledge is available about the underlying software/hardware stack and the workload. This is an adverse scenario for static choices between spinning and sleeping, which is tackled by our mutable locks thanks to their hybrid waiting phase and self-tuning capabilities.

BibTeX Entry:

author = {Marotta, Romolo and Tiriticco, Davide and Di Sanzo, Pierangelo and Pellegrini, Alessandro and Ciciani, Bruno and Quaglia, Francesco},
title = {Mutable Locks: Combining the Best of Spin and Sleep Locks},
journal = {Concurrency and Computation: Practice and Experience},
year = {2020},
volume = {32},
number = {22},
issn = {1532-0634},
month = jun,
publisher = {Wiley},
series = {CCPE},
doi = {10.1002/CPE.5858}