High-performance parallel graph reduction

  • Simon L Peyton Jones
  • Chris Clack
  • Jon Salkild
Submitted Presentations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 365)

Abstract

Parallel graph reduction is an attractive implementation for functional programming languages because of its simplicity and inherently distributed nature. This paper outlines some of the issues raised by parallel compiled graph reduction, and presents the approach we have adopted for our parallel machine, GRIP.

We concentrate on two main areas:
  • •Static and dynamic techniques to control the growth of parallelism, so as to provide enough parallelism of an appropriate granularity to keep the machine busy without swamping it.

  • •Dynamic techniques to exploit the memory hierarchy, so that frequently-referenced data is held near to the processor that references it.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bake78a.
    Henry Baker, “List processing in real time on a serial computer”, CACM 21(4) pp. 280–294 (Apr 1978).Google Scholar
  2. Brus87a.
    TH Brus, MCJD van Eckelen, MO van Leer, and MJ Plasmeijer, “Clean — a language for functional graph rewriting”, pp. 364–384 in Functional programming languages and computer architecture, Portland, ed. G Kahn, LNCS 274, Springer Verlag (Sept 1987).Google Scholar
  3. Burn88a.
    Geoff Burn, Simon L Peyton Jones, and John Robson, “The Spineless G-machine”, pp. 244–258 in Proc ACM Conference on Lisp and Functional Programming, Snowbird (July 1988).Google Scholar
  4. Burt85a.
    F Warren Burton, “Speculative computation, parallelism and functional programming”, IEEE Trans Computers C-34(12) pp. 1190–1193 (Dec 1985).Google Scholar
  5. Cast86a.
    M Castan and et al, “MARS — a multiprocessor machine for parallel graph reduction”, in Proc 19th Hawaii Intl Conf on System Sciences (1986).Google Scholar
  6. Clac86a.
    Chris Clack and Simon L Peyton Jones, “The four-stroke reduction engine”, Proc ACM Conference on Lisp and Functional Programming, pp. 220–232 (Aug 1986).Google Scholar
  7. Cous85a.
    G Cousineau, PL Curien, and M Mauny, “The Categorical Abstract Machine”, pp. 50–64 in Functional Programming Languages and Computer Architecture, Nancy, ed. JP Jouannaud, LNCS 201, Springer Verlag (Sept 1985).Google Scholar
  8. Darl81a.
    John Darlington and Mike Reeve, “ALICE — a multiprocessor reduction machine for the parallel evaluation of applicative languages”, pp. 66–76 in Proc Conference on Functional Programming Languages and Computer Architecture, Portsmouth, New Hampshire, ACM (Oct 1981).Google Scholar
  9. Eage86a.
    DL Eager, J Zahorjan, and ED Lazowska, “Speedup versus efficiency in parallel systems”, Tech Report 86-08-01, University of Sasketchewan (Aug 1986).Google Scholar
  10. Eage86b.
    DL Eager, ED Lazowska, and J Zahorjan, “Adaptive load sharing in homogeneous distributed systems”, IEEE Trans Software Engineering SE-12(5) pp. 662–675 (May 1986).Google Scholar
  11. Fair87a.
    Jon Fairbairn and Stuart Wray, “TIM — a simple lazy abstract machine to execute supercombinators”, pp. 34–45 in Proc IFIP conference on Functional Programming Languages and Computer Architecture, Portland, ed. G Kahn, Springer Verlag LNCS 274 (Sept 1987).Google Scholar
  12. Gold88a.
    Benjamin F Goldberg, “Multiprocessor execution of functional programs”, YALEU/DCS/RR-618, Dept of Computer Science, Yale University (April 1988).Google Scholar
  13. Hals86a.
    RH Halstead, “An assessment of Multilisp — lessons from experience”, International Journal of Parallel Programming 15(6) (Dec 1986).Google Scholar
  14. Harr86a.
    PG Harrison and M Reeve, “The parallel graph reduction machine ALICE”, pp. 181–202 in Graph reduction: proceedings of a workshop, Santa Fe, ed. RM Keller, LNCS 279, Springer Verlag (Oct 1986).Google Scholar
  15. Huda83a.
    Paul Hudak, “Distributed task and memory management”, pp. 277–289 in Symposium on Principles of Distributed Computing, ed. NA Lynch et al, ACM (Aug 1983).Google Scholar
  16. John87a.
    Thomas Johnsson, “Compiling lazy functional languages”, PhD thesis, PMG, Chalmers University, Goteborg, Sweden (1987).Google Scholar
  17. Kieb87a.
    RB Kieburtz, “A RISC architecture for symbolic computation”, in Proc ASPLOS II (Oct 1987).Google Scholar
  18. Loog88a.
    R Loogen, H Kuchen, K Indermark, and W Damm, “Distributed implementation of programmed graph reduction”, in Proc workshop on implementation of lazy functional languages, Aspenas (Sept 1988).Google Scholar
  19. Peyt89b.
    SL Peyton Jones, “Parallel implementations of functional programming languages”, Computer Journal, (April 1989).Google Scholar
  20. Peyt87a.
    Simon L Peyton Jones, The implementation of functional programming languages, Prentice Hall (1987).Google Scholar
  21. Peyt87b.
    Simon L Peyton Jones, Chris Clack, Jon Salkild, and Mark Hardie., “GRIP — a high-performance architecture for parallel graph reduction”, pp. 98–112 in Proc IFIP conference on Functional Programming Languages and Computer Architecture, Portland, ed. G Kahn, Springer Verlag LNCS 274 (Sept 1987).Google Scholar
  22. Peyt88a.
    Simon L Peyton Jones, Chris Clack, Jon Salkild, and Mark Hardie, “Functional programming on the GRIP multiprocessor”, in Proc IEE Seminar on Digital Parallel Processors, Lisbon, Portugal, IEE (1988).Google Scholar
  23. Peyt89a.
    Simon L Peyton Jones and Jon Salkild, “The Spineless Tagless G-machine”, RN/89/21, Dept of Computer Science, University College London (March 1989).Google Scholar
  24. Reyn88a.
    TJ Reynolds, SA Delgado-Rannauro, ASK Cheng, and AJ Beaumont, “BRAVE on GRIP”, Department of Computer Science, University of Essex (1988).Google Scholar
  25. Rugg87a.
    Carlos A Ruggiero and John Sargeant, “Control of parallelism in the Manchester dataflow machine”, pp. 1–15 in Proc IFIP conference on Functional Programming Languages and Computer Architecture, Portland, ed. G Kahn, Springer Verlag LNCS 274 (Sept 1987).Google Scholar
  26. Wats87b.
    I Watson, J Sargeant, P Watson, and V Woods, “Flagship computational models and machine architecture”, ICL Technical Journal 5(3) pp. 555–574 (May 1987).Google Scholar
  27. Wats87a.
    Paul Watson and Ian Watson, “Evaluating functional programs on the FLAGSHIP machine”, pp. 80–97 in Proc IFIP conference on Functional Programming Languages and Computer Architecture, Protland, ed. G Kahn, Springer Verlag LNCS 274 (Sept 1987).Google Scholar

Copyright information

© Springer-Verlag 1989

Authors and Affiliations

  • Simon L Peyton Jones
    • 1
  • Chris Clack
    • 1
  • Jon Salkild
    • 1
  1. 1.Department of Computer ScienceUniversity College LondonLondonUnited Kingdom

Personalised recommendations