Author:
GESER ALFONS,GORLATCH SERGEI
Abstract
List homomorphisms are functions that are parallelizable using the divide-and-conquer
paradigm. We study the problem of finding homomorphic representations of functions in
the Bird–Meertens constructive theory of lists, by means of term rewriting and theorem
proving techniques. A previous work proved that to each pair
of leftward and rightward
sequential representations of a function, based on cons- and snoc-lists, respectively, there
is also a representation as a homomorphism. Our contribution is a mechanizable method
to extract the homomorphism representation from a pair of sequential representations. The
method is decomposed to a generalization problem and an inductive claim, both solvable by
term rewriting techniques. To solve the former we present a sound generalization procedure
which yields the required representation, and terminates under reasonable assumptions. The
inductive claim is provable automatically. We illustrate the method and the procedure by the
systematic parallelization of the scan-function (parallel prefix) and of the maximum
segment sum problem.
Publisher
Cambridge University Press (CUP)
Cited by
19 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Phased synthesis of divide and conquer programs;Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2021-06-18
2. Reverse engineering for reduction parallelization via semiring polynomials;Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2021-06-18
3. Modular divide-and-conquer parallelization of nested loops;Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation;2019-06-08
4. Incremental computing with data structures;Science of Computer Programming;2018-10
5. Finding parallel functional pearls: Automatic parallel recursion scheme detection in Haskell functions via anti-unification;Future Generation Computer Systems;2018-02