# Just Join for Parallel Ordered Sets

@article{Blelloch2016JustJF, title={Just Join for Parallel Ordered Sets}, author={Guy E. Blelloch and Daniel Ferizovic and Yihan Sun}, journal={Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures}, year={2016} }

Ordered sets (and maps when data is associated with each key) are one of the most important and useful data types. The set-set functions union, intersection and difference are particularly useful in certain applications. Brown and Tarjan first described an algorithm for these functions, based on 2-3 trees, that meet the optimal Θ(m log (n/m+1)) time bounds in the comparison model (n and m ≤ n are the input sizes). Later Adams showed very elegant algorithms for the functions, and others, based…

## Figures and Tables from this paper

## 53 Citations

### Low-latency graph streaming using compressed purely-functional trees

- Computer SciencePLDI
- 2019

This paper designs theoretically-efficient and practical algorithms for performing batch updates to C-trees, and shows that it can store massive dynamic real-world graphs using only a few bytes per edge, thereby achieving space usage close to that of the best static graph processing frameworks.

### Hinted Dictionaries: Efficient Functional Ordered Sets and Maps

- Computer ScienceECOOP
- 2022

In this example, alternative data structures can be provided by simply changing the type signature of the hinted set from hinted_set to another implementation, without modifying anything else.

### The Log-Interleave Bound: Towards the Unification of Sorting and the BST Model

- Computer ScienceArXiv
- 2021

The main vehicle of this study is the log-interleave bound, a measure of the information-theoretic complexity of a permutation π which is comparable to the most powerful known measure of disorder.

### Parallel Batched Interpolation Search Tree

- Computer ScienceArXiv
- 2021

This work parallelize Interpolation Search Tree which serves each request from a smooth distribution in doubly-logarithmic time and performs a batch of< operations in (< log log=) work and poly-log span.

### Provably Efficient and Scalable Shared-Memory Graph Algorithms

- Computer Science
- 2019

A new graph-streaming system called Aspen is proposed, and it is shown that using Aspen, one can concurrently update and analyze the WebDataCommons hyperlink graph on a single commodity multicore machine with a terabyte of main memory.

### PaC-trees: supporting parallel and compressed purely-functional collections

- Computer SciencePLDI
- 2022

This paper presents PaC-trees, a purely-functional data structure supporting functional interfaces for sets, maps, and sequences that provides a significant reduction in space over existing approaches and designed CPAM, a C++ library that implements the full functionality of PAM, while offering significant extra functionality for compression.

### Joinable Parallel Balanced Binary Trees

- Computer ScienceACM Transactions on Parallel Computing
- 2022

This article shows how a single function, join, can be used to implement parallel balanced binary search trees (BSTs) simply and efficiently, and describes the technique as an algorithmic framework called join-based algorithms.

### PAM: parallel augmented maps

- Computer SciencePPoPP
- 2018

An interface for ordered maps that is augmented to support fast range queries and sums, and a parallel and concurrent library called PAM (Parallel Augmented Maps) that implements the interface are described.

### Proposal : Parallel Balanced Binary Trees Using Just Join

- Computer Science
- 2017

This thesis proposes a parallel algorithmic framework that overcomes challenges, which captures all balancing criteria in a single function JOIN, which is parallel, work-efficient, generic across balancing schemes, persistent, safe for concurrency and applicable to a wide range of applications and queries by proper augmentations.

## References

SHOWING 1-10 OF 34 REFERENCES

### Parallel Bi-objective Shortest Paths Using Weight-Balanced B-trees with Bulk Updates

- Computer ScienceSEA
- 2014

A practical parallel algorithm for finding shortest paths in the presence of two objective functions by carefully re-engineering the algorithm for moderate parallelism and develops a parallel weight-balanced B-tree data structure that cache efficiently supports bulk updates.

### STL tutorial and reference guide - C++ programming with the standard template library

- Computer ScienceAddison-Wesley professional computing series
- 1996

This second edition of the STL Tutorial and Reference Guide is fully updated to reflect all of the changes made to STL for the final ANSI/ISO C++ language standard and has been expanded with new chapters and appendices.

### Fast Parallel Operations on Search Trees

- Computer Science2016 IEEE 23rd International Conference on High Performance Computing (HiPC)
- 2016

Using (a, b)-trees as an example, we show how to perform a parallel split with logarithmic latency and parallel join, bulk updates, intersection, union (or merge), and (symmetric) set difference with…

### Fast set operations using treaps

- Computer ScienceSPAA '98
- 1998

The main advantage of the algorithms for set operations seem simpler than previous sequential algorithms with the same work bounds, and might therefore also be useful in a sequential context.

### Parallelization of Bulk Operations for STL Dictionaries

- Computer ScienceEuro-Par Workshops
- 2007

This work considers parallelizing two of their bulk operations, namely the construction from many elements, and the insertion of many elements at a time, which can make programs profit in an easy way from multi-core processing power.

### Data structures and network algorithms

- Computer ScienceCBMS-NSF regional conference series in applied mathematics
- 1983

This paper presents a meta-trees tree model that automates the very labor-intensive and therefore time-heavy and therefore expensive process of manually selecting trees to grow in a graph.

### AN ALGORITHM FOR THE ORGANIZATION OF INFORMATION

- Computer Science
- 1963

The organization of information placed in the points of an automatic computer is discussed and the role of memory, storage and retrieval in this regard is discussed.

### Functional Pearls Efficient sets—a balancing act

- Computer ScienceJournal of Functional Programming
- 1993

In this 'functional pearl', Adams describes a generalization of bis competition entry, which was almost as fast as Freeman's for very large sets, and was faster for smaller sets.

### Fast concurrent lock-free binary search trees

- Computer SciencePPoPP '14
- 2014

A new lock-free algorithm for concurrent manipulation of a binary search tree in an asynchronous shared memory system that supports search, insert and delete operations and significantly outperforms all other algorithms for a concurrent binarysearch tree in many cases.