Volume 32, Issue 22 e5858
RESEARCH ARTICLE

Mutable locks: Combining the best of spin and sleep locks

Romolo Marotta

Corresponding Author

Romolo Marotta

DIAG, Sapienza, University of Rome, Rome, Italy

Correspondence

Romolo Marotta and Pierangelo Di Sanzo, DIAG, Sapienza, University of Rome, Italy.

Emails: [email protected] (R. M.) and [email protected] (P. D. S)

Francesco Quaglia, DICII, Tor Vergata University, Rome, Italy.

Email: [email protected]

Search for more papers by this author
Davide Tiriticco

Davide Tiriticco

DIAG, Sapienza, University of Rome, Rome, Italy

Search for more papers by this author
Pierangelo Di Sanzo

Corresponding Author

Pierangelo Di Sanzo

DIAG, Sapienza, University of Rome, Rome, Italy

Correspondence

Romolo Marotta and Pierangelo Di Sanzo, DIAG, Sapienza, University of Rome, Italy.

Emails: [email protected] (R. M.) and [email protected] (P. D. S)

Francesco Quaglia, DICII, Tor Vergata University, Rome, Italy.

Email: [email protected]

Search for more papers by this author
Alessandro Pellegrini

Alessandro Pellegrini

DIAG, Sapienza, University of Rome, Rome, Italy

Search for more papers by this author
Bruno Ciciani

Bruno Ciciani

DIAG, Sapienza, University of Rome, Rome, Italy

Search for more papers by this author
Francesco Quaglia

Corresponding Author

Francesco Quaglia

DICII, Tor Vergata University, Rome, Italy

Correspondence

Romolo Marotta and Pierangelo Di Sanzo, DIAG, Sapienza, University of Rome, Italy.

Emails: [email protected] (R. M.) and [email protected] (P. D. S)

Francesco Quaglia, DICII, Tor Vergata University, Rome, Italy.

Email: [email protected]

Search for more papers by this author
First published: 17 June 2020
Citations: 3

Summary

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 multicore 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.

The full text of this article hosted at iucr.org is unavailable due to technical difficulties.