In Search of the Fastest Concurrent Union-Find Algorithm

11/14/2019
by   Dan Alistarh, et al.
0

Union-Find (or Disjoint-Set Union) is one of the fundamental problems in computer science; it has been well-studied from both theoretical and practical perspectives in the sequential case. Recently, there has been mounting interest in analyzing this problem in the concurrent scenario, and several asymptotically-efficient algorithms have been proposed. Yet, to date, there is very little known about the practical performance of concurrent Union-Find. This work addresses this gap. We evaluate and analyze the performance of several concurrent Union-Find algorithms and optimization strategies across a wide range of platforms (Intel, AMD, and ARM) and workloads (social, random, and road networks, as well as integrations into more complex algorithms). We first observe that, due to the limited computational cost, the number of induced cache misses is the critical determining factor for the performance of existing algorithms. We introduce new techniques to reduce this cost by storing node priorities implicitly and by using plain reads and writes in a way that does not affect the correctness of the algorithms. Finally, we show that Union-Find implementations are an interesting application for Transactional Memory (TM): one of the fastest algorithm variants we discovered is a sequential one that uses coarse-grained locking with the lock elision optimization to reduce synchronization cost and increase scalability.

READ FULL TEXT
research
03/02/2020

Concurrent Disjoint Set Union

We develop and analyze concurrent algorithms for the disjoint set union ...
research
04/18/2023

Provably-Efficient and Internally-Deterministic Parallel Union-Find

Determining the degree of inherent parallelism in classical sequential a...
research
05/17/2021

A Scalable Concurrent Algorithm for Dynamic Connectivity

Dynamic Connectivity is a fundamental algorithmic graph problem, motivat...
research
07/26/2023

Algoritmo Concurrente por Conjuntos de Pilas con Multiplicidad: SetStackLogic

This article aims to describe and explain the theoretical foundations of...
research
07/16/2021

Almost linear Boolean functions on S_n are almost unions of cosets

We show that if f S_n →{0,1} is ϵ-close to linear in L_2 and 𝔼[f] ≤ 1/2 ...
research
07/03/2017

Checking Linearizability of Concurrent Priority Queues

Efficient implementations of concurrent objects such as atomic collectio...
research
11/05/2020

Towards a more perfect union type

We present a principled theoretical framework for inferring and checking...

Please sign up or login with your details

Forgot password? Click here to reset