|
ABSTRACT
Dependence graphs and memoization can be used to efficiently update the output of a program as the input changes dynamically. Recent work has studied techniques for combining these approaches to effectively dynamize a wide range of applications. Toward this end various theoretical results were given. In this paper we describe the implementation of a library based on these ideas, and present experimental results on the efficiency of this library on a variety of applications. The results of the experiments indicate that the approach is effective in practice, often requiring orders of magnitude less time than recomputing the output from scratch. We believe this is the first experimental evidence that incremental computation of any type is effective in practice for a reasonably broad set of applications.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Martín Abadi , Butler Lampson , Jean-Jacques Lévy, Analysis and caching of dependencies, Proceedings of the first ACM SIGPLAN international conference on Functional programming, p.83-91, May 24-26, 1996, Philadelphia, Pennsylvania, United States
|
| |
2
|
|
| |
3
|
U. A. Acar, G. E. Blelloch, M. Blume, R. Harper, and K. Tangwongsan. A library for self-adjusting computation. In ACM SIGPLAN Workshop on ML, 2005.
|
 |
4
|
|
 |
5
|
Umut A. Acar , Guy E. Blelloch , Robert Harper, Selective memoization, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.14-25, January 15-17, 2003, New Orleans, Louisiana, USA
|
| |
6
|
Umut A. Acar , Guy E. Blelloch , Robert Harper , Jorge L. Vittes , Shan Leung Maverick Woo, Dynamizing static algorithms, with applications to dynamic trees and history independence, Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms, January 11-14, 2004, New Orleans, Louisiana
|
| |
7
|
U. A. Acar, G. E. Blelloch, K. Tangwongsan, and J. Vittes. Kinetic algorithms via self-adjusting computation. Technical Report CMU-CS-06-115, Department of Computer Science, Carnegie Mellon University, March 2006.
|
| |
8
|
U. A. Acar, G. E. Blelloch, and J. L. Vittes. An experimental analysis of change propagation in dynamic trees. In Workshop on Algorithm Engineering and Experimentation, 2005.
|
 |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
 |
13
|
|
| |
14
|
T. M. Chan. Optimal output-sensitive convex hull algorithms in two and three dimensions. Discrete and Computational Geometry, 16:361--368, 1996.
|
 |
15
|
|
| |
16
|
Y.-J. Chiang and R. Tamassia. Dynamic algorithms in computational geometry. Proceedings of the IEEE, 80(9):1412--1434, 1992.
|
 |
17
|
|
 |
18
|
|
| |
19
|
D. Eppstein, Z. Galil, and G. F. Italiano. Dynamic graph algorithms. In M. J. Atallah, editor, Algorithms and Theory of Computation Handbook, chapter 8. CRC Press, 1999.
|
| |
20
|
R. L. Graham. An efficient algorithm for determining the convex hull of a finite planar set. Information Processing Letters, 1:132--133, 1972.
|
 |
21
|
Allan Heydon , Roy Levin , Yuan Yu, Caching function calls using precise dependencies, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.311-320, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
22
|
|
| |
23
|
|
 |
24
|
Yanhong A. Liu , Scott D. Stoller , Tim Teitelbaum, Discovering auxiliary information for incremental computation, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.157-170, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237769]
|
 |
25
|
|
| |
26
|
J. McCarthy. A Basis for a Mathematical Theory of Computation. In P. Braffort and D. Hirschberg, editors, Computer Programming and Formal Systems, pages 33- 70. North-Holland, Amsterdam, 1963.
|
| |
27
|
D. Michie. Memo functions and machine learning. Nature, 218:19--22, 1968.
|
| |
28
|
M. H. Overmans and J. van Leeuwen. Maintenance of configurations in the plane. Journal of Computer and System Sciences, 23:166--204, 1981.
|
| |
29
|
W. Pugh. Incremental computation via function caching. PhD thesis, Department of Computer Science, Cornell University, August 1988.
|
 |
30
|
|
 |
31
|
|
 |
32
|
|
| |
33
|
|
| |
34
|
R. Wenger. Randomized quickhull. Algorithmica, 17(3):322--329, 1997.
|
CITED BY 9
|
|
|
|
|
|
|
|
|
|
|
Matthew Hammer , Umut A. Acar , Mohan Rajagopalan , Anwar Ghuloum, A proposal for parallel self-adjusting computation, Proceedings of the 2007 workshop on Declarative aspects of multicore programming, p.3-9, January 16-16, 2007, Nice, France
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|