skip to main content
Multiprocessor execution of functional programs
Publisher:
  • Yale University
  • Computer Science Dept. 51 Prospect St. New Haven, CT
  • United States
Order Number:AAI8917180
Pages:
247
Bibliometrics
Skip Abstract Section
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 dissertation demonstrates that multiprocessor execution of functional programs 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, and Buckwheat is an implementation on the Encore Multimax shared-memory multiprocessor. Each implementation includes a compiler that performs automatic decomposition of ALFL programs. The compiler is responsible for detecting the inherent parallelism in a program, and decomposing the program into a collection of tasks, called serial combinators, that can be executed in parallel. One of the primary goals of the compiler is to generate serial combinators exhibiting the coarsest granularity possibly without sacrificing useful parallelism. This dissertation describes the algorithms used by the compiler to analyze, decompose, and optimize functional programs.

The abstract machine model supported by Alfalfa and Buckwheat is called heterogeneous graph reduction, which is a hybrid of graph reduction and conventional stack-oriented execution. This model supports parallelism, lazy evaluation, and higher order functions while at the same time making efficient use of the processors in the system. The Alfalfa and Buckwheat run-time 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.

Cited By

  1. ACM
    Ghosh B, Muthukrishnan S and Schultz M First and second order diffusive methods for rapid, coarse, distributed load balancing (extended abstract) Proceedings of the eighth annual ACM symposium on Parallel Algorithms and Architectures, (72-81)
  2. ACM
    Schauser K, Culler D and Goldstein S Separation constraint partitioning Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (259-271)
  3. ACM
    Kaser O, Pawagi S, Ramakrishnan C, Ramakrishnan I and Sekar R Fast parallel implementation of lazy languages—the EQUALS experience Proceedings of the 1992 ACM conference on LISP and functional programming, (335-344)
  4. ACM
    Kaser O, Pawagi S, Ramakrishnan C, Ramakrishnan I and Sekar R (2019). Fast parallel implementation of lazy languages—the EQUALS experience, ACM SIGPLAN Lisp Pointers, V:1, (335-344), Online publication date: 1-Jan-1992.
  5. ACM
    Sarkar V and Cann D (2019). POSC—a partitioning and optimizing SISAL compiler, ACM SIGARCH Computer Architecture News, 18:3b, (148-164), Online publication date: 1-Sep-1990.
  6. ACM
    Sarkar V and Cann D POSC—a partitioning and optimizing SISAL compiler Proceedings of the 4th international conference on Supercomputing, (148-164)
  7. ACM
    Giorgi J and Le Métayer D Continuation-based parallel implementation of functional programming languages Proceedings of the 1990 ACM conference on LISP and functional programming, (209-217)
  8. ACM
    Augustsson L and Johnsson T Parallel graph reduction with the (v , G)-machine Proceedings of the fourth international conference on Functional programming languages and computer architecture, (202-213)
  9. ACM
    George L An abstract machine for parallel graph reduction Proceedings of the fourth international conference on Functional programming languages and computer architecture, (214-229)
  10. ACM
    Goldberg B and Hudak P Implementing functional programs on a hypercube multiprocessor Proceedings of the third conference on Hypercube concurrent computers and applications: Architecture, software, computer systems, and general issues - Volume 1, (489-504)
  11. ACM
    Goldberg B Buckwheat: graph reduction on a shared-memory multiprocessor Proceedings of the 1988 ACM conference on LISP and functional programming, (40-51)
Contributors
  • Courant Institute of Mathematical Sciences

Recommendations