UFO Trees: Practical and Provably-Efficient Parallel Batch-Dynamic Trees
By: Quinten De Man , Atharva Sharma , Kishen N Gowda and more
The dynamic trees problem is to maintain a tree under edge updates while supporting queries like connectivity queries or path queries. Despite the first data structure for this fundamental problem -- the link-cut tree -- being invented 40 years ago, our experiments reveal that they are still the fastest sequential data structure for the problem. However, link-cut trees cannot support parallel batch-dynamic updates and have limitations on the kinds of queries they support. In this paper, we design a new parallel batch-dynamic trees data structure called UFO trees that simultaneously supports a wide range of query functionality, supports work-efficient parallel batch-dynamic updates, and is competitive with link-cut trees when run sequentially. We prove that a key reason for the strong practical performance of both link-cut trees and UFO trees is that they can perform updates and queries in sub-logarithmic time for low-diameter trees. We perform an experimental study of our optimized C++ implementations of UFO trees with ten other dynamic tree implementations, several of which are new, in a broad benchmark of both synthetic and real-world trees of varying diameter and size. Our results show that, in both sequential and parallel settings, UFO trees are the fastest dynamic tree data structure that supports a wide range of queries. Our new implementation of UFO trees has low space usage and easily scales to billion-size inputs, making it a promising building block for implementing more complex dynamic graph algorithms in practice.
Similar Papers
Parallel Dynamic Spatial Indexes
Databases
Lets computers quickly update maps and robots.
An experimental comparison of tree-data structures for connectivity queries on fully-dynamic undirected graphs (Extended Version)
Databases
Makes computer networks handle changes better.
Parallel Joinable B-Trees in the Fork-Join I/O Model
Data Structures and Algorithms
Makes computers sort data much faster, even with lots of information.