Formal Aspects of Computing

, Volume 27, Issue 4, pp 665–699 | Cite as

Quantified abstract configurations of distributed systems

  • Elvira AlbertEmail author
  • Jesús Correas
  • Germán Puebla
  • Guillermo Román-Díez
Original Article


When reasoning about distributed systems, it is essential to have information about the different kinds of nodes that compose the system, how many instances of each kind exist, and how nodes communicate with other nodes. In this paper we present a static-analysis-based approach which is able to provide information about the questions above. In order to cope with an unbounded number of nodes and an unbounded number of calls among them, the analysis performs an abstraction of the system producing a graph whose nodes may represent (infinitely) many concrete nodes and arcs represent any number of (infinitely) many calls among nodes. The crux of our approach is that the abstraction is enriched with upper bounds inferred by resource analysis that limit the number of concrete instances that the nodes and arcs represent and their resource consumption. The information available in our quantified abstract configurations allows us to define performance indicators which measure the quality of the system. In particular, we present several indicators that assess the level of distribution in the system, the amount of communication among distributed nodes that it requires, and how balanced the load of the distributed nodes that compose the system is. Our performance indicators are given as functions on the input data sizes, and they can be used to automate the comparison of different distributed settings and guide towards finding the optimal configuration.


Static analysis Cost analysis Distributed systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. AAG07.
    Albert E, Arenas P, Genaim S, Puebla G, Zanardini D (2007) Cost analysis of Java bytecode. In: De Nicola R (ed) Proceedings of the 16th European symposium on programming (ESOP’07). Lecture notes in computer science, vol 4421. Springer, New York, pp 157–172Google Scholar
  2. AAG10.
    Albert E, Arenas P, Genaim S, Herraiz I, Puebla G (2010) Comparing cost functions in resource analysis. In: 1st International workshop on foundational and practical aspects of resource analysis (FOPARA’09). Lecture notes in computer science, vol 6234. Springer, New York, pp 1–17Google Scholar
  3. AAG11a.
    Albert E, Arenas P, Genaim S, Gómez-Zamalloa M, Puebla G (2011) Cost analysis of concurrent oo programs. In: Proceedings of APLAS’11. LNCS, vol 7078. Springer, New York, pp 238–254Google Scholar
  4. AAG12a.
    Albert E, Arenas P, Genaim S, Gómez-Zamalloa M, Puebla G (2012) COSTABS: a cost and termination analyzer for ABS. In: Proceedings of PEPM’12. ACM Press, New York, pp 151–154Google Scholar
  5. AAG12b.
    Albert E, Arenas P, Genaim S, Puebla G, Zanardini D (2012) Cost analysis of object-oriented bytecode programs. Theor Comput Sci (Spec Issue Quant Asp Program Lang) 413(1): 142–159MathSciNetGoogle Scholar
  6. AAG08.
    Albert E, Arenas P, Genaim S, Puebla G (2008) Automatic inference of upper bounds for recurrence relations in cost analysis. In: Proceedings of SAS’08. Lecture notes in computer science, vol 5079. Springer, New York, pp 221–237Google Scholar
  7. AAG11b.
    Albert E, Arenas P, Genaim S, Puebla G (2011) Closed-form upper bounds in static cost analysis. J Autom Reason 46(2): 161–203MathSciNetCrossRefGoogle Scholar
  8. ACP13.
    Albert E, Correas J, Puebla G, Román-Díez G (2013) Quantified abstractions of distributed systems. In: Proceedings of iFM’13. LNCS, vol 7940. Springer, New York, pp 285–300Google Scholar
  9. AFG13.
    Albert E, Flores-Montoya A, Genaim S, Martin-Martin E (2013) Termination and cost analysis of loops with concurrent interleavings. In: ATVA’13, LNCS, vol 8172. Springer, New York, pp 349–364Google Scholar
  10. Ame89.
    America P (1989) Issues in the design of a parallel object-oriented language. Form Asp Comput 1: 366–411CrossRefzbMATHGoogle Scholar
  11. APC12.
    Albert E, Arenas P, Correas J, Gómez-Zamalloa M, Genaim S, Puebla G, Román-Díez G (2012) Object-sensitive cost analysis for concurrent objects. Accessed 15 May 2014
  12. ASY09.
    Al-Saleh MF, Yousif AE (2009) Properties of the standard deviation that are rarely mentioned in classrooms. Austrian J Stat 38(3): 193–202Google Scholar
  13. AVW96.
    Armstrong J, Virding R, Wistrom C, Williams M (1996) Concurrent programming in Erlang. Prentice Hall, USAGoogle Scholar
  14. BCG07.
    Bruynooghe M, Codish M, Gallagher J, Genaim S, Vanhoof W (2007) Termination analysis of logic programs through combination of type-based norms. TOPLAS 29(2): 10CrossRefGoogle Scholar
  15. BBS13.
    Bjørk J, de Boer FS, Broch Johnsen E, Schlatte R, Tapia Tarifa SL (2013) User-defined schedulers for real-time concurrent objects. ISSE 9(1): 29–43Google Scholar
  16. BYV09.
    Buyya R, Yeo CS, Venugopal S, Broberg J, Brandic I (2009) Cloud computing and emerging IT platforms: vision, hype, and reality for delivering computing as the 5th utility. Future Gener Comput Syst 25(6): 599–616CrossRefGoogle Scholar
  17. Car93.
    Caromel D (1993) Towards a method of object-oriented concurrent programming. Commun ACM 36(9): 90–102CrossRefGoogle Scholar
  18. BGS12.
    de Boer FS, Grabe I, Steffen M (2012) Termination detection for active objects. J Log Algebr Program 81(4): 541–557MathSciNetCrossRefGoogle Scholar
  19. PHW05.
    Di Pierro A, Hankin C, Wiklicky H (2005) Quantitative static analysis of distributed systems. J Funct Program 1: 37–81MathSciNetGoogle Scholar
  20. Fer01.
    Feret J (2001) Occurrence counting analysis for the pi-calculus. Electron Notes Theor Comput Sci 39(2): 1–18CrossRefGoogle Scholar
  21. FMA13.
    Flores-Montoya A, Albert E, Genaim S (2013) May-happen-in-parallel based deadlock analysis for concurrent objects. In: FORTE’13. LNCS. Springer, New York, pp 273–288Google Scholar
  22. GL05.
    Gori R, Levi F (2005) A new occurrence counting analysis for bioambients. In: APLAS. LNCS, vol 3780. Springer, New York, pp 381–400Google Scholar
  23. HO09.
    Haller P, Odersky M (2009) Scala actors: unifying thread-based and event-based programming. Theor Comput Sci 410(2–3): 202–220MathSciNetCrossRefGoogle Scholar
  24. JHS12.
    Johnsen EB, Hähnle R, Schäfer J, Schlatte R, Steffen M (2012) ABS: a core language for abstract behavioral specification. In: Proceedings of FMCO’10 (revised papers). LNCS, vol 6957. Springer, New York, pp 142–164Google Scholar
  25. MRR05.
    Milanova A, Rountev A, Ryder BG (2005) Parameterized object sensitivity for points-to analysis for Java. ACM Trans Softw Eng Methodol 14: 1–41CrossRefGoogle Scholar
  26. SBL11.
    Smaragdakis Y, Bravenboer M, Lhoták O (2011) Pick your contexts well: understanding object-sensitivity. In: Proceedings of POPL’11. ACM, New York, pp 17–30Google Scholar
  27. SPH10.
    Schäfer J, Poetzsch-Heffter A (2010) JCobox: generalizing active objects to concurrent components. In: Proceedings of ECOOP’10. LNCS. Springer, New York, pp 275–299Google Scholar
  28. YBS86.
    Yonezawa A, Briot JP, Shibayama E (1986) Object-oriented concurrent programming ABCL/1. In: Proceedings of OOPLSA’86. ACM, New York, pp 258–268Google Scholar

Copyright information

© British Computer Society 2014

Authors and Affiliations

  • Elvira Albert
    • 1
    Email author
  • Jesús Correas
    • 1
  • Germán Puebla
    • 2
  • Guillermo Román-Díez
    • 2
  1. 1.Departamento Sistemas Informáticos y Computación (DSIC), Facultad de InformáticaUniversidad Complutense de MadridMadridSpain
  2. 2.Boadilla del MonteEspaña

Personalised recommendations