Object‐sensitive cost analysis for concurrent objects

This article presents a novel cost analysis framework for concurrent objects. Concurrent objects form a well‐established model for distributed concurrent systems. In this model, objects are the concurrency units that communicate among them via asynchronous method calls. Cost analysis aims at automatically approximating the resource consumption of executing a program in terms of its input parameters. While cost analysis for sequential programming languages has received considerable attention, concurrency and distribution have been notably less studied. The main challenges of cost analysis in a concurrent setting are as follows. First, inferring precise size abstractions for data in the program in the presence of shared memory. This information is essential for bounding the number of iterations of loops. Second, distribution suggests that analysis must infer the cost of the diverse distributed components separately. We handle this by means of a novel form of object‐sensitive recurrence equations that use cost centres in order to keep the resource usage assigned to the different components separate. We have implemented our analysis and evaluated it on several small applications that are classical examples of concurrent and distributed programming. Copyright © 2015 John Wiley & Sons, Ltd.

[1]  Manuel Fähndrich,et al.  Static Verification for Code Contracts , 2010, SAS.

[2]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

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

[4]  Vasco T. Vasconcelos,et al.  A process-calculus approach to typed concurrent objects , 1995 .

[5]  Étienne Payet,et al.  A termination analyzer for Java bytecode based on path-length , 2010, TOPL.

[6]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[7]  Raimund Kirner,et al.  Measurement-Based Timing Analysis , 2008, ISoLA.

[8]  José C. Cunha,et al.  Grid Computing: Software Environments and Tools , 2005 .

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

[10]  Frank S. de Boer,et al.  A Complete Guide to the Future , 2007, ESOP.

[11]  Barbara G. Ryder,et al.  Parameterized object sensitivity for points-to analysis for Java , 2005, TSEM.

[12]  Lars Ole Andersen,et al.  Program Analysis and Specialization for the C Programming Language , 2005 .

[13]  Maurice Herlihy,et al.  An Overview of Synchronous Message-Passing and Topology , 2000, GETCO.

[14]  Andreas Podelski,et al.  Proving thread termination , 2007, PLDI '07.

[15]  Francesca Levi,et al.  A New Occurrence Counting Analysis for BioAmbients , 2005, APLAS.

[16]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[17]  Martin Hofmann,et al.  Amortized Resource Analysis with Polynomial Potential , 2010, ESOP.

[18]  Darko Marinov,et al.  Evaluating Ordering Heuristics for Dynamic Partial-Order Reduction Techniques , 2010, FASE.

[19]  Arnd Poetzsch-Heffter,et al.  JCoBox: Generalizing Active Objects to Concurrent Components , 2010, ECOOP.

[20]  Heiko Koziolek,et al.  CoCoME - The Common Component Modeling Example , 2007, CoCoME.

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

[22]  Jérôme Feret,et al.  Occurrence Counting Analysis for the pi-Calculus , 2000, GETCO.

[23]  Stephen A. Jarvis,et al.  Profiling Large-Scale Lazy Functional Programs , 1996, J. Funct. Program..

[24]  Elvira Albert,et al.  Task-level analysis for a language with async/finish parallelism , 2011, LCTES '11.

[25]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[26]  Elvira Albert,et al.  From Object Fields to Local Variables: A Practical Approach to Field-Sensitive Analysis , 2010, SAS.

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

[28]  Sanjit A. Seshia,et al.  Quantitative Analysis of Systems Using Game-Theoretic Learning , 2012, TECS.

[29]  Einar Broch Johnsen,et al.  An Asynchronous Communication Model for Distributed Concurrent Objects , 2004, Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004..

[30]  Cosimo Laneve,et al.  Analysis of Deadlocks in Object Groups , 2011, FMOODS/FORTE.

[31]  Annalisa Bossi,et al.  Proving Termination of Logic Programs by Exploiting Term Properties , 1991, TAPSOFT, Vol.2.

[32]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

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

[34]  Karl Crary,et al.  Resource bound certification , 2000, POPL '00.

[35]  Gian Luigi Ferrari,et al.  Dynamic Matrices and the Cost Analysis of Concurrent Programs , 1995, AMAST.

[36]  Elvira Albert,et al.  Termination and Cost Analysis of Loops with Concurrent Interleavings , 2013, ATVA.

[37]  Elvira Albert,et al.  Closed-Form Upper Bounds in Static Cost Analysis , 2011, Journal of Automated Reasoning.

[38]  Pawel Pietrzak,et al.  Live Heap Space Bounds for Real-Time Systems , 2010, APLAS.

[39]  Alan Mycroft,et al.  Kilim: Isolation-Typed Actors for Java , 2008, ECOOP.

[40]  Einar Broch Johnsen,et al.  Simulating Concurrent Behaviors with Worst-Case Cost Bounds , 2011, FM.

[41]  Ondrej Lhoták,et al.  Pick your contexts well: understanding object-sensitivity , 2011, POPL '11.

[42]  Elvira Albert,et al.  SACO: Static Analyzer for Concurrent Objects , 2014, TACAS.

[43]  Benjamin C. Pierce,et al.  Concurrent Objects in a Process Calculus , 1994, Theory and Practice of Parallel Programming.

[44]  Elvira Albert,et al.  Removing useless variables in cost analysis of Java bytecode , 2008, SAC '08.

[45]  J. Ludden,et al.  Principles and Practice , 1998, Community-based Learning and Social Movements.

[46]  Elvira Albert,et al.  aPET: a test case generation tool for concurrent objects , 2013, ESEC/FSE 2013.

[47]  Elvira Albert,et al.  May-Happen-in-Parallel Based Deadlock Analysis for Concurrent Objects , 2013, FMOODS/FORTE.