<p>The widespread adoption of multi-core processors necessitates advanced concurrent programming techniques to fully harness hardware concurrency. In modern multi-socket server systems, memory access latency depends on the physical proximity between processing cores and memory locations. Non-Uniform Memory Access (NUMA) architectures exhibit such behavior, where accessing local memory is faster than accessing remote memory. This architectural characteristic introduces synchronization challenges in multi-threaded applications, due to remote memory access overhead. This paper introduces a novel mutual exclusion mechanism designed specifically for NUMA architectures, named NLock. NLock features unique queues for threads operating on individual NUMA nodes, enhancing local data access and reducing latency. We detail the algorithms that govern the <Emphasis FontCategory="NonProportional">lock()</Emphasis> and <Emphasis FontCategory="NonProportional">unlock()</Emphasis> methods of NLock and present a comparative analysis of its performance against state-of-the-art locking mechanisms and concurrent data structures. Our results show that NLock consistently achieves higher throughput, underscoring the benefits of a synchronization primitive that aligns with the architectural nuances of modern NUMA systems. The design of NLock enables an efficient local hand-over mechanism and in turn, achieves substantial performance advantages by co-optimizing lock design with modern NUMA architectures. To evaluate the performance of NLock, we consider the state-of-the-art locking mechanisms and concurrent data structures. The implementation that uses NLock as a locking object consistently attains higher throughput as compared with the state-of-the-art locking mechanisms.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

NLock: A Scalable Lock for NUMA Architectures

  • Brahmaiah Gandham,
  • Praveen Alapati,
  • Aman Iftekhar

摘要

The widespread adoption of multi-core processors necessitates advanced concurrent programming techniques to fully harness hardware concurrency. In modern multi-socket server systems, memory access latency depends on the physical proximity between processing cores and memory locations. Non-Uniform Memory Access (NUMA) architectures exhibit such behavior, where accessing local memory is faster than accessing remote memory. This architectural characteristic introduces synchronization challenges in multi-threaded applications, due to remote memory access overhead. This paper introduces a novel mutual exclusion mechanism designed specifically for NUMA architectures, named NLock. NLock features unique queues for threads operating on individual NUMA nodes, enhancing local data access and reducing latency. We detail the algorithms that govern the lock() and unlock() methods of NLock and present a comparative analysis of its performance against state-of-the-art locking mechanisms and concurrent data structures. Our results show that NLock consistently achieves higher throughput, underscoring the benefits of a synchronization primitive that aligns with the architectural nuances of modern NUMA systems. The design of NLock enables an efficient local hand-over mechanism and in turn, achieves substantial performance advantages by co-optimizing lock design with modern NUMA architectures. To evaluate the performance of NLock, we consider the state-of-the-art locking mechanisms and concurrent data structures. The implementation that uses NLock as a locking object consistently attains higher throughput as compared with the state-of-the-art locking mechanisms.