Lambda calculus with algebraic simplification for reduction parallelization by equational reasoning
Lambda calculus with algebraic simplification for reduction parallelization by equational reasoning
复制标题
通过代数简化进行 Lambda 演算,通过方程推理进行简化并行化
DOI:
10.1145/3341644
复制
发表时间:
2019
影响因子:
--
通讯作者:
Morihata Akimasa
中科院分区:
文献类型:
--
作者:
直井由樹;山田浩史;Morihata Akimasa
Parallel reduction is a major component of parallel programming and widely used for summarization and aggregation. It is not well understood, however, what sorts of nontrivial summarizations can be implemented as parallel reductions. This paper develops a calculus named λas, a simply typed lambda calculus with algebraic simplification. This calculus provides a foundation for studying parallelization of complex reductions by equational reasoning. Its key feature is δ abstraction. A δ abstraction is observationally equivalent to the standard λ abstraction, but its body is simplified before the arrival of its arguments by using algebraic properties such as associativity and commutativity. In addition, the type system of λasguarantees that simplifications due to δ abstractions do not lead to serious overheads. The usefulness of λasis demonstrated on examples of developing complex parallel reductions, including those containing more than one reduction operator, loops with jumps, prefix-sum patterns, and even tree manipulations.