Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3350755.3400254acmconferencesArticle/Chapter ViewAbstractPublication PagesspaaConference Proceedingsconference-collections
extended-abstract
Public Access

ParlayLib - A Toolkit for Parallel Algorithms on Shared-Memory Multicore Machines

Published: 09 July 2020 Publication History

Abstract

ParlayLib is a C++ library for developing efficient parallel algorithms and software on shared-memory multicore machines. It provides additional tools and primitives that go beyond what is available in the C++ standard library, and simplifies the task of programming provably efficient and scalable parallel algorithms. It consists of a sequence data type (analogous to std::vector), many parallel routines and algorithms, a work-stealing scheduler to support nested parallelism, and a scalable memory allocator. It has been developed over a period of seven years and used in a variety of software including the PBBS benchmark suite, the Ligra, Julienne, and Aspen graph processing frameworks, the Graph Based Benchmark Suite, and the PAM library for parallel balanced binary search trees, and an implementation of the TPC-H benchmark suite.

References

[1]
Nimar S Arora, Robert D Blumofe, and C Greg Plaxton. 2001. Thread scheduling for multiprogrammed multiprocessors. Theory of Computing Systems (TOCS), Vol. 34, 2 (2001), 115--144.
[2]
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou. 1995. Cilk: An Efficient Multithreaded Runtime System. In ACM Symposium on Principles and Practice of Parallel Programming (PPOPP).
[3]
Robert D Blumofe and Charles E Leiserson. 1999. Scheduling multithreaded computations by work stealing. J. ACM, Vol. 46, 5 (1999), 720--748.
[4]
Laxman Dhulipala, Guy E. Blelloch, and Julian Shun. 2017. Julienne: A Framework for Parallel Graph Algorithms Using Work-efficient Bucketing. In ACM Symposium on Parallelism in Algorithms and Architectures (SPAA).
[5]
Laxman Dhulipala, Guy E. Blelloch, and Julian Shun. 2018. Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable. In ACM Symposium on Parallelism in Algorithms and Architectures (SPAA).
[6]
Laxman Dhulipala, Guy E Blelloch, and Julian Shun. 2019. Low-latency graph streaming using compressed purely-functional trees. In ACM Conference on Programming Language Design and Implementation (PLDI).
[7]
Yan Gu, Julian Shun, Yihan Sun, and Guy E. Blelloch. 2015. A Top-Down Parallel Semisort. In ACM Symposium on Parallelism in Algorithms and Architectures (SPAA).
[8]
Switzerland International Organization for Standardization, Geneva. 2018. ISO/IEC TS 19570:2018: Programming Languages -- Technical Specification for C+ Extensions for Parallelism. https://www.iso.org/standard/70588.html.
[9]
Julian Shun and Guy E. Blelloch. 2013. Ligra: A Lightweight Graph Processing Framework for Shared Memory. In ACM Symposium on Principles and Practice of Parallel Programming (PPOPP) .
[10]
Julian Shun and Guy E Blelloch. 2014. Phase-concurrent hash tables for determinism. In ACM Symposium on Parallelism in Algorithms and Architectures (SPAA).
[11]
Yihan Sun, Guy E Blelloch, Wan Shen Lim, and Andrew Pavlo. 2019. On supporting efficient snapshot isolation for hybrid workloads with multi-versioned indexes. PVLDB, Vol. 13, 2 (2019), 211--225.
[12]
Yihan Sun, Daniel Ferizovic, and Guy E Blelloch. 2018. PAM: Parallel Augmented Maps. In ACM Symposium on Principles and Practice of Parallel Programming (PPOPP).

Cited By

View all
  • (2025)Parallel kd-tree with Batch UpdatesProceedings of the ACM on Management of Data10.1145/37097123:1(1-26)Online publication date: 11-Feb-2025
  • (2024)Approximate nearest neighbor search with window filtersProceedings of the 41st International Conference on Machine Learning10.5555/3692070.3692567(12469-12490)Online publication date: 21-Jul-2024
  • (2024)Fast, parallel, and cache-friendly suffix array constructionAlgorithms for Molecular Biology10.1186/s13015-024-00263-519:1Online publication date: 28-Apr-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPAA '20: Proceedings of the 32nd ACM Symposium on Parallelism in Algorithms and Architectures
July 2020
601 pages
ISBN:9781450369350
DOI:10.1145/3350755
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: 09 July 2020

Check for updates

Author Tags

  1. parallel STL
  2. parallel programming
  3. parallel sequences
  4. shared-memory algorithms

Qualifiers

  • Extended-abstract

Funding Sources

Conference

SPAA '20
Sponsor:

Acceptance Rates

Overall Acceptance Rate 447 of 1,461 submissions, 31%

Upcoming Conference

SPAA '25
37th ACM Symposium on Parallelism in Algorithms and Architectures
July 28 - August 1, 2025
Portland , OR , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)229
  • Downloads (Last 6 weeks)25
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Parallel kd-tree with Batch UpdatesProceedings of the ACM on Management of Data10.1145/37097123:1(1-26)Online publication date: 11-Feb-2025
  • (2024)Approximate nearest neighbor search with window filtersProceedings of the 41st International Conference on Machine Learning10.5555/3692070.3692567(12469-12490)Online publication date: 21-Jul-2024
  • (2024)Fast, parallel, and cache-friendly suffix array constructionAlgorithms for Molecular Biology10.1186/s13015-024-00263-519:1Online publication date: 28-Apr-2024
  • (2024)Efficient Parallel Output-Sensitive Edit Distance (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673407(17-18)Online publication date: 17-Jun-2024
  • (2024)Parallel Integer Sort: Theory and Practice (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673403(13-14)Online publication date: 17-Jun-2024
  • (2024)Zero-Overhead Parallel Scans for Multi-Core CPUsProceedings of the 15th International Workshop on Programming Models and Applications for Multicores and Manycores10.1145/3649169.3649248(52-61)Online publication date: 3-Mar-2024
  • (2024)VERLIB: Concurrent Versioned PointersProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638501(200-214)Online publication date: 2-Mar-2024
  • (2024)CPMA: An Efficient Batch-Parallel Compressed Set Without PointersProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638492(348-363)Online publication date: 2-Mar-2024
  • (2024)Parallel Integer Sort: Theory and PracticeProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638483(301-315)Online publication date: 2-Mar-2024
  • (2024)ParlayANN: Scalable and Deterministic Parallel Graph-Based Approximate Nearest Neighbor Search AlgorithmsProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638475(270-285)Online publication date: 2-Mar-2024
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media