# PAM: parallel augmented maps

@article{Sun2016PAMPA, title={PAM: parallel augmented maps}, author={Yihan Sun and Daniel Ferizovic and Guy E. Blelloch}, journal={Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming}, year={2016} }

Ordered (key-value) maps are an important and widely-used data type for large-scale data processing frameworks. Beyond simple search, insertion and deletion, more advanced operations such as range extraction, filtering, and bulk updates form a critical part of these frameworks. We describe an interface for ordered maps that is augmented to support fast range queries and sums, and introduce a parallel and concurrent library called PAM (Parallel Augmented Maps) that implements the interface. Theβ¦Β

## Figures, Tables, and Topics from this paper

## 30 Citations

Parallel Range and Segment Queries with Augmented Maps

- Computer Science, MathematicsArXiv
- 2018

This paper develops both multi-level tree structures and sweepline algorithms supporting range and segment queries in two dimensions and proposes a parallel paradigm, using a simple framework (the augmented map) to model the problem.

Parallel Range, Segment and Rectangle Queries with Augmented Maps

- Computer Science, MathematicsALENEX
- 2019

This work proposes to use a simple framework (the augmented map) to model the range, segment and rectangle query problems, and develops both multi-level tree structures and sweepline algorithms supporting range, segments and rectangle queries in two dimensions.

Proposal : Parallel Balanced Binary Trees Using Just Join

- 2017

Tree data structures play an important role in almost every area in computer science. Nowadays the explosion of data puts forward a higher demand for the performance of the trees, which requiresβ¦

Implementing parallel and concurrent tree structures

- Computer SciencePPoPP
- 2019

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, and the corresponding implementation is available as a library.

Parallel Write-Efficient Algorithms and Data Structures for Computational Geometry

- Computer ScienceSPAA
- 2018

This paper designs parallel write-efficient geometric algorithms that perform asymptotically fewer writes than standard algorithms for the same problem, and introduces several techniques for obtaining write-efficiency, including DAG tracing, prefix doubling, and Ξ±-labeling.

KiWi: A Key-Value Map for Scalable Real-Time Analytics

- Computer SciencePPoPP 2017
- 2017

KiWi is presented, the first atomic KV-map to efficiently support simultaneous large scans and real-time access and optimizes memory management jointly with data structure access and is compared to state-of-the-art solutions.

On Supporting Efficient Snapshot Isolation for Hybrid Workloads with Multi-Versioned Indexes

- Computer ScienceProc. VLDB Endow.
- 2019

The Parallel Binary Tree (P-Tree) index structure is proposed, based on pure (immutable) data structures that use path-copying for updates for fast multi-versioning, to achieve SI and MVCC for multicore in-memory HTAP DBMSs.

Optimal Parallel Algorithms in the Binary-Forking Model

- Computer ScienceSPAA
- 2020

This paper explores techniques for designing optimal algorithms when limited to binary forking and assuming asynchrony, and develops the first algorithms with optimal work and span in the binary-forking model.

Parallel In-Place Algorithms: Theory and Practice

- Computer ScienceAPOCS
- 2021

It is shown that on a 72-core machine with twoway hyper-threading, the parallel in-place algorithms usually outperform existing parallel algorithms for the same problems that use linear auxiliary space, indicating that the theory developed in this paper indeed leads to practical benefits in terms of both space usage and running time.

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

- Computer ScienceSPAA
- 2020

ParlayLib is a C++ library for developing efficient parallel algorithms and software on shared-memory multicore machines that consists of a sequence data type, many parallel routines and algorithms, a work-stealing scheduler to support nested parallelism, and a scalable memory allocator.

## References

SHOWING 1-10 OF 97 REFERENCES

Parallel Algorithms for Constructing Range and Nearest-Neighbor Searching Data Structures

- Computer SciencePODS
- 2016

This work presents the first provably efficient algorithms to compute, store, and query data structures for range queries and approximate nearest neighbor queries in a popular parallel computing abstraction that captures the salient features of MapReduce and other massively parallel communication (MPC) models.

Parallel bulk insertion for large-scale analytics applications

- Computer ScienceLADIS '10
- 2010

This work identifies bulk data insert operations as a critical preliminary step to achieve reduced processing times, especially when new data is generated and processed at regular time intervals and presents a parallel approach to bulk insertion in a system that use horizontally range partitioned data.

Parallel multi-dimensional range query processing with R-trees on GPU

- Computer ScienceJ. Parallel Distributed Comput.
- 2013

An extensive experimental study shows that MPTS R-tree traversal algorithm on NVIDIA Tesla M2090 GPU consistently outperforms traditional recursive R-trees search algorithm on Intel Xeon E5506 processors.

Practical concurrent binary search trees via logical ordering

- Computer SciencePPoPP '14
- 2014

The experimental results show that the algorithms with lock-free contains and on-time deletion are practical and often comparable to the state-of-the-art.

Fast Sorted-Set Intersection using SIMD Instructions

- Computer ScienceADMS@VLDB
- 2011

This paper proposes a parallel algorithm that relies on speculative execution of comparisons of sorted-set intersection algorithms, which requires more comparisons but less instructions than scalar algorithms that translates into a better overall speed.

Faster Adaptive Set Intersections for Text Searching

- Computer Science, MathematicsWEA
- 2006

A better algorithm for the intersection of large ordered sets is engineer, which improves over those proposed by Demaine, Munro and Lopez-Ortiz [SODA 2000/ALENEX 2001], by using a variant of interpolation search.

The adaptive radix tree: ARTful indexing for main-memory databases

- Computer Science2013 IEEE 29th International Conference on Data Engineering (ICDE)
- 2013

Main memory capacities have grown up to a point where most databases fit into RAM. For main-memory database systems, index structure performance is a critical bottleneck. Traditional in-memory dataβ¦

Range queries in OLAP data cubes

- Computer ScienceSIGMOD '97
- 1997

The approach to answering range-max queries is based on precomputed max over balanced hierarchical tree structures, and a branch-and-bound-like procedure is used to speed up the finding of max in a region.

Purely functional data structures

- Computer Science
- 1998

This work describes several techniques for designing functional data structures, and numerous original data structures based on these techniques, including multiple variations of lists, queues, double-ended queues, and heaps, many supporting more exotic features such as random access or efficient catenation.

A general technique for non-blocking trees

- Computer SciencePPoPP '14
- 2014

A general technique for obtaining provably correct, non-blocking implementations of a large class of tree data structures where pointers are directed from parents to children and an experimental performance analysis demonstrates that the Java implementation of a chromatic tree rivals, and often significantly outperforms, other leading concurrent dictionaries.