ABSTRACT
Dynamic algorithms are used to compute a property of some data while the data undergoes changes over time. Many dynamic algorithms have been proposed but nearly all are sequential. In this paper, we present our ongoing work on designing a parallel algorithm for the dynamic trees problem, which requires computing a property of a forest as the forest undergoes changes. Our algorithm allows insertion and/or deletion of both vertices and edges anywhere in the input and performs updates in parallel. We obtain our algorithm by applying a dynamization technique called self-adjusting computation to the classic algorithm of Miller and Reif for tree contraction.
- Umut A. Acar, Guy E. Blelloch, Matthias Blume, Robert Harper, and Kanat Tangwongsan. An experimental analysis of self-adjusting computation. ACM Trans. Prog. Lang. Sys., 32(1):3:1--53, 2009.Google Scholar
Digital Library
- Umut A. Acar, Guy E. Blelloch, and Robert Harper. Adaptive functional programming. ACM Trans. Prog. Lang. Sys., 28(6):990--1034, 2006. Google Scholar
Digital Library
- Umut A. Acar, Guy E. Blelloch, Robert Harper, Jorge L. Vittes, and Maverick Woo. Dynamizing static algorithms with applications to dynamic trees and history independence. In ACM-SIAM Symposium on Discrete Algorithms, pages 531--540, 2004.Google Scholar
- Umut A. Acar, Guy E. Blelloch, and Jorge L. Vittes. An experimental analysis of change propagation in dynamic trees. In Workshop on Algorithm Engineering and Experimentation, 2005.Google Scholar
- Umut A. Acar, Arthur Charguéraud, and Mike Rainey. Scheduling parallel programs by work stealing with private deques. In PPoPP '13, 2013. Google Scholar
Digital Library
- Umut A. Acar, Andrew Cotter, Benoît Hudson, and Duru Türkoălu. Parallelism in dynamic well-spaced point sets. In Proceedings of the 23rd ACM Symposium on Parallelism in Algorithms and Architectures, 2011. Google Scholar
Digital Library
- Umut A. Acar, Andrew Cotter, Benoît Hudson, and Duru Türkoălu. Dynamic well-spaced point sets. Journal of Computational Geometry: Theory and Applications, 2013.Google Scholar
Digital Library
- Umut A. Acar, Benoît Hudson, and Duru Türkoălu. Kinetic mesh-refinement in 2D. In SCG '11: Proceedings of the 27th Annual Symposium on Computational Geometry, 2011. Google Scholar
Digital Library
- Umut A. Acar, Alexander Ihler, Ramgopal Mettu, and Özgür Sümer. Adaptive Bayesian inference. In Neural Information Processing Systems (NIPS), 2007.Google Scholar
- Stephen Alstrup, Jacob Holm, Kristian de Lichtenberg, and Mikkel Thorup. Maintaining information in fully-dynamic trees with top trees, 2003. The Computing Research Repository (CoRR)[cs.DS/0310065].Google Scholar
- Jon Louis Bentley and James B. Saxe. Decomposable searching problems I: Static-to-dynamic transformation. Journal of Algorithms, 1(4):301--358, 1980. Google Scholar
Cross Ref
- Pramod Bhatotia, Pedro Fonseca, Umut A. Acar, Björn B. Brandenburg, and Rodrigo Rodrigues. iThreads: A threading library for parallel incremental computation. In Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '15, pages 645--659, 2015. Google Scholar
Digital Library
- Pramod Bhatotia, Alexander Wieder, Rodrigo Rodrigues, Umut A. Acar, and Rafael Pasquini. Incoop: MapReduce for incremental computations. In ACM Symposium on Cloud Computing, 2011. Google Scholar
Digital Library
- Sebastian Burckhardt, Daan Leijen, Caitlin Sadowski, Jaeheon Yi, and Thomas Ball. Two for the price of one: A model for parallel and incremental computation. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2011. Google Scholar
Digital Library
- Yan Chen, Umut A. Acar, and Kanat Tangwongsan. Functional programming for dynamic and large data with self-adjusting computation. In International Conference on Functional Programming (ICFP '14), pages 227--240, Sep 2014. Google Scholar
Digital Library
- Y.-J. Chiang and R. Tamassia. Dynamic algorithms in computational geometry. Proceedings of the IEEE, 80(9):1412--1434, 1992. Google Scholar
Cross Ref
- Camil Demetrescu, Irene Finocchi, and Giuseppe F. Italiano. Handbook on Data Structures and Applications, chapter 36: Dynamic Graphs. CRC Press, 2005.Google Scholar
- Krzysztof Diks and Torben Hagerup. More general parallel tree contraction: Register allocation and broadcasting in a tree. Theoretical Computer Science, 203(1):3 -- 29, 1998. Google Scholar
Digital Library
- David Eppstein and Zvi Galil. Parallel algorithmic techniques for combinational computation. Annual review of computer science, 3(1):233--283, 1988. Google Scholar
Cross Ref
- Greg N. Frederickson. A data structure for dynamically maintaining rooted trees. Journal Algorithms, 24(1):37--65, 1997. Google Scholar
Digital Library
- Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In PLDI, pages 212--223, 1998. Google Scholar
Digital Library
- Matthew Hammer, Umut A. Acar, Mohan Rajagopalan, and Anwar Ghuloum. A proposal for parallel self-adjusting computation. In DAMP '07: Declarative Aspects of Multicore Programming, 2007. Google Scholar
Digital Library
- Matthew A. Hammer, Umut A. Acar, and Yan Chen. CEAL: a C-based language for self-adjusting computation. In ACM SIGPLAN Conference on Programming Language Design and Implementation, 2009. Google Scholar
Digital Library
- Monika R. Henzinger and Valerie King. Randomized fully dynamic graph algorithms with polylogarithmic time per operation. Journal of the ACM, 46(4):502--516, 1999. Google Scholar
Digital Library
- Joseph Jaja. An introduction to parallel algorithms. Addison Wesley Longman Publishing Company, 1992.Google Scholar
Digital Library
- Richard M. Karp and Vijaya Ramachandran. Parallel algorithms for shared-memory machines. In Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity (A), pages 869--942. 1990. Google Scholar
Cross Ref
- Ruy Ley-Wild, Umut A. Acar, and Matthew Fluet. A cost semantics for self-adjusting computation. In Proceedings of the 26th Annual ACM Symposium on Principles of Programming Languages, 2009. Google Scholar
Digital Library
- Gary L. Miller and John H. Reif. Parallel tree contraction, part I: Fundamentals. Advances in Computing Research, 5:47--72, 1989.Google Scholar
- Gary L. Miller and John H. Reif. Parallel tree contraction, part 2: Further applications. SIAM Journal on Computing, 20(6):1128--1147, 1991. Google Scholar
Digital Library
- Ketan Mulmuley. Randomized multidimensional search trees: Lazy balancing and dynamic shuffling (extended abstract). In Proceedings of the 32nd Annual IEEE Symposium on Foundations of Computer Science, pages 180--196, 1991.Google Scholar
- Mark H. Overmars. The Design of Dynamic Data Structures. Springer, 1983.Google Scholar
Digital Library
- Shaunak Pawagi and Owen Kaser. Optimal parallel algorithms for multiple updates of minimum spanning trees. Algorithmica, 9:357--381, 1993. Google Scholar
Cross Ref
- G. Ramalingam and T. Reps. A categorized bibliography on incremental computation. In Principles of Programming Languages, pages 502--510, 1993. Google Scholar
Digital Library
- S. Rao Kosaraju and Arthur L. Delcher. Optimal parallel evaluation of tree-structured computations by raking (extended abstract), pages 101--110. 1988.Google Scholar
- John H. Reif and Stephen R. Tate. Dynamic parallel tree contraction (extended abstract). In SPAA, pages 114--121, 1994.Google Scholar
- Julian Shun, Yan Gu, Guy E. Blelloch, Jeremy T. Fineman, and Phillip B. Gibbons. Sequential random permutation, list contraction and tree contraction are highly parallel. In Proceedings of the Twenty-sixth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA '15, pages 431--448, 2015. Google Scholar
Cross Ref
- Daniel D. Sleator and Robert Endre Tarjan. A data structure for dynamic trees. Journal of Computer and System Sciences, 26(3):362--391, 1983. Google Scholar
Cross Ref
- Daniel Dominic Sleator and Robert Endre Tarjan. Self-adjusting binary search trees. Journal of the ACM, 32(3):652--686, 1985. Google Scholar
Digital Library
- Özgür Sümer, Umut A. Acar, Alexander Ihler, and Ramgopal Mettu. Adaptive exact inference in graphical models. Journal of Machine Learning, 8:180--186, 2011.Google Scholar
- Robert Tarjan and Renato Werneck. Self-adjusting top trees. In Proceedings of the Sixteenth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), 2005.Google Scholar
Digital Library
- Robert E. Tarjan. Dynamic trees as search trees via euler tours, applied to the network simplex algorithm. Mathematical Programming, 78:167--177, 1997. Google Scholar
Digital Library
- Robert E. Tarjan and Renato F. Werneck. Dynamic trees in practice. J. Exp. Algorithmics, 14:5:4.5--5:4.23, January 2010.Google Scholar
Index Terms
- Brief Announcement: Parallel Dynamic Tree Contraction via Self-Adjusting Computation
Recommendations
A proposal for parallel self-adjusting computation
DAMP '07: Proceedings of the 2007 workshop on Declarative aspects of multicore programmingWe present an overview of our ongoing work on parallelizing self-adjusting-computation techniques. In self-adjusting computation, programs can respond to changes to their data (e.g., inputs, outcomes of comparisons) automatically by running a change-...
Imperative self-adjusting computation
POPL '08Self-adjusting computation enables writing programs that can automatically and efficiently respond to changes to their data (e.g., inputs). The idea behind the approach is to store all data that can change over time in modifiable references and to let ...
Imperative self-adjusting computation
POPL '08: Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesSelf-adjusting computation enables writing programs that can automatically and efficiently respond to changes to their data (e.g., inputs). The idea behind the approach is to store all data that can change over time in modifiable references and to let ...





Comments