Interval-based Resource Usage Verification by Translation into Horn Clauses and an Application to Energy Consumption

03/12/2018
by   Pedro Lopez-Garcia, et al.
0

Many applications require conformance with specifications that constrain the use of resources, such as execution time, energy, bandwidth, etc. We have presented a configurable framework for static resource usage verification where specifications can include lower and upper bound, data size-dependent resource usage functions. To statically check such specifications, our framework infers the same type of resource usage functions, which safely approximate the actual resource usage of the program, and compares them against the specification. We review how this framework supports several languages and compilation output formats by translating them to an intermediate representation based on Horn clauses and using the configurability of the framework to describe the resource semantics of the input language. We provide a more detailed formalization and extend the framework so that both resource usage specification and analysis/verification output can include preconditions expressing intervals for the input data sizes for which assertions are applicable, proved, or disproved. Most importantly, we also extend the classes of functions that can be checked. We provide results from an implementation within the Ciao/CiaoPP framework, and report on a tool built by instantiating this framework for the verification of energy consumption specifications for imperative/embedded programs. This paper is under consideration for publication in Theory and Practice of Logic Programming (TPLP).

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/31/2019

Towards a General Framework for Static Cost Analysis of Parallel Logic Programs

The estimation and control of resource usage is now an important challen...
research
05/24/2023

EnergyAnalyzer: Using Static WCET Analysis Techniques to Estimate the Energy Consumption of Embedded Applications

This paper presents EnergyAnalyzer, a code-level static analysis tool fo...
research
05/02/2018

Decoupling GPU Programming Models from Resource Management for Enhanced Programming Ease, Portability, and Performance

The application resource specification--a static specification of severa...
research
06/21/2023

Automatic Inference of Resource Leak Specifications

A resource leak occurs when a program fails to free some finite resource...
research
02/07/2018

Zorua: Enhancing Programming Ease, Portability, and Performance in GPUs by Decoupling Programming Models from Resource Management

The application resource specification--a static specification of severa...
research
08/14/2019

Type-Based Resource Analysis on Haskell

We propose an amortized analysis that approximates the resource usage of...
research
05/11/2021

Mandating Code Disclosure is Unnecessary – Strict Model Verification Does Not Require Accessing Original Computer Code

Mandating public availability of computer code underlying computational ...

Please sign up or login with your details

Forgot password? Click here to reset