Abstract
FRATS is a strategy for parallel execution of functional languages on shared memory multiprocessors. It provides fork-join parallelism through the explicit us-age of an annotation to (recursively) spark a set of parallel tasks. These tasks are executed by ordinary sequential graph reducers which share the program graph. FRATS avoids the consistency problem of graph reducers updating shared nodes by a special evaluation order: Before sparking a set of tasks, all (sub) redexes in those tasks are reduced to normal forms. Then the tasks can proceed in parallel without any synchronisation (e.g., locks) because tasks only share normalised graph nodes. The eager evaluation of shared redexes, however, does not preserve full laziness which might result in superfluous or, worse, infinite computation. The paper presents in detail program transformations to enforce termination and avoid superfluous computation. Analysis of a benchmark of parallel applications shows that these transformations are necessary and effective with negligible costs. Sometimes they even increase performance.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
L. Augustsson and T. Johnsson, “Parallel Graph Reduction with the < v, G>-machine”, Proc. Functional Programming Languages and Computer Architecture 1989, pp 202–213.
L. George, “An Abstract Machine for Parallel Graph Reduction”, Proc. Functional Programming Languages and Computer Architecture 1989, pp 214–229.
B. Goldberg, “Buckwheat: Graph Reduction on a Shared Memory Multiprocessor”, Proc. ACM Conf. on LISP and Functional Progr. 1988, pp 40–51.
P.H. Hartel and A.H. Veen, “Statistics on graph reduction of SASL programs”, Software practice and experience, Vol 18, no 3, pp 239–253, 1988.
P.H. Hartel, M.H.M. Smid, L. Torenvliet, and W.G. Vree, “A parallel functional implementation of range queries”, Computing Science in the Netherlands, pp 173–189, 1989, eds. P.M.G Apers, D. Bosman, and J. van Leeuwen.
L.O.H. Hertzberger and W.G. Vree. “A Coarse Grain Parallel Architecture for Functional Languages”, PARLE '89; Parallel Architectures and Languages Europe, Vol I, pp 269–285, Springer-Verlag LNCS 365, 1989.
R.J.M. Hughes “Super combinators — A new implementation method for applicative languages”, ACM Symp. on Lisp and functional programming, pp 1–10, 1982.
R. Loogen, H. Kuchen, K. Indermark, and W. Damm, “Distributed Implementation of Programmed Graph Reduction”, PARLE '89; Parallel Architectures and Languages Europe, Vol I, pp 136–157, Springer-Verlag LNCS 365, 1989.
H. Kingdon, D.R. Lester, and G.L. Burn, “A Highly Distributed Graph Reducer for a Transputer Network”, Tech. Rep. 123, CEG Hirst Research Centre, 1989.
D.A. Turner, “A new implementation technique for applicative languages”, Software practice and experience, Vol 9, no 1, pp 31–49, 1979.
W.G. Vree, “Implementation of Parallel Graph Reduction by Explicit Annotation and Program Transformation”, Mathematical Foundations of Computer Science 1990, LNCS 452, pp 135–151.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Langendoen, K.G., Vree, W.G. (1991). FRATS: A parallel reduction strategy for shared memory. In: Maluszyński, J., Wirsing, M. (eds) Programming Language Implementation and Logic Programming. PLILP 1991. Lecture Notes in Computer Science, vol 528. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54444-5_91
Download citation
DOI: https://doi.org/10.1007/3-540-54444-5_91
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54444-9
Online ISBN: 978-3-540-38362-8
eBook Packages: Springer Book Archive