Multiprocessor execution of functional programs
Thesis/Dissertation
·
OSTI ID:6506703
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. ALFL 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.
- Research Organization:
- Yale Univ., New Haven, CT (USA)
- OSTI ID:
- 6506703
- Country of Publication:
- United States
- Language:
- English
Similar Records
Multiprocessor execution of functional programs
ParLance: a para-functional programming environment for parallel and distributed computing. Research report
Demand-driven interpretation of FP programs on a data-flow multiprocessor
Journal Article
·
Sat Oct 01 00:00:00 EDT 1988
· International Journal of Parallel Programming; (USA)
·
OSTI ID:6193122
ParLance: a para-functional programming environment for parallel and distributed computing. Research report
Technical Report
·
Sat Feb 28 23:00:00 EST 1987
·
OSTI ID:6056053
Demand-driven interpretation of FP programs on a data-flow multiprocessor
Journal Article
·
Mon Aug 01 00:00:00 EDT 1988
· IEEE Trans. Comput.; (United States)
·
OSTI ID:6902290
Related Subjects
99 GENERAL AND MISCELLANEOUS
990200* -- Mathematics & Computers
990300 -- Information Handling
ALGORITHMS
ARRAY PROCESSORS
COMPUTER ARCHITECTURE
COMPUTERS
DATA PROCESSING
HYPERCUBE COMPUTERS
INFORMATION SYSTEMS
MATHEMATICAL LOGIC
OPTIMIZATION
PARALLEL PROCESSING
PROCESSING
PROGRAMMING
PROGRAMMING LANGUAGES
TASK SCHEDULING
990200* -- Mathematics & Computers
990300 -- Information Handling
ALGORITHMS
ARRAY PROCESSORS
COMPUTER ARCHITECTURE
COMPUTERS
DATA PROCESSING
HYPERCUBE COMPUTERS
INFORMATION SYSTEMS
MATHEMATICAL LOGIC
OPTIMIZATION
PARALLEL PROCESSING
PROCESSING
PROGRAMMING
PROGRAMMING LANGUAGES
TASK SCHEDULING