Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3293883.3302576acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
tutorial
Public Access

Implementing parallel and concurrent tree structures

Published: 16 February 2019 Publication History

Abstract

As one of the most important data structures used in algorithm design and programming, balanced search trees are widely used in real-world applications for organizing data. Answering the challenges thrown up by modern large-volume and ever-changing data, it is important to consider parallelism, concurrency, and persistence. This tutorial will introduce techniques for supporting functionalities on trees, including various parallel algorithms, concurrency, multiversioning, etc. In particular, this tutorial will focus on an algorithmic framework for parallel balanced binary trees, which works for multiple balancing schemes, including AVL trees, red-black trees, weight-based trees, and treaps. This framework allows for theoretically-efficient algorithms. The corresponding implementation is available as a library, which demonstrates good performance both sequentially and in parallel in various use scenarios.
This tutorial will focus on the following topics: 1) the algorithms and techniques used in the PAM library; 2) the interface of the library and a hands-on introduction to the download/installation of the library; 3) examples of applying the library to various applications and 4) introduction about other useful techniques for parallel tree structures and performance comparisons with PAM.

References

[1]
2015. Boost C++ Libraries. http://www.boost.org/. (2015).
[2]
Stephen Adams. 1992. Implementing Sets Efficiently in a Functional Language. Technical Report CSTR 92--10. University of Southampton.
[3]
Kunal Agrawal, Jeremy T Fineman, Kefu Lu, Brendan Sheridan, Jim Sukha, and Robert Utterback. 2014. Provably good scheduling for parallel programs that use data structures through implicit batching. In Proceedings of the 26th ACM symposium on Parallelism in algorithms and architectures. ACM, 84--95.
[4]
Naama Ben-David, Guy Blelloch, Yihan Sun, and Yuanhao Wei. 2018. Efficient Single Writer Concurrency. In arXiv preprint arXiv:1803.08617.
[5]
Philip A. Bernstein and Nathan Goodman. 1983. Multiversion Concurrency Control - Theory and Algorithms. ACM Trans. Database Syst. 8, 4 (1983).
[6]
Guy E Blelloch, Daniel Ferizovic, and Yihan Sun. 2016. Just Join for Parallel Ordered Sets. In Proc. of the ACM Symp. on Parallelism in Algorithms and Architectures (SPAA). 253--264.
[7]
Trevor Brown, Faith Ellen, and Eric Ruppert. 2014. A General Technique for Non-blocking Trees. In Proc. ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP).
[8]
Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. 2010. Benchmarking Cloud Serving Systems with YCSB. In Proc. ACM Symposium on Cloud Computing (SoCC).
[9]
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2009. Introduction to Algorithms (3rd edition). MIT Press.
[10]
Danny Hendler, Itai Incze, Nir Shavit, and Moran Tzafrir. 2010. Flat combining and the synchronization-parallelism tradeoff. In Proc. ACM Symp. on Parallel Algorithms and Architectures (SPAA). 355--364.
[11]
Yandong Mao, Eddie Kohler, and Robert Tappan Morris. 2012. Cache craftiness for fast multicore key-value storage. In Proc. of the 7th ACM European Conference on Computer Systems. ACM, 183--196.
[12]
Thomas Neumann, Tobias Mühlbauer, and Alfons Kemper. 2015. Fast Serializable Multi-Version Concurrency Control for Main-Memory Database Systems. In Proc. ACM SIGMOD International Conference on Management of Data (SIGMOD).
[13]
Gabriele Neyer. 2017. dD Range and Segment Trees. In CGAL User and Reference Manual (4.10 ed.). CGAL Editorial Board. http://doc.cgal.org/4.10/Manual/packages.html
[14]
William Pugh. 1990. Skip lists: a probabilistic alternative to balanced trees. Commun. ACM 33, 6 (1990), 668--676.
[15]
Colin Reid, Philip A Bernstein, Ming Wu, and Xinhao Yuan. 2011. Optimistic concurrency control by melding trees. Proceedings of the VLDB Endowment 4, 11 (2011).
[16]
Jason Sewall, Jatin Chhugani, Changkyu Kim, Nadathur Satish, and Pradeep Dubey. 2011. PALM: Parallel architecture-friendly latch-free modifications to B+ trees on many-core processors. Proc. VLDB Endowment 4, 11 (2011), 795--806.
[17]
Daniel Dominic Sleator and Robert Endre Tarjan. 1985. Self-adjusting binary search trees. Journal of the ACM (JACM) 32, 3 (1985), 652--686.
[18]
Yihan Sun, Guy Blelloch, and Daniel Ferizovic. 2018. The PAM library. (2018). https://github.com/cmuparlay/PAM
[19]
Yihan Sun and Guy E Blelloch. 2019. Parallel Range and Segment Queries with Augmented Maps. Algorithm Engineering and Experiments (ALENEX) (2019).
[20]
Yihan Sun, Daniel Ferizovic, and Guy E. Blelloch. 2018. PAM: Parallel Augmented Maps. In Proc. ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP).
[21]
Robert Endre Tarjan. 1983. Data Structures and Network Algorithms. Society for Industrial and Applied Mathematics, Philadelphia, PA, USA.
[22]
Ziqi Wang, Andrew Pavlo, Hyeontaek Lim, Viktor Leis, Huanchen Zhang, Michael Kaminsky, and David G Andersen. 2018. Building a Bw-tree takes more than just buzz words. In International Conference on Management of Data (SIGMOD).

Cited By

View all
  • (2024)CAA: A Concurrent AA Tree via Logical ordering2024 23rd International Symposium on Parallel and Distributed Computing (ISPDC)10.1109/ISPDC62236.2024.10705402(1-8)Online publication date: 8-Jul-2024
  • (2022)A Thread-Safe Term LibraryLeveraging Applications of Formal Methods, Verification and Validation. Verification Principles10.1007/978-3-031-19849-6_25(422-459)Online publication date: 17-Oct-2022
  • (2019)Concurrent Katz Centrality for Streaming Graphs2019 IEEE High Performance Extreme Computing Conference (HPEC)10.1109/HPEC.2019.8916572(1-6)Online publication date: Sep-2019

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '19: Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming
February 2019
472 pages
ISBN:9781450362252
DOI:10.1145/3293883
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 February 2019

Check for updates

Author Tags

  1. PAM
  2. augmented map
  3. balanced tree
  4. concurrent
  5. library
  6. ordered map
  7. ordered set
  8. parallel

Qualifiers

  • Tutorial

Funding Sources

Conference

PPoPP '19

Acceptance Rates

PPoPP '19 Paper Acceptance Rate 29 of 152 submissions, 19%;
Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)146
  • Downloads (Last 6 weeks)14
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)CAA: A Concurrent AA Tree via Logical ordering2024 23rd International Symposium on Parallel and Distributed Computing (ISPDC)10.1109/ISPDC62236.2024.10705402(1-8)Online publication date: 8-Jul-2024
  • (2022)A Thread-Safe Term LibraryLeveraging Applications of Formal Methods, Verification and Validation. Verification Principles10.1007/978-3-031-19849-6_25(422-459)Online publication date: 17-Oct-2022
  • (2019)Concurrent Katz Centrality for Streaming Graphs2019 IEEE High Performance Extreme Computing Conference (HPEC)10.1109/HPEC.2019.8916572(1-6)Online publication date: Sep-2019

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media