DeepAI AI Chat
Log In Sign Up

Parallel Batch-Dynamic kd-Trees

by   Rahul Yesantharao, et al.

kd-trees are widely used in parallel databases to support efficient neighborhood/similarity queries. Supporting parallel updates to kd-trees is therefore an important operation. In this paper, we present BDL-tree, a parallel, batch-dynamic implementation of a kd-tree that allows for efficient parallel k-NN queries over dynamically changing point sets. BDL-trees consist of a log-structured set of kd-trees which can be used to efficiently insert or delete batches of points in parallel with polylogarithmic depth. Specifically, given a BDL-tree with n points, each batch of B updates takes O(Blog^2(n+B)) amortized work and O(log(n+B)loglog(n+B)) depth (parallel time). We provide an optimized multicore implementation of BDL-trees. Our optimizations include parallel cache-oblivious kd-tree construction and parallel bloom filter construction. Our experiments on a 36-core machine with two-way hyper-threading using a variety of synthetic and real-world datasets show that our implementation of BDL-tree achieves a self-relative speedup of up to 34.8× (28.4× on average) for batch insertions, up to 35.5× (27.2× on average) for batch deletions, and up to 46.1× (40.0× on average) for k-nearest neighbor queries. In addition, it achieves throughputs of up to 14.5 million updates/second for batch-parallel updates and 6.7 million queries/second for k-NN queries. We compare to two baseline kd-tree implementations and demonstrate that BDL-trees achieve a good tradeoff between the two baseline options for implementing batch updates.


ParGeo: A Library for Parallel Computational Geometry

This paper presents ParGeo, a multicore library for computational geomet...

A Parallel Batch-Dynamic Data Structure for the Closest Pair Problem

We propose a theoretically-efficient and practical parallel batch-dynami...

GPU-friendly, Parallel, and (Almost-)In-Place Construction of Left-Balanced k-d Trees

We present an algorithm that allows for building left-balanced and compl...

Batch-Parallel Euler Tour Trees

The dynamic trees problem is to maintain a forest undergoing edge insert...

Parallel Batch-Dynamic Graph Connectivity

With the rapid growth of graph datasets over the past decade, a new kind...

MSO Queries on Trees: Enumerating Answers under Updates Using Forest Algebras

We describe a framework for maintaining forest algebra representations o...

Reconstructing Biological and Digital Phylogenetic Trees in Parallel

In this paper, we study the parallel query complexity of reconstructing ...