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.
References
Henry Baker, “List processing in real time on a serial computer”, CACM 21(4) pp. 280–294 (Apr 1978).
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).
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).
F Warren Burton, “Speculative computation, parallelism and functional programming”, IEEE Trans Computers C-34(12) pp. 1190–1193 (Dec 1985).
M Castan and et al, “MARS — a multiprocessor machine for parallel graph reduction”, in Proc 19th Hawaii Intl Conf on System Sciences (1986).
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).
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).
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).
DL Eager, J Zahorjan, and ED Lazowska, “Speedup versus efficiency in parallel systems”, Tech Report 86-08-01, University of Sasketchewan (Aug 1986).
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).
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).
Benjamin F Goldberg, “Multiprocessor execution of functional programs”, YALEU/DCS/RR-618, Dept of Computer Science, Yale University (April 1988).
RH Halstead, “An assessment of Multilisp — lessons from experience”, International Journal of Parallel Programming 15(6) (Dec 1986).
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).
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).
Thomas Johnsson, “Compiling lazy functional languages”, PhD thesis, PMG, Chalmers University, Goteborg, Sweden (1987).
RB Kieburtz, “A RISC architecture for symbolic computation”, in Proc ASPLOS II (Oct 1987).
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).
SL Peyton Jones, “Parallel implementations of functional programming languages”, Computer Journal, (April 1989).
Simon L Peyton Jones, The implementation of functional programming languages, Prentice Hall (1987).
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).
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).
Simon L Peyton Jones and Jon Salkild, “The Spineless Tagless G-machine”, RN/89/21, Dept of Computer Science, University College London (March 1989).
TJ Reynolds, SA Delgado-Rannauro, ASK Cheng, and AJ Beaumont, “BRAVE on GRIP”, Department of Computer Science, University of Essex (1988).
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).
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).
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).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jones, S.L.P., Clack, C., Salkild, J. (1989). High-performance parallel graph reduction. In: Odijk, E., Rem, M., Syre, JC. (eds) PARLE '89 Parallel Architectures and Languages Europe. PARLE 1989. Lecture Notes in Computer Science, vol 365. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3540512845_40
Download citation
DOI: https://doi.org/10.1007/3540512845_40
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51284-4
Online ISBN: 978-3-540-46183-8
eBook Packages: Springer Book Archive