Repeated Recursion Unfolding for Super-Linear Speedup within Bounds

by   Thom Fruehwirth, et al.

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.



There are no comments yet.


page 1

page 2

page 3

page 4


Optimizing Recursive Queries with Program Synthesis

Most work on query optimization has concentrated on loop-free queries. H...

Empirical Bounds on Linear Regions of Deep Rectifier Networks

One form of characterizing the expressiveness of a piecewise linear neur...

Tight Bounds for Repeated Balls-into-Bins

We study the repeated balls-into-bins process introduced by Becchetti, C...

Super-Reparametrizations of Weighted CSPs: Properties and Optimization Perspective

The notion of reparametrizations of Weighted CSPs (WCSPs) (also known as...

Block Rigidity: Strong Multiplayer Parallel Repetition implies Super-Linear Lower Bounds for Turing Machines

We prove that a sufficiently strong parallel repetition theorem for a sp...

Trace Reconstruction: Generalized and Parameterized

In the beautifully simple-to-state problem of trace reconstruction, the ...

Bouncing Towers move faster than Hanoi Towers, but still require exponential time

The problem of the Hanoi Tower is a classic exercise in recursive progra...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.