Skip to main content
Log in

Multiprocessor execution of functional programs

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Functional languages have recently gained attention as vehicles for programming in a concise and elegant manner. In addition, it has been suggested that functional programming provides a natural methodology for programming multiprocessor computers. This paper describes research that was performed to demonstrate that multiprocessor execution of functional programs on current multiprocessors is feasible, and results in a significant reduction in their execution times.

Two implementations of the functional language ALFL were built on commercially available multiprocessors.Alfalfa is an implementation on the Intel iPSC hypercube multiprocessor, andBuckwheat is an implementation on the Encore Multimax shared-memory multiprocessor. Each implementation includes a compiler that performs automatic decomposition of ALFL programs and a run-time system that supports their execution. The compiler is responsible for detecting the inherent parallelism in a program, and decomposing the program into a collection of tasks, calledserial combinators, that can be executed in parallel.

The abstract machine model supported by Alfalfa and Buckwheat is calledheterogeneous graph reduction, which is a hybrid of graph reduction and conventional stack-oriented execution. This model supports parallelism, lazy evaluation, and highe order functions while at the same time making efficient use of the processors in the system. The Alfalfa and Buckwheat runtime systems support dynamic load balancing, interprocessor communication (if required), and storage management. A large number of experiments were performed on Alfalfa and Buckwheat for a variety of programs. The results of these experiments, as well as the conclusions drawn from them, are presented.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. J. Backus, Can programming be liberated from the von Neumann style? A functional style and its algebra of programs,CACM 21 (8):613–641 (August 1978).

    Google Scholar 

  2. D. A. Turner, The semantic elegance of applicative languages. InFunctional Programming Languages and Computer Architecture, p. 85–92,ACM (1981).

  3. S. L. Peyton Jones, Directions in functional programming research. InDistributed Computing Systems Programme, Chapter 14, p. 220–249, Peter Peregrinus Ltd., London (1984).

    Google Scholar 

  4. S. L. Peyton Jones,The Implementation of Functional Programming Languages. Prentice Hall (1987).

  5. Robin Milner, The Standard ML core language,Polymorphism, Vol. 2, No. 2 (October 1985).

  6. D. A. Turner, Miranda: a non-strict functional language with polymorphic types. InFunctional Programming Languages and Computer Architecture, p. 1–16, Springer-Verlag LNCS 201 (September 1985).

  7. J. McGrawet al., SISAL: Streams and Iteration in a Single Assignment Language, Language Reference Manual, Version 1.2. Technical Report M-146, LLNL (March 1985).

  8. J. Kowalik (ed.).Parallel MIMD Computation: The HEP Supercomputer and its Applications, MIT Press (1985).

  9. R. Oldehoeft and D. Cann, Applicative parallelism on a shared-memory multiprocessor.IEEE Software (January 1988).

  10. P. Hudak,ALFL Reference Manual and Programmer's Guide. Research Report YALEU/DCS/RR-322, Second Edition, Yale University (October 1984).

  11. C. P. Wadsworth,Semantics and Pragmatics of the Lambda Calculus. PhD thesis, Oxford University (1971).

  12. H. K. Curry and R. Feys,Combinatory Logic, North-Holland Pub. Co., Amsterdam (1958).

    Google Scholar 

  13. R. J. M. Hughes, Super-combinators: a new implementation method for applicative languages. InProc. 1982 ACM Conf. on LISP and Functional Prog., p. 1–10,ACM (August 1982).

  14. T. Johnsson, Lambda Lifting: Transforming programs to recursive equations. InFunctional Programming Languages and Computer Architecture, p. 190–203, Springer-Verlag LNCS 201 (September 1985).

  15. B. Goldberg, Detecting sharing of partial applications in functional programs. InProceedings of 1987 Functional Programming Languages and Computer Architecture Conference, p. 408–425, Springer-Verlag LNCS 274 (September 1987).

  16. R. M. Keller, G. Lindstrom, and S. Patil, A loosely-coupled applicative multi-processing system. InAFIPS, p. 613–622 (June 1979).

  17. R. M. Keller, G. Lindstrom, and S. Patil,An Architecture for a Loosely-Coupled Parallel Processor, Technical Report UUCS-78-105, University of Utah (October 1978).

  18. J. Darlington and M. Reeve, Alice: a multi-processor reduction machine for the parallel evaluation of applicative languages. InFunctional Programming Languages and Computer Architecture, ACM, p. 65–76 (October 1981).

  19. S. L. Peyton Jones, C. Clack, J. Salkild, and M. Hardie, GRIP—A high-performance architecture for parallel graph reduction. InProceedings of 1987 Functional Programming Languages and Computer Architecture Conference, p. 98–112, Springer-Verlag LNCS 274 (September 1987).

  20. T. Johnsson, Efficient complilation of lazy evaluation. InProceedings of the SIGPLAN'84 Symposium on Compiler Construction, p. 58–69 (June 1984).

  21. P. Hudak and L. Smith, Para-functional programming: A paradigm for programming multiprocessor systems. InProc. 12th Sym. on Prin. of Prog. Lang., p. 243–254,ACM (January 1986).

  22. P. Hudak, Para-functional programming,Computer 19(8):60–71 (August 1986).

    Google Scholar 

  23. R. J. M. Hughes,The Design and Implementation of Programming Languages. PhD thesis, Oxford University (July 1983).

  24. B. Goldberg,Multiprocessor Execution of Functional Programs. PhD thesis, Yale University, Department of Computer Science (May 1988).

  25. iPSC User's Guide—Preliminary. Intel Corporation (July 1985).

  26. Claus-Werner Lermen and Dieter Maurer, A protocol for distributed reference counting. InProc. 1986 ACM Conference on Lisp and Functional Programming, p. 343–350, ACM SIGPLAN/SIGACT/SIGART, Cambridge, Massachusetts (August 1986).

    Google Scholar 

  27. B. Goldberg, Generational Reference Counting: A reduced-communication storage reclamation scheme. InProceedings of the SIGPLAN'89 Conference on Programming Language Design and Implementation, ACM (June 1989).

  28. D. I. Bevan, Distributed garbage collection using reference counting. InPARLE Parallel Architectures and Languages Europe, p. 176–187, Springer-Verlag LNCS 259 (June 1987).

  29. Paul Watson and Ian Watson, An efficient garbage collection scheme for parallel computer architectures. InPARLE Parallel Architectures and Languages Europe, p. 432–443, Springer-Verlag LNCS 259 (June 1987).

  30. R. M. Keller, F. C. H. Lin, and J. Tanaka, Rediflow multiprocessing, InProc. Compcon Spring 84, p. 410–417 (February 1984).

  31. P. Hudak and B. Goldberg, Experiments in diffused combinator reduction. InProc. 1984 ACM Conf. on LISP and Functional Prog., p. 167–176,ACM (August 1984).

  32. B. Goldberg and P. Hudak, Implementing functional programs on a hypercube multiprocessor. InProceedings of Third Conference on Hypercube Concurrent Computers and Applications, ACM (January 1988).

  33. Multimax Technical Summary, Encore Computer Corporation, Marlborough, Massachusetts (1986).

  34. B. Goldberg, Buckwheat: Graph reduction on a shared memory multiprocessor. InProceedings of the 1988 ACM Conference on Lisp and Functional Programming, p. 40–51 (July 1988).

Download references

Author information

Authors and Affiliations

Authors

Additional information

This research was supported in part by National Science Foundation grants DCR-8302018 and DCR-8521451, by a DARPA subcontract with SDC/Unisys, and by gifts from Burroughs Austin Research Center and the Intel Corporation.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Goldberg, B. Multiprocessor execution of functional programs. Int J Parallel Prog 17, 425–473 (1988). https://doi.org/10.1007/BF01383883

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01383883

Key Words

Navigation