Self-adjusting computation: (an overview)

  • Authors:
  • Umut A. Acar

  • Affiliations:
  • Toyota Technological Institute, Chicago, IL, USA

  • Venue:
  • Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

Many applications need to respond to incremental modifications to data. Being incremental, such modification often require incremental modifications to the output, making it possible to respond to them asymptotically faster than recomputing from scratch. In many cases, taking advantage of incrementality therefore dramatically improves performance, especially as the input size increases. As a frame of reference, note that in parallel computing speedups are bounded by the number of processors, often a (small) constant. Designing and developing applications that respond to incremental modifications, however, is challenging: it often involves developing highly specific, complex algorithms. Self-adjusting computation offers a linguistic approach to this problem. In self-adjusting computation, programs respond automatically and efficiently to modifications to their data by tracking the dynamic data dependences of the computation and incrementally updating their output as needed. In this invited talk, I present an overview of self-adjusting computation and briefly discuss the progress in developing the approach and present some recent advances.