Skip to main content
Log in

Experiments with applicative updating: Practical results

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Large scale computing applications often consist of calculations that are repeated for many sets of input data. If the variance between the data sets is small, there may be portions of the computation which are not affected by the changes in the input values. The effort required for such systems can be reduced with efficient methods of recomputation. This paper presents an approach for efficient recomputation over function graphs. A change to an input value of a previously computed function initiates a process of retraction along the data paths dependent on that input. The retraction process consists of first tracing the paths from the input to the output, noting along the way that a change is impending, then tracing back from the output to the input, removing the previously computed values from the intermediate nodes. The modified input value is then released into the function graph, and the retracted portions of the graph are recomputed. Throughout this process, all nonretracted output values are an accurate reflection of the current input values. A retraction mechanism that allows efficient recomputation increases the usefulness of functional programming systems. We present the results of some experiments showing the time taken by the recomputation for two different types of problems. We propose the characteristics of function graphs for which this technique will be most effective.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. D. Pederson, A Historical Review of Circuit Simulation,IEEE Transactions on Circuits and Systems, Volume CAS-31, No. 1 (January 1984).

  2. R. M. Keller, G. Lindstrom, and S. Patil, A Loosely-coupled Applicative Multiprocessing System,AFIPS, pp. 613–622, June 1979.

  3. R. M. Keller and F. C. H. Lin, Simulated Performance of a Reduction-Based Multiprocessor,IEEE Computer 17(7):70–82 (July 1984).

    Google Scholar 

  4. R. M. Keller, FEL (Function Equation Language) Programmer's Guide, AMPS Technical Memorandum No. 7, Dept. of Computer Science, University of Utah (April 1982).

  5. R. M. Keller, B. Jayaraman, D. Rose, and G. Lindstrom, FGL (Function Graph Language) Programmers' Guide, AMPS Technical Memorandum No. 1, Dept. of Computer Science, University of Utah (July 1980).

  6. P. Hudak and A. Bloss, Avoiding Copying in Functional and Logic Programming Languages,Proceedings 12th ACM Symposium on Principles of Programming Languages, ACM, pp. 300–314 (January 1985).

  7. A. Aho, R. Sethi, and J. Ullman,Compilers: Principles, Techniques and Tools, Addison-Wesley Publishing Company, Reading, Massachusetts (1986).

    Google Scholar 

  8. R. M. Keller and G. Lindstrom, Approaching Distributed Database Implementations through Functional Programming Concepts,International Conference on Distributed Systems (May 1985).

  9. R. M. Keller and G. Lindstrom, Hierarchical Analysis of a Distributed Evaluator,International Conference on Parallel Processing, pp. 299–310 (August 1980).

  10. E. Oberg, F. D. Jones, and H. L. Horton,Machinery' Handbook, A Reference Book for the Mechanical Engineer, Draftsman, Toolmaker and Machinist, Twentieth Edition, Industrial Press, Inc., New York, pp. 358–375 (1975).

    Google Scholar 

  11. G. Lindstrom and F. Hunt, Consistency and Currency in Functional Databases,Proceedings of IEEE INFOCOM 83, IEEE, pp. 352–361 (April 1983).

  12. G. Lindstrom and R. Wagner, Incremental Recomputation on Data-flow Graphs,Symposium on Functional Languages and Computer Architecture, Homstrom,et al. (eds.), Laboratory on Programming Methodology, Department of Computer Sciences, Chalmers University of Technology and Goteborg University, pp. 472–489 (June 1981).

  13. F. E. Hunt, Applicative Updating and Provisional Computation in Functional Programming, PhD Dissertation, Dept. of Computer Science, University of Utah, Salt Lake City, Utah (June 1983).

    Google Scholar 

  14. C. D. Lasser, A Retraction Engine for Efficient Function Recomputation, MS Thesis, Dept. of Computer Engineering and Science, Case Western Reserve University (August 1984).

Download references

Authors

Additional information

Department of Computer Engineering and Science, Case Western Reserve University

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hunt, F.E. Experiments with applicative updating: Practical results. Int J Parallel Prog 16, 279–303 (1987). https://doi.org/10.1007/BF01407938

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01407938

Key Words

Navigation