Affiliation:
1. Univ. of Tokyo, Tokyo, Japan
2. Tokyo Univ. of Agriculture and Technology, Tokyo, Japan
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.
Publisher
Association for Computing Machinery (ACM)
Reference18 articles.
1. Deriving associative operators for language recognition;BARNARD D.;Bull. EATCS,1991
2. The promotion and accumulation strategies in transformational programming
3. An introduction to the theory of lists. In Logic of Programming and Calculi of Discrete Design, M. BROY, Ed. Springer-Verlag;BIRD R.;Berlin,1987
Cited by
34 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Verified High Performance Computing: The SyDPaCC Approach;Lecture Notes in Computer Science;2023-12-19
2. Towards Verified Scalable Parallel Computing with Coq and Spark;Proceedings of the 25th ACM International Workshop on Formal Techniques for Java-like Programs;2023-07-18
3. Lambda calculus with algebraic simplification for reduction parallelisation: Extended study;Journal of Functional Programming;2021
4. Lambda calculus with algebraic simplification for reduction parallelization by equational reasoning;Proceedings of the ACM on Programming Languages;2019-07-26
5. Parallel programming with Coq;Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing;2019-04-08