Differential Cost Analysis with Simultaneous Potentials and Anti-potentials (Artifact)
- 1. IST Austria
- 2. University of Colorado Boulder & Amazon
- 3. Amazon
- 4. Amazon & Middlesex University
Description
This repository contains the artifact for the paper
"Differential Cost Analysis with Simultaneous Potentials and Anti-potentials"
by Đorđe Žikelić, Bor-Yuh Evan Chang, Pauline Bolignano and Franco Raimondi.
It contains a prototype tool for differential cost analysis of numerical C programs with polynomial arithmetic and possibly with non-determinism. Given two programs together with their input sets, the tool computes an upper bound on the maximal difference in cost usage between the two programs on any initial variable valuation that is contained in both input sets. Cost may take both positive and negative values, and we assume that each program has a special variable "cost" that is initialized to 0 and that is updated whenever cost is incurred in the program. It could be used to track program runtime, memory usage, the number of object allocations, or any other program property of interest that could be tracked by a program variable.
The artifact is provided both as a docker image and as a zip of all source files. The reason for providing both is that, in our experimental evaluation, we use Gurobi for linear programming (LP) which is licensed and is free only for academic use. Thus, we cannot install Gurobi in our docker image but replace it with the GLPK solver. GLPK allows reproducing our experimental results with slightly longer runtimes (details are provided in README). To reproduce our reported experimental results with Gurobi, one needs to build the tool from source files and instructions for doing so are provided in README.