Batch-Parallel Euler Tour Trees

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 Acar et al. for the batch-parallel dynamic trees problem. The 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. Sequentially, balanced binary trees are used, but they are difficult to join or split in parallel. 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--96x self-relative speedup on 72 cores with hyper-threading on large batch sizes. Our data structures also outperform the fastest existing sequential dynamic trees data structures empirically.

[1]  Monika Henzinger,et al.  Randomized dynamic graph algorithms with polylogarithmic time per operation , 1995, STOC '95.

[2]  Robert E. Tarjan,et al.  Dynamic trees as search trees via euler tours, applied to the network simplex algorithm , 1997, Math. Program..

[3]  Bengt Jonsson,et al.  A Skiplist-Based Concurrent Priority Queue with Minimal Memory Contention , 2013, OPODIS.

[4]  Conrado Martínez,et al.  A Design of a Parallel Dictionary Using Skip Lists , 1996, Theor. Comput. Sci..

[5]  Richard Cole,et al.  Approximate Parallel Scheduling. Part I: The Basic Technique with Applications to Optimal Parallel List Ranking in Logarithmic Time , 1988, SIAM J. Comput..

[6]  David R. Musser,et al.  STL tutorial and reference guide - C++ programming with the standard template library , 1996, Addison-Wesley professional computing series.

[7]  Joseph JáJá,et al.  An Introduction to Parallel Algorithms , 1992 .

[8]  Gary L. Miller,et al.  Deterministic Parallel List Ranking , 1988, AWOC.

[9]  Mikkel Thorup,et al.  Poly-logarithmic deterministic fully-dynamic algorithms for connectivity, minimum spanning tree, 2-edge, and biconnectivity , 2001, JACM.

[10]  Erez Petrank,et al.  A lock-free B+tree , 2012, SPAA '12.

[11]  Mikkel Thorup,et al.  Maintaining information in fully dynamic trees with top trees , 2003, TALG.

[12]  Uzi Vishkin,et al.  Parallel Dictionaries in 2-3 Trees , 1983, ICALP.

[13]  Mikkel Thorup,et al.  Near-optimal fully-dynamic graph connectivity , 2000, STOC '00.

[14]  Keir Fraser,et al.  Practical lock-freedom , 2003 .

[15]  Tsvi Kopelowitz,et al.  Improved Worst-Case Deterministic Parallel Dynamic Minimum Spanning Forest , 2018, SPAA.

[16]  Gary L. Miller,et al.  Parallel tree contraction and its application , 1985, 26th Annual Symposium on Foundations of Computer Science (sfcs 1985).

[17]  William Pugh,et al.  Concurrent maintenance of skip lists , 1990 .

[18]  Guy E. Blelloch,et al.  Brief announcement: the problem based benchmark suite , 2012, SPAA '12.

[19]  Robert E. Tarjan,et al.  A data structure for dynamic trees , 1981, STOC '81.

[20]  Philippas Tsigas,et al.  Scalable and lock-free concurrent dictionaries , 2004, SAC '04.

[21]  Kunsoo Park,et al.  Parallel algorithms for red-black trees , 2001, Theor. Comput. Sci..

[22]  Faith Ellen,et al.  Non-blocking binary search trees , 2010, PODC.

[23]  Peter Sanders,et al.  Fast Parallel Operations on Search Trees , 2015, 2016 IEEE 23rd International Conference on High Performance Computing (HiPC).

[24]  Bruce M. Kapron,et al.  Dynamic graph connectivity in polylogarithmic worst case time , 2013, SODA.

[25]  Nir Shavit,et al.  Skiplist-based concurrent priority queues , 2000, Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000.

[26]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[27]  Eric Schenk,et al.  Maintaining B-Trees on an EREW PRAM , 1994, J. Parallel Distributed Comput..

[28]  Gary L. Miller,et al.  A Simple Randomized Parallel Algorithm for List-Ranking , 1990, Inf. Process. Lett..

[29]  David A. Bader,et al.  A new parallel algorithm for connected components in dynamic graphs , 2013, 20th Annual International Conference on High Performance Computing.

[30]  Greg N. Frederickson,et al.  Data Structures for On-Line Updating of Minimum Spanning Trees, with Applications , 1985, SIAM J. Comput..

[31]  Guy E. Blelloch,et al.  Programming parallel algorithms , 1996, CACM.

[32]  Guy E. Blelloch,et al.  Phase-concurrent hash tables for determinism , 2014, SPAA.

[33]  John H. Reif,et al.  Parallel Computational Geometry: An Approach using Randomization , 2000, Handbook of Computational Geometry.

[34]  Charles E. Leiserson,et al.  The Cilk++ concurrency platform , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[35]  Peter Bro Miltersen,et al.  Complexity Models for Incremental Computation , 1994, Theor. Comput. Sci..

[36]  Guy E. Blelloch,et al.  Dynamizing static algorithms, with applications to dynamic trees and history independence , 2004, SODA '04.

[37]  Uzi Vishkin,et al.  Towards a theory of nearly constant time parallel algorithms , 1991, [1991] Proceedings 32nd Annual Symposium of Foundations of Computer Science.

[38]  H. T. Kung,et al.  Concurrent manipulation of binary search trees , 1980, TODS.

[39]  William Pugh,et al.  Skip lists: a probabilistic alternative to balanced trees , 1989, CACM.

[40]  Philippas Tsigas,et al.  Fast and lock-free concurrent priority queues for multi-thread systems , 2005, J. Parallel Distributed Comput..

[41]  Guy E. Blelloch,et al.  A Top-Down Parallel Semisort , 2015, SPAA.

[42]  Guy E. Blelloch,et al.  A simple and practical linear-work parallel algorithm for connectivity , 2014, SPAA.

[43]  Kun-Lung Wu,et al.  Work-Efficient Parallel and Incremental Graph Connectivity , 2016, ArXiv.

[44]  Umut A. Acar,et al.  Brief Announcement: Parallel Dynamic Tree Contraction via Self-Adjusting Computation , 2017, SPAA.

[45]  Cecilia R. Aragon,et al.  Randomized search trees , 1989, 30th Annual Symposium on Foundations of Computer Science.