Skip to main content

Implementation of parallel graph reduction by explicit annotation and program transformation

  • Invited Lectures
  • Conference paper
  • First Online:
Mathematical Foundations of Computer Science 1990 (MFCS 1990)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 452))

Abstract

Initially functional languages were implemented using tree reduction or term rewriting. It was realized in 1971 by Wadsworth that more efficient execution would result if shared subexpressions were reduced only once, leading to the mechanism of graph reduction. Graph reduction is considered an attractive possibility to achieve parallel execution on distributed memory architectures. However, serious problems arise with respect to the distribution of the graph and the locality of rewrite actions. We present a solution to these problems by introducing "annotating" functions, which have a special reduction strategy and a restricted copying semantics. In addition to these annotating functions program transformations are needed to map a broad class of application programs onto our reduction model. Several medium sized programs have been annotated in this way and results are presented of an implementation on a specially designed concrete architecture.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

9 References

  1. H.P. Barendregt, M.C.J.D. van Eekelen, M.J. Plasmeijer, P.H. Hartel, L.O. Hertzberger, W.G. Vree, The Dutch parallel reduction machine project, Future generations computer systems, Vol 3, No 4, pp 261–270, Dec 1987.

    Google Scholar 

  2. P.H. Hartel, A.H. Veen, Statistics on graph reduction of SASL programs, Software practice and experience, Vol. 18, No. 3, March 1988, pp 239–253

    Google Scholar 

  3. P.H. Hartel, Performance analysis of stroage management in combinator graph reduction, Ph. D. thesis, Dept. of Comp. Sys., University of Amsterdam, 1989

    Google Scholar 

  4. L.O. Hertzberger, W.G. Vree, A Coarse Grain Parallel Architecture for Declarative Languages, in Conf. on Parallel Architectures and Languages Europe (PARLE), Eindhoven, the Netherlands, LNCS vol. 365, pp 269–285, June 1989

    Google Scholar 

  5. P. Hudak, B. Goldberg, Distributed execution of functional programs using serial combinators, IEEE Transactions on computers, Vol. C-34, No. 10, pp 881–891, Oct. 1985.

    Google Scholar 

  6. R.J.M. Hughes, Super combinators — a new implementation method for applicative languages, in ACM symp. on Lisp and functional programming, Pittsburg, Aug. 1982, pp 1–10.

    Google Scholar 

  7. T. Johnsson, Efficient compilation of lazy evaluation, Proc. of the ACM Sigplan '84, Sigplan Notices, Vol. 19, No 6, June 1984, pp 58–69.

    Google Scholar 

  8. G. Kahn, The semantics of a simple language for parallel programming, in Information Processing 74, North-Holland Publishing Company, pp 471–475

    Google Scholar 

  9. P. Kelly, Functional programming for loosely-coupled /multiprocessors, in series ‘research monographs in parallel and distributed computing', Pitman & MIT Press, April 1989

    Google Scholar 

  10. D.L. McBurney, M.R. Sleep, Transputer-based experiments with the ZAPP architecture, in Conf. on parallel architectures and languages Europe (PARLE), part I, Eindhoven, the Netherlands, LNCS 259, pp. 242–259, June 1987.

    Google Scholar 

  11. S.L. Peyton-Jones, The implementation of functional programming languages, Prentice Hall, Englewood Cliffs, New Jersey, 1987

    Google Scholar 

  12. S.L. Peyton-Jones, C. Clack, J. Salkild, M. Hardie, GRIP-a high performance architecture for parallel graph reduction, Proceedings of the Third International Conference on Functional Programming Languages and Computer Architecture (FPCA '87), Portland, Oregon, USA, LNCS 274, pp. 98–112, September 1987.

    Google Scholar 

  13. D.A. Turner, A new implementation technique for applicative languages, Software practice and experience, Vol. 9, No. 1, pp 31–49, Jan. 1979

    Google Scholar 

  14. W.G. Vree, The grain size of parallel computations in a functional program, in Conf. on parallel processing and applications, l'Aquila, Italy, September 1987, Elsevier Science Publishing, pp 363–370.

    Google Scholar 

  15. W.G. Vree, Design considerations for a parallel reduction machine, Ph. D. thesis, Dept. of Comp. Sys., University of Amsterdam, 1989.

    Google Scholar 

  16. C.P. Wadsworth, Semantics and Pragmatics of the Lambda-calculus, Ph. D. thesis, Oxford University, U.K., 1971.

    Google Scholar 

  17. H.H. Wang, A parallel method for Tridiagonal Equations, ACM transactions on Mathematical Software, Vol 7, No 2, June 1981, pp 170–183

    Google Scholar 

  18. P. Watson, I. Watson, Evaluating functional program on the FLAGSHIP machine, Proceedings of the Third International Conference on Functional Programming Languages and Computer Architecture (FPCA '87), Portland, Oregon, USA, LNCS 274, pp. 80–97, September 1987.

    Google Scholar 

  19. S.C. Wray, Implementing and programming techniques for functional languages, PhD. thesis, Tech. Rep. 92, Univ. of Cambridge, Jan 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Branislav Rovan

Rights and permissions

Reprints and permissions

Copyright information

© 1990 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vree, W.G. (1990). Implementation of parallel graph reduction by explicit annotation and program transformation. In: Rovan, B. (eds) Mathematical Foundations of Computer Science 1990. MFCS 1990. Lecture Notes in Computer Science, vol 452. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0029601

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-52953-8

  • Online ISBN: 978-3-540-47185-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics