Skip to main content

FRATS: A parallel reduction strategy for shared memory

  • Session: Parallel Implementations
  • Conference paper
  • First Online:
Programming Language Implementation and Logic Programming (PLILP 1991)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 528))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. L. Augustsson and T. Johnsson, “Parallel Graph Reduction with the < v, G>-machine”, Proc. Functional Programming Languages and Computer Architecture 1989, pp 202–213.

    Google Scholar 

  2. L. George, “An Abstract Machine for Parallel Graph Reduction”, Proc. Functional Programming Languages and Computer Architecture 1989, pp 214–229.

    Google Scholar 

  3. B. Goldberg, “Buckwheat: Graph Reduction on a Shared Memory Multiprocessor”, Proc. ACM Conf. on LISP and Functional Progr. 1988, pp 40–51.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. R.J.M. Hughes “Super combinators — A new implementation method for applicative languages”, ACM Symp. on Lisp and functional programming, pp 1–10, 1982.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. D.A. Turner, “A new implementation technique for applicative languages”, Software practice and experience, Vol 9, no 1, pp 31–49, 1979.

    Google Scholar 

  11. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan Maluszyński Martin Wirsing

Rights and permissions

Reprints 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

Publish with us

Policies and ethics