Issue No.10 - Oct. (1985 vol.34)
Paul Hudak , Department of Computer Science, Yale University, New Haven, CT 06520
Benjamin Goldberg , Department of Computer Science, Yale University, New Haven, CT 06520
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.
parallel computing, Combinators, distributed computing, functional programming, graph reduction, lambda calculus, load-balancing, multiprocessing
Paul Hudak, Benjamin Goldberg, "Distributed execution of functional programs using serial combinators", IEEE Transactions on Computers, vol.34, no. 10, pp. 881-891, Oct. 1985, doi:10.1109/TC.1985.6312191