Skip to main content

Efficient distributed memory implementation of a data parallel functional language

  • Conference paper
  • First Online:
Book cover PARLE'94 Parallel Architectures and Languages Europe (PARLE 1994)

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

Abstract

We discuss why existing implementations of functional languages on MIMD-machines with distributed memory are slow. This is done by comparing the behavior of a functional program with a corresponding Occam program. The main reason is that functional languages give insufficient means to control parallelism and communication. Our approach is to support data parallelism by providing a set of primitives on arrays which allow the user to control the parallelism and communication on a high level, disabling problems like deadlocks. Only one unique version of an array may be referenced at a time. This restriction allows arrays to be updated in place and enables the user to control the space requirements of the program. The uniqueness of arrays is checked by the compiler. Experimental results demonstrate the efficiency of our data parallel functional language.

This author has been supported by Graduiertenkolleg Informatik und Technik.

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. S.G. Akl: The Design and Analysis of Parallel Algorithms, Prentice Hall, 1989.

    Google Scholar 

  2. L. Augustsson, T. Johnsson: Parallel Graph Reduction with the v-G-machine, FPCA'89, ACM, 202–213, 1989.

    Google Scholar 

  3. J. Darlington: Parallel Programming Using Skeleton Functions, Proceedings of PARLE '93, LNCS 694, 146–160, 1993.

    Google Scholar 

  4. W.M. Gentleman: Some Complexity Results for Matrix Computations on Parallel Processors, Journal of the ACM, Vol. 25, 112–115, 1978.

    Article  Google Scholar 

  5. P. Hudak, A. Bloss: The Aggregate Update Problem in Functional Programming Systems, ACM Symp. on Principles of Programming Languages, 300–314, 1985.

    Google Scholar 

  6. G. Hogen, A. Kindler, R. Loogen: Automatic Parallelization of Lazy Functional Programs, Proc. ESOP'92, LNCS 582, 254–268, 1992.

    Google Scholar 

  7. P. Hudak, S. Peyton Jones, P. Wadler (eds.): Report on the Programming Language Haskell, A Non-Strict Purely Functional Language, SIGPLAN Notices 27(5), 1992.

    Google Scholar 

  8. P. Hudak: Para-functional Programming in Haskell, in B.K. Szymanski (ed.): Parallel Functional Languages and Compilers, Addison-Wesley, 1991.

    Google Scholar 

  9. P. Hudak: Mutable Abstract Datatypes or How to Have Your State and Munge It Too, Yale Research Report YALEU/DCS/RR-914, 1993.

    Google Scholar 

  10. G. Jones, M. Goldsmith: Programming in Occam 2, Prentice Hall, 1988.

    Google Scholar 

  11. H. Kingdon, D. Lester, G.L. Burn: The HDG-machine: a highly distributed graph-reducer for a transputer network, Computer Journal, Vol. 34(4), 290–301, 1991.

    Article  Google Scholar 

  12. H. Kuchen: Distributed Memory Implementation of a Data Parallel Functional Language, PMG report 76, Chalmers Univ. of Technology, Sweden, 1993.

    Google Scholar 

  13. H. Kuchen, A. Wagener: Comparison of Dynamic Load Balancing Strategies, Workshop on Parallel and Distributed Processing, Elsevier Publishers, 1990.

    Google Scholar 

  14. R. Loogen, H. Kuchen, K. Indermark, W. Damm: Distributed Implementation of Programmed Graph Reduction, PARLE '89, LNCS 365, 136–157, 1989.

    Google Scholar 

  15. Perihelion Software: The Helios Parallel Operating System, Prentice Hall, 1991.

    Google Scholar 

  16. R. Plasmeijer, M. van Eekelen: Functional Programming and Parallel Graph Rewriting, Addison-Wesley, 1993.

    Google Scholar 

  17. J. Smetsers, E. Barendsen: Conventional and uniqueness typing in graph rewrite systems, 13th Conf. on Foundations of Software Technology and TCS, LNCS, 1993.

    Google Scholar 

  18. A.V.S. Sastry, W. Clinger, Z. Ariola: Order-of-evaluation Analysis for Destructive Updates in Strict Functional Languages with Flat Aggregates, FPCA'93, ACM, 266–275, 1993.

    Google Scholar 

  19. H. Stoltze, H. Kuchen: Parallel Functional Programming using Algorithmic Skeletons, ParCo'93, Elsevier Publishers, 1993.

    Google Scholar 

  20. P. Wadler: Comprehending monads, Symp. on LISP and Functional Programming, 61–78, ACM, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Costas Halatsis Dimitrios Maritsas George Philokyprou Sergios Theodoridis

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kuchen, H., Plasmeijer, R., Stoltze, H. (1994). Efficient distributed memory implementation of a data parallel functional language. In: Halatsis, C., Maritsas, D., Philokyprou, G., Theodoridis, S. (eds) PARLE'94 Parallel Architectures and Languages Europe. PARLE 1994. Lecture Notes in Computer Science, vol 817. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58184-7_123

Download citation

  • DOI: https://doi.org/10.1007/3-540-58184-7_123

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58184-0

  • Online ISBN: 978-3-540-48477-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics