Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1133981.1133993acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

An experimental analysis of self-adjusting computation

Published: 11 June 2006 Publication History
  • Get Citation Alerts
  • 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

    [1]
    M. Abadi, B. W. Lampson, and J.-J. Levy. Analysis and caching of dependencies. In International Conference on Functional Programming, pages 83--91, 1996.
    [2]
    U. A. Acar. Self-Adjusting Computation. PhD thesis, Department of Computer Science, Carnegie Mellon University, May 2005.
    [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]
    U. A. Acar, G. E. Blelloch, and R. Harper. Adaptive functional programming. In Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages, pages 247--259, 2002.
    [5]
    U. A. Acar, G. E. Blelloch, and R. Harper. Selective memoization. In Proceedings of the 30th Annual ACM Symposium on Principles of Programming Languages, 2003.
    [6]
    U. A. Acar, G. E. Blelloch, R. Harper, J. L. Vittes, and M. Woo. Dynamizing static algorithms with applications to dynamic trees and history independence. In ACM-SIAM Symposium on Discrete Algorithms (SODA), 2004.
    [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]
    C. B. Barber, D. P. Dobkin, and H. Huhdanpaa. The quickhull algorithm for convex hulls. ACM Trans. Math. Softw., 22(4):469--483, 1996.
    [10]
    R. Bellman. Dynamic Programming. Princeton University Press, 1957.
    [11]
    M. A. Bender, R. Cole, E. D. Demaine, M. Farach-Colton, and J. Zito. Two simplified algorithms for maintaining order in a list. In Lecture Notes in Computer Science, pages 152--164, 2002.
    [12]
    G. S. Brodal and R. Jacob. Dynamic planar convex hull. In Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science, pages 617--626, 2002.
    [13]
    M. Carlsson. Monads for incremental computing. In Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, pages 26--35. ACM Press, 2002.
    [14]
    T. M. Chan. Optimal output-sensitive convex hull algorithms in two and three dimensions. Discrete and Computational Geometry, 16:361--368, 1996.
    [15]
    T. M. Chan. Dynamic planar convex hull operations in near-logarithmic amortized time. J. ACM, 48(1):1--12, 2001.
    [16]
    Y.-J. Chiang and R. Tamassia. Dynamic algorithms in computational geometry. Proceedings of the IEEE, 80(9):1412--1434, 1992.
    [17]
    A. Demers, T. Reps, and T. Teitelbaum. Incremental evaluation of attribute grammars with application to syntax directed editors. In Proceedings of the 8th Annual ACM Symposium on Principles of Programming Languages, pages 105--116, 1981.
    [18]
    P. F. Dietz and D. D. Sleator. Two algorithms for maintaining order in a list. In Proceedings of the 19th ACM Symposium on Theory of Computing, pages 365--372, 1987.
    [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]
    A. Heydon, R. Levin, and Y. Yu. Caching function calls using precise dependencies. In Proceedings of the 2000 ACM SIGPLAN Conference on PLDI, pages 311--320, May 2000.
    [22]
    D. G. Kirkpatrick and R. Seidel. The ultimate planar convex hull algorithm. SIAM Journal on Computing, 15(2):287--299, 1986.
    [23]
    D. Knuth. The Art of Computer Programming: Sorting and Searching. Addison Wesley, 1998.
    [24]
    Y. A. Liu, S. Stoller, and T. Teitelbaum. Discovering auxiliary information for incremental computation. In Proceedings of the 23rd Annual ACM Symposium on Principles of Programming Languages, pages 157--170, 1996.
    [25]
    Y. A. Liu, S. Stoller, and T. Teitelbaum. Static caching for incremental computation. ACM Transactions on Programming Languages and Systems, 20(3):546--585, 1998.
    [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]
    W. Pugh and T. Teitelbaum. Incremental computation via function caching. In Proceedings of the 16th Annual ACM Symposium on Principles of Programming Languages, pages 315--328, 1989.
    [31]
    G. Ramalingam and T. Reps. A categorized bibliography on incremental computation. In Conference Record of the 20th Annual ACM Symposium on POPL, pages 502--510, Jan. 1993.
    [32]
    R. Seidel. Linear programming and convex hulls made easy. In SCG '90: Proceedings of the sixth annual symposium on Computational geometry, pages 211--215, New York, NY, USA, 1990. ACM Press.
    [33]
    M. I. Shamos. Computational Geometry. PhD thesis, Department of Computer Science, Yale University, 1978.
    [34]
    R. Wenger. Randomized quickhull. Algorithmica, 17(3):322--329, 1997.

    Cited By

    View all
    • (2023)A Software Architecture Based on Coarse-Grained Self-Adjusting ComputationsProceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture10.1145/3609025.3609481(1-10)Online publication date: 30-Aug-2023
    • (2018)D4: fast concurrency debugging with parallel differential analysisACM SIGPLAN Notices10.1145/3296979.319239053:4(359-373)Online publication date: 11-Jun-2018
    • (2018)D4: fast concurrency debugging with parallel differential analysisProceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3192366.3192390(359-373)Online publication date: 11-Jun-2018
    • Show More Cited By

    Index Terms

    1. An experimental analysis of self-adjusting computation

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation
      June 2006
      438 pages
      ISBN:1595933204
      DOI:10.1145/1133981
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 41, Issue 6
        Proceedings of the 2006 PLDI Conference
        June 2006
        426 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1133255
        Issue’s Table of Contents
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      In-Cooperation

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 11 June 2006

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. computational geometry
      2. dynamic algorithms
      3. dynamic dependence graphs
      4. memorization
      5. performance
      6. self-adjusting computation

      Qualifiers

      • Article

      Conference

      PLDI06
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 406 of 2,067 submissions, 20%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)5
      • Downloads (Last 6 weeks)1
      Reflects downloads up to 09 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media