TY - JOUR
T1 - Lock cohorting
T2 - A general technique for designing NUMA locks
AU - Dice, David
AU - Marathe, Virendra J.
AU - Shavit, Nir
N1 - Publisher Copyright:
© 2015 ACM.
PY - 2015/1
Y1 - 2015/1
N2 - Multicore machines are quickly shifting to NUMA and CC-NUMA architectures, making scalable NUMAaware locking algorithms, ones that take into account the machine's nonuniform memory and caching hierarchy, ever more important. This article presents lock cohorting, a general new technique for designing NUMA-aware locks that is as simple as it is powerful. Lock cohorting allows one to transform any spin-lock algorithm, with minimal nonintrusive changes, into a scalable NUMA-aware spin-lock. Our new cohorting technique allows us to easily create NUMA-aware versions of the TATAS-Backoff, CLH, MCS, and ticket locks, to name a few. Moreover, it allows us to derive a CLH-based cohort abortable lock, the first NUMA-aware queue lock to support abortability. We empirically compared the performance of cohort locks with prior NUMA-aware and classic NUMAoblivious locks on a synthetic micro-benchmark, a real world key-value store application memcached, as well as the libc memory allocator. Our results demonstrate that cohort locks perform as well or better than known locks when the load is low and significantly out-perform them as the load increases.
AB - Multicore machines are quickly shifting to NUMA and CC-NUMA architectures, making scalable NUMAaware locking algorithms, ones that take into account the machine's nonuniform memory and caching hierarchy, ever more important. This article presents lock cohorting, a general new technique for designing NUMA-aware locks that is as simple as it is powerful. Lock cohorting allows one to transform any spin-lock algorithm, with minimal nonintrusive changes, into a scalable NUMA-aware spin-lock. Our new cohorting technique allows us to easily create NUMA-aware versions of the TATAS-Backoff, CLH, MCS, and ticket locks, to name a few. Moreover, it allows us to derive a CLH-based cohort abortable lock, the first NUMA-aware queue lock to support abortability. We empirically compared the performance of cohort locks with prior NUMA-aware and classic NUMAoblivious locks on a synthetic micro-benchmark, a real world key-value store application memcached, as well as the libc memory allocator. Our results demonstrate that cohort locks perform as well or better than known locks when the load is low and significantly out-perform them as the load increases.
KW - Concurrency
KW - Hierarchical locks
KW - Locks
KW - Multicore
KW - Mutex
KW - Mutual exclusion
KW - NUMA
KW - Spin locks
UR - http://www.scopus.com/inward/record.url?scp=84954143807&partnerID=8YFLogxK
U2 - 10.1145/2686884
DO - 10.1145/2686884
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:84954143807
SN - 2329-4949
VL - 1
JO - ACM Transactions on Parallel Computing
JF - ACM Transactions on Parallel Computing
IS - 2
M1 - a13
ER -