Implementation of parallel graph reduction by explicit annotation and program transformation

  • Willem G. Vree
Invited Lectures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 452)


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.


Reduction Model Process Network Functional Program Tidal Model Program Transformation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

9 References

  1. [BAR87]
    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. [HAR87]
    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–253Google Scholar
  3. [HAR89]
    P.H. Hartel, Performance analysis of stroage management in combinator graph reduction, Ph. D. thesis, Dept. of Comp. Sys., University of Amsterdam, 1989Google Scholar
  4. [HER89]
    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 1989Google Scholar
  5. [HUD85]
    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. [HUG82]
    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. [JOH84]
    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. [KAH74]
    G. Kahn, The semantics of a simple language for parallel programming, in Information Processing 74, North-Holland Publishing Company, pp 471–475Google Scholar
  9. [KEL89]
    P. Kelly, Functional programming for loosely-coupled /multiprocessors, in series ‘research monographs in parallel and distributed computing', Pitman & MIT Press, April 1989Google Scholar
  10. [MCB87]
    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. [PEY87a]
    S.L. Peyton-Jones, The implementation of functional programming languages, Prentice Hall, Englewood Cliffs, New Jersey, 1987Google Scholar
  12. [PEY87b]
    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. [TUR79]
    D.A. Turner, A new implementation technique for applicative languages, Software practice and experience, Vol. 9, No. 1, pp 31–49, Jan. 1979Google Scholar
  14. [VRE87]
    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. [VRE89]
    W.G. Vree, Design considerations for a parallel reduction machine, Ph. D. thesis, Dept. of Comp. Sys., University of Amsterdam, 1989.Google Scholar
  16. [WAD71]
    C.P. Wadsworth, Semantics and Pragmatics of the Lambda-calculus, Ph. D. thesis, Oxford University, U.K., 1971.Google Scholar
  17. [WAN81]
    H.H. Wang, A parallel method for Tridiagonal Equations, ACM transactions on Mathematical Software, Vol 7, No 2, June 1981, pp 170–183Google Scholar
  18. [WAT87]
    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. [WRA86]
    S.C. Wray, Implementing and programming techniques for functional languages, PhD. thesis, Tech. Rep. 92, Univ. of Cambridge, Jan 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Willem G. Vree
    • 1
  1. 1.Department of computer systemsUniversity of AmsterdamAmsterdam

Personalised recommendations