×

Batch-parallel Euler tour trees. (English) Zbl 1430.68246

Kobourov, Stephen (ed.) et al., Proceedings of the 21st workshop on algorithm engineering and experiments, ALENEX ’19, San Diego, CA, USA, January 7–8, 2019. Philadelphia, PA: Society for Industrial and Applied Mathematics (SIAM). 92-106 (2019).
Summary: The dynamic trees problem is to maintain a forest undergoing edge insertions and deletions while supporting queries for information such as connectivity. There are many existing data structures for this problem, but few of them are capable of exploiting parallelism in the batch setting, in which large batches of edges are inserted or deleted from the forest at once. In this paper, we demonstrate that the Euler tour tree, an existing sequential dynamic trees data structure, can be parallelized in the batch setting. For a batch of \(k\) updates over a forest of \(n\) vertices, our parallel Euler tour trees perform \(O(k \log(1 + n/k))\) expected work with \(O(\log n)\) depth with high probability. Our work bound is asymptotically optimal, and we improve on the depth bound achieved by U. A. Acar et al. for the batch-parallel dynamic trees problem [“Brief announcement: Parallel dynamic tree contraction via self-adjusting computation”, in: Proceedings of the 29th ACM symposium on parallelism in algorithms and architectures, SPAA 2017. New York, NY: Association for Computing Machinery (ACM). 275–277 (2017; doi:10.1145/3087556.3087595)].
Our main building block for parallelizing Euler tour trees is a batch-parallel skip list data structure, which we believe may be of independent interest. Euler tour trees require a sequence data structure capable of joins and splits. Traditionally, balanced binary trees are used, but they are difficult to join or split in parallel when processing batches of updates. We show that skip lists, on the other hand, support batches of joins or splits of size \(k\) over \(n\) elements with \(O(k \log(1 + n/k))\) work in expectation and \(O(\log n)\) depth with high probability. We also achieve the same efficiency bounds for augmented skip lists, which allows us to augment our Euler tour trees to support subtree queries.
Our data structures achieve between \(67-96 \times\) self-relative speedup on 72 cores with hyper-threading on large batch sizes. Our data structures also significantly outperform the fastest existing sequential dynamic trees data structures empirically.
For the entire collection see [Zbl 1409.68020].

MSC:

68R10 Graph theory (including graph drawing) in computer science
05C38 Paths and cycles
68P05 Data structures
68W10 Parallel algorithms in computer science
68W40 Analysis of algorithms