Abstract
A general strategy for automatically decomposing and dynamically distributing a functional program is discussed, suitable for parallel execution on multiprocessor architectures with no shared memory. The strategy borrows ideas from data flow and reduction machine research on one hand, and from conventional compiler technology for sequential machines on the other. One of the more troublesome issues in such a system is choosing the right granularity for the parallel tasks. As a solution we describe a program transformation technique based on serial combinators that offers in some sense just the “right” granularity for this style of computing, and that can be “fine-tuned” for particular multiprocessor architectures. We show via simulation the success of our approach.
Original language | English (US) |
---|---|
Pages (from-to) | 881-891 |
Number of pages | 11 |
Journal | IEEE Transactions on Computers |
Volume | C-34 |
Issue number | 10 |
DOIs | |
State | Published - Oct 1985 |
Keywords
- Combinators
- distributed computing
- functional programming
- graph reduction
- lambda calculus
- load-balancing
- multiprocessing
- parallel computing
ASJC Scopus subject areas
- Software
- Theoretical Computer Science
- Hardware and Architecture
- Computational Theory and Mathematics