A general framework for static profiling of parametric resource usage
From MaRDI portal
Publication:4593063
DOI10.1017/S1471068416000442zbMATH Open1379.68097arXiv1608.02780OpenAlexW2962858168MaRDI QIDQ4593063FDOQ4593063
Authors: P. López-García, Maximiliano Klemen, Umer Liqat, Manuel Hermenegildo
Publication date: 9 November 2017
Published in: Theory and Practice of Logic Programming (Search for Journal in Brave)
Abstract: Traditional static resource analyses estimate the total resource usage of a program, without executing it. In this paper we present a novel resource analysis whose aim is instead the static profiling of accumulated cost, i.e., to discover, for selected parts of the program, an estimate or bound of the resource usage accumulated in each of those parts. Traditional resource analyses are parametric in the sense that the results can be functions on input data sizes. Our static profiling is also parametric, i.e., our accumulated cost estimates are also parameterized by input data sizes. Our proposal is based on the concept of cost centers and a program transformation that allows the static inference of functions that return bounds on these accumulated costs depending on input data sizes, for each cost center of interest. Such information is much more useful to the software developer than the traditional resource usage functions, as it allows identifying the parts of a program that should be optimized, because of their greater impact on the total cost of program executions. We also report on our implementation of the proposed technique using the CiaoPP program analysis framework, and provide some experimental results. This paper is under consideration for acceptance in TPLP.
Full work available at URL: https://arxiv.org/abs/1608.02780
Recommendations
- A transformational approach to parametric accumulated-cost static profiling
- A general framework for static cost analysis of parallel logic programs
- Resource analysis of complex programs with cost equations
- Static determination of quantitative resource usage for higher-order programs
- Automatic Static Cost Analysis for Parallel Programs
Cites Work
- SPEED: precise and efficient static estimation of program computational complexity
- An overview of Ciao and its design philosophy
- Closed-form upper bounds in static cost analysis
- Mechanical program analysis
- Implementation of Functional Languages
- Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor)
- Compile-time derivation of variable dependency using abstract interpretation
- A Flexible, (C)LP-Based Approach to the Analysis of Object-Oriented Programs
- More precise yet widely applicable cost analysis
- Optimized algorithms for incremental analysis of logic programs
- Resource usage analysis
- Title not available (Why is that?)
- Resource usage analysis of logic programs via abstract interpretation using sized types
- Cost recurrences for DML programs
- A transformational approach to parametric accumulated-cost static profiling
- Profiling large-scale lazy functional programs
Cited In (6)
- A framework for verification and debugging of resource usage properties: resource usage verification
- Analysis and Transformation of Constrained Horn Clauses for Program Verification
- Last mile's resources
- A transformational approach to parametric accumulated-cost static profiling
- A general framework for static cost analysis of parallel logic programs
- Title not available (Why is that?)
Uses Software
This page was built for publication: A general framework for static profiling of parametric resource usage
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4593063)