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.
Preview
Unable to display preview. Download preview PDF.
9 References
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.
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
P.H. Hartel, Performance analysis of stroage management in combinator graph reduction, Ph. D. thesis, Dept. of Comp. Sys., University of Amsterdam, 1989
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
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.
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.
T. Johnsson, Efficient compilation of lazy evaluation, Proc. of the ACM Sigplan '84, Sigplan Notices, Vol. 19, No 6, June 1984, pp 58–69.
G. Kahn, The semantics of a simple language for parallel programming, in Information Processing 74, North-Holland Publishing Company, pp 471–475
P. Kelly, Functional programming for loosely-coupled /multiprocessors, in series ‘research monographs in parallel and distributed computing', Pitman & MIT Press, April 1989
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.
S.L. Peyton-Jones, The implementation of functional programming languages, Prentice Hall, Englewood Cliffs, New Jersey, 1987
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.
D.A. Turner, A new implementation technique for applicative languages, Software practice and experience, Vol. 9, No. 1, pp 31–49, Jan. 1979
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.
W.G. Vree, Design considerations for a parallel reduction machine, Ph. D. thesis, Dept. of Comp. Sys., University of Amsterdam, 1989.
C.P. Wadsworth, Semantics and Pragmatics of the Lambda-calculus, Ph. D. thesis, Oxford University, U.K., 1971.
H.H. Wang, A parallel method for Tridiagonal Equations, ACM transactions on Mathematical Software, Vol 7, No 2, June 1981, pp 170–183
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.
S.C. Wray, Implementing and programming techniques for functional languages, PhD. thesis, Tech. Rep. 92, Univ. of Cambridge, Jan 1986.
Author information
Authors and Affiliations
Editor information
Rights 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