# Efficient Parallel Self-Adjusting Computation

@article{Anderson2021EfficientPS, title={Efficient Parallel Self-Adjusting Computation}, author={Daniel Anderson and Guy E. Blelloch and Anubhav Baweja and Umut A. Acar}, journal={Proceedings of the 33rd ACM Symposium on Parallelism in Algorithms and Architectures}, year={2021} }

Self-adjusting computation is an approach for automatically producing dynamic algorithms from static ones. It works by tracking control and data dependencies, and propagating changes through the dependencies when making an update. Extensively studied in the sequential setting, some results on parallel self-adjusting computation exist, but are only applicable to limited classes of computations, or are ad-hoc systems with no theoretical analysis of their performance. In this paper, we present the… Expand

#### Figures and Tables from this paper

#### References

SHOWING 1-10 OF 51 REFERENCES

A proposal for parallel self-adjusting computation

- Computer Science
- DAMP '07
- 2007

Techniques for writing parallel self-adjusting programs and a change propagation algorithm that can update computations in parallel are described and preliminary experimental results are presented. Expand

Two for the price of one: a model for parallel and incremental computation

- Computer Science
- OOPSLA '11
- 2011

This work presents a novel algorithm for parallel self-adjusting computation that extends a deterministic parallel programming model with support for recording and repeating computations and describes programming techniques that proved particularly useful to improve the performance of self- adjustment in practice. Expand

An experimental analysis of self-adjusting computation

- Computer Science
- 2009

This article realizes a duality between dynamic dependence graphs and memoization, and combine them to give a change-propagation algorithm that can dramatically increase computation reuse, and refers to this approach as self-adjusting computation. Expand

Functional programming for dynamic and large data with self-adjusting computation

- Computer Science
- ICFP 2014
- 2014

This work presents a type system for precise dependency tracking that minimizes the time and space for storing dependency metadata, and shows a probabilistic-chunking technique to further decrease space usage by controlling the fundamental space-time tradeoff in self-adjusting computation. Expand

Self-adjusting computation

- Computer Science
- Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004.
- 2004

Self-adjusting computation is a method for deriving a dynamic algorithm for a problem by "dynamizing" a static algorithm for it. Expand

Parallelism in dynamic well-spaced point sets

- Computer Science
- SPAA '11
- 2011

This paper parallelizes a dynamic algorithm for well-spaced point sets, an important problem related to mesh refinement in computational geometry, and describes techniques for implementing the algorithm on modern multi-core computers and provides a prototype implementation. Expand

Traceable data types for self-adjusting computation

- Computer Science
- PLDI '10
- 2010

A semantics for tracing is developed, an existing self-adjusting language, ΔML, and its implementation are extended to support traceable data types, and an experimental evaluation is presented by considering a number of benchmarks. Expand

Kinetic Algorithms Via Self-adjusting Computation

- Computer Science
- ESA
- 2006

This paper describes a technique for syntactically transforming static algorithms into kinetic algorithms, which compute properties of moving objects, and implements a library for performing the transformation, transform a number of algorithms, and gives an experimental evaluation. Expand

Type-directed automatic incrementalization

- Computer Science
- PLDI '12
- 2012

A significant step towards solving the problem of automatic incrementalization is described: a programming language and a compiler that can, given a few type annotations describing what can change over time, compile a conventional program that assumes its data to be static to an incremental program. Expand

Adaptive functional programming

- Computer Science
- POPL '02
- 2002

A general mechanism for adaptive computing that enables one to make any purely-functional program adaptive is proposed and it is shown that the mechanism is practical by giving an efficient implementation as a small ML library. Expand