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.
Preview
Unable to display preview. Download preview PDF.
References
S.G. Akl: The Design and Analysis of Parallel Algorithms, Prentice Hall, 1989.
L. Augustsson, T. Johnsson: Parallel Graph Reduction with the v-G-machine, FPCA'89, ACM, 202–213, 1989.
J. Darlington: Parallel Programming Using Skeleton Functions, Proceedings of PARLE '93, LNCS 694, 146–160, 1993.
W.M. Gentleman: Some Complexity Results for Matrix Computations on Parallel Processors, Journal of the ACM, Vol. 25, 112–115, 1978.
P. Hudak, A. Bloss: The Aggregate Update Problem in Functional Programming Systems, ACM Symp. on Principles of Programming Languages, 300–314, 1985.
G. Hogen, A. Kindler, R. Loogen: Automatic Parallelization of Lazy Functional Programs, Proc. ESOP'92, LNCS 582, 254–268, 1992.
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.
P. Hudak: Para-functional Programming in Haskell, in B.K. Szymanski (ed.): Parallel Functional Languages and Compilers, Addison-Wesley, 1991.
P. Hudak: Mutable Abstract Datatypes or How to Have Your State and Munge It Too, Yale Research Report YALEU/DCS/RR-914, 1993.
G. Jones, M. Goldsmith: Programming in Occam 2, Prentice Hall, 1988.
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.
H. Kuchen: Distributed Memory Implementation of a Data Parallel Functional Language, PMG report 76, Chalmers Univ. of Technology, Sweden, 1993.
H. Kuchen, A. Wagener: Comparison of Dynamic Load Balancing Strategies, Workshop on Parallel and Distributed Processing, Elsevier Publishers, 1990.
R. Loogen, H. Kuchen, K. Indermark, W. Damm: Distributed Implementation of Programmed Graph Reduction, PARLE '89, LNCS 365, 136–157, 1989.
Perihelion Software: The Helios Parallel Operating System, Prentice Hall, 1991.
R. Plasmeijer, M. van Eekelen: Functional Programming and Parallel Graph Rewriting, Addison-Wesley, 1993.
J. Smetsers, E. Barendsen: Conventional and uniqueness typing in graph rewrite systems, 13th Conf. on Foundations of Software Technology and TCS, LNCS, 1993.
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.
H. Stoltze, H. Kuchen: Parallel Functional Programming using Algorithmic Skeletons, ParCo'93, Elsevier Publishers, 1993.
P. Wadler: Comprehending monads, Symp. on LISP and Functional Programming, 61–78, ACM, 1990.
Author information
Authors and Affiliations
Editor information
Rights 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