Integer Program Solving Call Tree Reversal

Call tree reversal is NP-complete and the established heuristics cannot be tuned. I formulated it as an integer program, which makes the memory-runtime trade-off a parameter and extends cleanly to result checkpointing.

Integer Program Solving Call Tree Reversal
Years2015 — 2016VenueRWTH Aachen — STCEKindB.Sc. thesisGrade1.3 (German scale, 1.0 best)PaperDownload PDF →

Abstract

The call tree reversal is an algorithmic solution to reverse the data flow of program execution with limited available memory using argument checkpointing. Call tree reversal is proven to be NP-complete and, hence, finding a good solution in a reasonable time is unlikely. Established heuristics exist for this problem, but they lack the potential for customization. In addition, they do not consider the possibility of result checkpointing which is an extension to the standard call tree reversal problem. This thesis introduces an IP formulation solving call tree reversal to challenge those issues. Furthermore, this formulation is extended to support result checkpointing and serves as a foundation for further analysis comparing solutions for call tree reversal with and without result checkpointing.