• Home
  • Search
  • An experimental analysis of self-adjusting computation
  • Cite Icon78
  • https://doi.org/10.1145/1596527.1596530Copy DOI Icon

An experimental analysis of self-adjusting computation

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Recent work on adaptive functional programming (AFP) developed techniques for writing programs that can respond to modifications to their data by performing change propagation . To achieve this, executions of programs are represented with dynamic dependence graphs (DDGs) that record data dependences and control dependences in a way that a change-propagation algorithm can update the computation as if the program were from scratch, by re-executing only the parts of the computation affected by the changes. Since change-propagation only re-executes parts of the computation, it can respond to certain incremental modifications asymptotically faster than recomputing from scratch, potentially offering significant speedups. Such asymptotic speedups, however, are rare: for many computations and modifications, change propagation is no faster than recomputing from scratch. In this article, we realize a duality between dynamic dependence graphs and memoization, and combine them to give a change-propagation algorithm that can dramatically increase computation reuse. The key idea is to use DDGs to identify and re-execute the parts of the computation that are affected by modifications, while using memoization to identify the parts of the computation that remain unaffected by the changes. We refer to this approach as self-adjusting computation. Since DDGs are imperative, but (traditional) memoization requires purely functional computation, reusing computation correctly via memoization becomes a challenge. We overcome this challenge with a technique for remembering and reusing not just the results of function calls (as in conventional memoization), but their executions represented with DDGs. We show that the proposed approach is realistic by describing a library for self-adjusting computation, presenting efficient algorithms for realizing the library, and describing and evaluating an implementation. Our experimental evaluation with a variety of applications, ranging from simple list primitives to more sophisticated computational geometry algorithms, shows that the approach is effective in practice: compared to recomputing from-scratch; self-adjusting programs respond to small modifications to their data orders of magnitude faster.

Similar Papers
  • Research Article
  • Citations293

Dynamic program slicing

  • Jun 01, 1990
  • ACM SIGPLAN Notices
  • Hiralal Agrawal +1
  • Conference Article
  • Citations17

Graph-Less Dynamic Dependence-Based Dynamic Slicing Algorithms

  • Sep 01, 2006
  • Arpad Beszedes +2
  • Conference Article
  • Citations45

An experimental analysis of self-adjusting computation

  • Jun 11, 2006
  • Umut A Acar +3
  • Conference Article
  • Citations18

Implicit self-adjusting computation for purely functional programs

  • Sep 19, 2011
  • Yan Chen +3
  • Conference Article
  • Citations1

Research on the application of dynamic slicing technology in software testing

  • Oct 01, 2016
  • Mao Yang Hong +1
  • Research Article
  • Citations68

Chip Multiprocessor Design Space Exploration through Statistical Simulation

  • Dec 01, 2009
  • IEEE Transactions on Computers
  • Davy Genbrugge +1
  • Conference Article
  • Citations77

Criticality-Aware Dynamic Task Scheduling for Heterogeneous Architectures

  • Jun 08, 2015
  • Kallia Chronaki +5
  • Supplementary Content

Adaptive Graph Construction and Spatiotemporal Contrastive Learning for Intelligent Cloud Service Monitoring

  • Feb 06, 2026
  • Preprints.org
  • Yuxiao Wang
  • Conference Article
  • Citations2

Simulation based deadlock analysis for system level designs

  • Jan 01, 2005
  • Xi Chen +4
  • Conference Article
  • Citations23

Performance analysis of minimal adaptive wormhole routing with time-dependent deadlock recovery

  • Apr 01, 1997
  • F Petrini +1
  • Research Article
  • Citations4

Probabilistic reasoning in diagnosing causes of program failures

  • Aug 19, 2015
  • Software Testing, Verification and Reliability
  • Junjie Xu +2
  • Research Article
  • Citations3

MicroNet: Operation Aware Root Cause Identification of Microservice System Anomalies

  • Aug 01, 2024
  • IEEE Transactions on Network and Service Management
  • Jingjing Yang +3
  • Research Article
  • Citations14

Mixing exact and importance sampling propagation algorithms in dependence graphs

  • Aug 01, 1997
  • International Journal of Intelligent Systems
  • Luis D Hern�Ndez +1
  • Research Article

Multi-Granularity Dependency Modeling for Automated Fault Triage in High-Throughput Financial Transaction Systems

  • Jan 09, 2026
  • Frontiers in Business and Finance
  • Tianyu Fang +2
  • PDF
  • Research Article
  • Citations7

Pot

  • Dec 16, 2016
  • ACM Transactions on Architecture and Code Optimization
  • Tiago M Vale +3
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.