Results 1 -
5 of
5
Simulating Concurrent Behaviors with Worst-Case Cost Bounds
"... Modern software systems are increasingly being developed for deployment on a range of architectures. For this purpose, it is interesting to capture aspects of low-level deployment concerns in high-level modeling languages. In this paper, an executable object-oriented modeling language is extended ..."
Abstract
-
Cited by 8 (7 self)
- Add to MetaCart
(Show Context)
Modern software systems are increasingly being developed for deployment on a range of architectures. For this purpose, it is interesting to capture aspects of low-level deployment concerns in high-level modeling languages. In this paper, an executable object-oriented modeling language is extended with resource-restricted deployment components. To analyze model behavior a formal methodology is proposed to assess resource consumption, which balances the scalability of the method and the reliability of the obtained results. The approach applies to a general notion of resource, including traditional cost measures (e.g., time, memory) as well as concurrency-related measures (e.g., requests to a server, spawned tasks). The main idea of our approach is to combine reliable (but expensive) worst-case cost analysis of statically predictable parts of the model with fast (but inherently incomplete) simulations of the concurrent aspects in order to avoid the state-space explosion. The approach is illustrated by the analysis of memory consumption.
A On the Inference of Resource Usage Upper and Lower Bounds
"... Cost analysis aims at determining the amount of resources required to run a program in terms of its input data sizes. The most challenging step is to infer the cost of executing the loops in the program. This requires bounding the number of iterations of each loop and finding tight bounds for the co ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
Cost analysis aims at determining the amount of resources required to run a program in terms of its input data sizes. The most challenging step is to infer the cost of executing the loops in the program. This requires bounding the number of iterations of each loop and finding tight bounds for the cost of each of its iterations. This article presents a novel approach to infer upper and lower bounds from cost relations. These relations are an extended form of standard recurrence equations which can be non-deterministic, contain inexact size constraints and have multiple arguments that increase and/or decrease. We propose novel techniques to automatically transform cost relations into worst-case and best-case deterministic oneargument recurrence relations. The solution of each recursive relation provides a precise upper-bound and lower-bound forexecuting a corresponding loop in the program. Importantly, since the approach isdeveloped at the level of the cost equations, our techniques are programming language independent.
Incremental Resource Usage Analysis
"... The aim of incremental global analysis is, given a program, its anal-ysis results and a series of changes to the program, to obtain the new analysis results as efficiently as possible and, ideally, without having to (re-)analyze fragments of code which are not affected by the changes. Incremental an ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
(Show Context)
The aim of incremental global analysis is, given a program, its anal-ysis results and a series of changes to the program, to obtain the new analysis results as efficiently as possible and, ideally, without having to (re-)analyze fragments of code which are not affected by the changes. Incremental analysis can significantly reduce both the time and the memory requirements of analysis. This paper presents an incremental resource usage analysis for a sequential Java-like language. Our main contributions are (1) a multi-domain incre-mental fixed-point algorithm which can be used by all global pre-analyses required to infer the cost (including class, sharing, cyclic-ity, constancy, and size analyses), and which takes care of propagat-ing dependencies among such domains, and (2) a novel form of cost summaries which allows us to incrementally reconstruct only those components of cost functions affected by the change. Experimen-tal results in the COSTA system show that the proposed incremental analysis performs very efficiently in practice.
Automatic Inference of Bounds on Resource Consumption
"... Abstract. In this tutorial paper, we overview the techniques that un-derlie the automatic inference of resource consumption bounds. We first explain the basic techniques on a Java-like sequential language. Then, we describe the extensions that are required to apply our method on concurrent ABS progr ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract. In this tutorial paper, we overview the techniques that un-derlie the automatic inference of resource consumption bounds. We first explain the basic techniques on a Java-like sequential language. Then, we describe the extensions that are required to apply our method on concurrent ABS programs. Finally, we discuss some advanced issues in resource analysis, including the inference of non-cumulative resources and the treatment of shared mutable data. 1
Resource Analysis in the COSTA System
"... Having information about the execution cost of programs, i.e., the amount of resources that the execution will require, is useful for many different purposes, including program optimization, verification and certification. Reasoning about execution cost is difficult and error-prone. Therefore, it is ..."
Abstract
- Add to MetaCart
(Show Context)
Having information about the execution cost of programs, i.e., the amount of resources that the execution will require, is useful for many different purposes, including program optimization, verification and certification. Reasoning about execution cost is difficult and error-prone. Therefore, it is widely recognized that cost analysis, sometimes also referred to as resource analysis or automatic complexity analysis, is quite important. COSTA3 is a state-of-the-art cost and termination analyzer which automates this task. The system is able to infer upper and lower bounds on the resource consumption of a large class of programs. Given a program P, the analysis results allow bounding the cost of executing P on any input data x without having to actually run P (x). The first successful proposal for automatically computing the complexity of programs was the seminal work of Wegbreit [33]. Since then, a number of cost analysis frameworks have been proposed, mostly in the context of declar-