当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Repeated Recursion Unfolding for Super-Linear Speedup within Bounds
arXiv - CS - Programming Languages Pub Date : 2020-09-11 , DOI: arxiv-2009.05314
Thom Fruehwirth

Repeated recursion unfolding is a new approach that repeatedly unfolds a recursion with itself and simplifies it while keeping all unfolded rules. Each unfolding doubles the number of recursive steps covered. This reduces the number of recursive rule applications to its logarithm at the expense of introducing a logarithmic number of unfolded rules to the program. Efficiency crucially depends on the amount of simplification inside the unfolded rules. We prove a super-linear speedup theorem in the best case, i.e. speedup by more than a constant factor. Our optimization can lower the time complexity class of a program. In this paper, the super-linear speedup is within bounds: it holds up to an arbitrary but chosen upper bound on the number of recursive steps. We also report on the first results with a prototype implementation of repeated recursion unfolding. A simple program transformation completely removes recursion up to the chosen bound. The actual runtime improvement quickly reaches several orders of magnitude.

中文翻译:

重复递归展开以在边界内实现超线性加速

重复递归展开是一种新的方法,它重复展开与自身的递归并在保持所有展开规则的情况下简化它。每次展开都会使覆盖的递归步骤数加倍。这以将展开规则的对数数量引入程序为代价,将递归规则应用的数量减少到其对数。效率关键取决于展开规则内的简化程度。我们在最好的情况下证明了一个超线性加速定理,即加速超过一个常数因子。我们的优化可以降低程序的时间复杂度。在本文中,超线性加速在界限内:它保持任意但选择的递归步数上限。我们还报告了重复递归展开的原型实现的第一个结果。一个简单的程序转换完全消除了直到所选边界的递归。实际的运行时间改进很快达到了几个数量级。
更新日期:2020-09-14
down
wechat
bug