A proposal for parallel self-adjusting computation

We present an overview of our ongoing work on parallelizing self-adjusting-computation techniques. In self-adjusting computation, programs can respond to changes to their data (e.g., inputs, outcomes of comparisons) automatically by running a change-propagation algorithm. This ability is important in applications where inputs change slowly over time. All previously proposed self-adjusting computation techniques assume a sequential execution model. We describe techniques for writing parallel self-adjusting programs and a change propagation algorithm that can update computations in parallel. We describe a prototype implementation and present preliminary experimental results.

[1]  Guy E. Blelloch,et al.  Parallelism in sequential functional languages , 1995, FPCA '95.

[2]  J. Gregory Morrisett,et al.  L3: A Linear Language with Locations , 2007, Fundam. Informaticae.

[3]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[4]  David Walker,et al.  Typed memory management in a calculus of capabilities , 1999, POPL '99.

[5]  Guy E. Blelloch,et al.  Adaptive functional programming , 2002, POPL '02.

[6]  Cecilia R. Aragon,et al.  Randomized search trees , 2005, Algorithmica.

[7]  Guy E. Blelloch,et al.  Dynamizing static algorithms, with applications to dynamic trees and history independence , 2004, SODA '04.

[8]  Guy E. Blelloch,et al.  An experimental analysis of self-adjusting computation , 2009 .

[9]  Umut A. Acar Self-adjusting computation: (an overview) , 2009, PEPM '09.

[10]  David Walker,et al.  Alias Types for Recursive Data Structures , 2000, Types in Compilation.

[11]  Robert Harper Self-adjusting computation , 2004, LICS 2004.

[12]  Guy E. Blelloch,et al.  Kinetic Algorithms Via Self-adjusting Computation , 2006, ESA.

[13]  Matthew Fluet,et al.  A Linear Language with Locations , 2007 .

[14]  Michael A. Bender,et al.  On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs , 2004, SPAA '04.

[15]  Paul F. Dietz,et al.  Two algorithms for maintaining order in a list , 1987, STOC.

[16]  Richard Cole,et al.  Dynamic LCA queries on trees , 1999, SODA '99.

[17]  Guy E. Blelloch,et al.  An experimental analysis of self-adjusting computation , 2006, PLDI '06.