Layering Data Structures over Skip Graphs for Increased NUMA Locality

02/19/2019
by   Samuel Thomas, et al.
0

We describe an approach for blackbox concurrency based on layering user-provided, sequential data structures over concurrent skip graph variants for increased NUMA locality. We implement sets, maps, and priority queues, although our approach is potentially applicable for other data types. Threads operate privately on the top sequential data structures, used to jump to positions in the bottom concurrent skip graph, near to where insertions and removals take place, reducing remote memory accesses. A careful data structure partition scheme ensures the increase of data locality. We implemented our strategy in C++14, and our sets and maps run up to 23 highly-optimized concurrent skip list (our fastest contender), with up to 70 of reduction on the number of remote synchronized reads, and up to a 3.21 times increase in the CAS locality for 32 threads.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/03/2022

Technical Report: Bundling Linked Data Structures for Linearizable Range Queries

We present bundled references, a new building block to provide lineariza...
research
09/17/2023

Concurrent Deterministic Skiplist and Other Data Structures

Skiplists are used in a variety of applications for storing data subject...
research
08/03/2020

The Splay-List: A Distribution-Adaptive Concurrent Skip-List

The design and implementation of efficient concurrent data structures ha...
research
05/31/2019

Tracking in Order to Recover: Recoverable Lock-Free Data Structures

We present the tracking approach for deriving recoverable implementation...
research
03/30/2021

Synch: A framework for concurrent data-structures and benchmarks

The recent advancements in multicore machines highlight the need to simp...
research
11/08/2020

Generating Concurrent Programs From Sequential Data Structure Knowledge

In this paper we tackle the problem of automatically designing concurren...
research
09/17/2021

Generating Concurrent Programs From Sequential Data Structure Knowledge Using Answer Set Programming

We tackle the problem of automatically designing concurrent data structu...

Please sign up or login with your details

Forgot password? Click here to reset