Skiplists are used in a variety of applications for storing data subject to order criteria. In this article we discuss the design, analysis and performance of a concurrent deterministic skip list on many-core NUMA nodes. We also evaluate the performance of a concurrent lock-free unbounded queue implementation and three implementations of multi-writer, multi-reader~(MWMR) hash tables and compare their performance with equivalent implementations from Intel's Thread Building Blocks~(TBB) library. We focus on strategies for memory management that reduce page faults and cache misses for the memory access patterns in these data structures. This paper proposes hierarchical usage of concurrent data structures in programs to improve memory latencies by reducing memory accesses from remote NUMA nodes.
翻译:跳表被广泛应用于需要按顺序标准存储数据的各类场景中。本文讨论了在多核NUMA节点上设计的并发确定性跳表及其分析与性能表现。我们还评估了一种并发无锁无界队列实现及三种多写者多读者(MWMR)哈希表实现的性能,并将其与英特尔线程构建模块(TBB)库中的等效实现进行了比较。我们重点研究了针对这些数据结构内存访问模式,能够减少缺页和缓存未命中的内存管理策略。本文提出在程序中分层使用并发数据结构,通过减少来自远程NUDA节点的内存访问,从而改善内存延迟。