Multiprocessor execution of functional programs
- New York Univ., NY (USA)
Functional languages have recently gained attention as vehicles for programming in a concise and element 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, and Buckwheat 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, called serial combinators, that can be executed in parallel. 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 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.
- OSTI ID:
- 6193122
- Journal Information:
- International Journal of Parallel Programming; (USA), Vol. 17:5; ISSN 0885-7458
- Country of Publication:
- United States
- Language:
- English
Similar Records
ParLance: a para-functional programming environment for parallel and distributed computing. Research report
The Chare-Kernel base languages
Related Subjects
ARRAY PROCESSORS
PARALLEL PROCESSING
ALGORITHMS
COMPUTER ARCHITECTURE
COMPUTER CODES
COMPUTERIZED SIMULATION
DATA TRANSMISSION
EFFICIENCY
GRAPHS
IMPLEMENTATION
PERFORMANCE
PERFORMANCE TESTING
PROGRAMMING LANGUAGES
SYNCHRONIZATION
TASK SCHEDULING
COMMUNICATIONS
DATA PROCESSING
MATHEMATICAL LOGIC
PROCESSING
PROGRAMMING
SIMULATION
TESTING
990200* - Mathematics & Computers