Formal Derivation of Efficient Parallel Programs by Construction of List Homomorphisms.
ZJ Hu,H Iwasaki,M Takechi
DOI: https://doi.org/10.1145/256167.256201
IF: 1.714
1997-01-01
ACM Transactions on Programming Languages and Systems
Abstract:It has been attracting much attention to make use of list homomorphisms in parallel programming because they ideally suit the divide-and-conquer parallel paradigm, However, they have been usually treated rather informally and ad hoc in the development of efficient parallel programs. What is worse is that some interesting functions, e.g., the maximum segment sum problem, are basically not list homomorphisms. In this article, we propose a systematic and formal way for the construction of a list homomorphism for a given problem so that an efficient parallel program is derived. We show, with several well-known but nontrivial problems, how a straightforward, and ''obviously'' correct, but quite inefficient solution to the problem can be successfully turned into a semantically equivalent ''almost list homomorphism.'' The derivation is based on two transformations, namely tupling and fusion, which are defined according to the specific recursive structures of list homomorphisms.