Static analysis of cloud elasticity

We propose a static analysis technique that computes upper bounds of virtual machine usages in a concurrent language with explicit acquire and release operations of virtual machines. In our language it is possible to delegate other (ad-hoc or third party) concurrent code to release virtual machines (by passing them as arguments of invocations). Our technique is modular and consists of (i) a type system associating programs with behavioural types that record relevant information for resource usage (creations, releases, and concurrent operations), (ii) a translation function that takes behavioural types and returns cost equations, and (iii) an automatic off-the-shelf solver for the cost equations. A soundness proof of the type system establishes the correctness of our technique with respect to the cost equations. We have experimentally evaluated our technique using a cost analysis solver and we report some results.

[1]  Martin Hofmann,et al.  Multivariate amortized resource analysis , 2011, POPL '11.

[2]  Elvira Albert,et al.  Non-cumulative Resource Analysis , 2015, TACAS.

[3]  Cosimo Laneve,et al.  Static analysis of cloud elasticity , 2015, PPDP.

[4]  Martin Hofmann,et al.  Static prediction of heap space usage for first-order functional programs , 2003, POPL '03.

[5]  Elvira Albert,et al.  Cost Analysis of Concurrent OO Programs , 2011, APLAS.

[6]  Sumit Gulwani,et al.  SPEED: precise and efficient static estimation of program computational complexity , 2009, POPL '09.

[7]  Samir Genaim,et al.  On the Limits of the Classical Approach to Cost Analysis , 2012, SAS.

[8]  Martin Hofmann,et al.  Efficient Type-Checking for Amortised Heap-Space Analysis , 2009, CSL.

[9]  Cosimo Laneve,et al.  Statically and Dynamically Verifiable SLA Metrics , 2016, Theory and Practice of Formal Methods.

[10]  Zhong Shao,et al.  Compositional certified resource bounds , 2015, PLDI.

[11]  Elvira Albert,et al.  Object‐sensitive cost analysis for concurrent objects , 2015, Softw. Test. Verification Reliab..

[12]  Reiner Hähnle,et al.  Resource Analysis of Complex Programs with Cost Equations , 2014, APLAS.

[13]  R. Tarjan Amortized Computational Complexity , 1985 .

[14]  Cosimo Laneve,et al.  A framework for deadlock detection in core ABS , 2015, Software & Systems Modeling.

[15]  Ben Wegbreit,et al.  Mechanical program analysis , 1975, CACM.

[16]  Elvira Albert,et al.  Parametric inference of memory requirements for garbage collected languages , 2010, ISMM '10.

[17]  Rajkishore Barik,et al.  Efficient Computation of May-Happen-in-Parallel Information for Concurrent Java Programs , 2005, LCPC.

[18]  Jürgen Giesl,et al.  Alternating Runtime and Size Complexity Analysis of Integer Programs , 2014, TACAS.

[19]  Leonard Berman,et al.  The Complexity of Logical Theories , 1980, Theor. Comput. Sci..

[20]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[21]  Zhong Shao,et al.  Automatic Static Cost Analysis for Parallel Programs , 2015, ESOP.

[22]  Shengchao Qin,et al.  Memory Usage Verification for OO Programs , 2005, SAS.

[23]  Martin Hofmann,et al.  Type-Based Amortised Heap-Space Analysis , 2006, ESOP.

[24]  Elvira Albert,et al.  Automatic Inference of Upper Bounds for Recurrence Relations in Cost Analysis , 2008, SAS.

[25]  Elvira Albert,et al.  Peak Cost Analysis of Distributed Systems , 2014, SAS.

[26]  Elvira Albert,et al.  Cost analysis of object-oriented bytecode programs , 2012, Theor. Comput. Sci..