International On Static Analysis

SAS 2015: Static Analysis pp 275-292 | Cite as

Parallel Cost Analysis of Distributed Systems

  • Elvira Albert
  • Jesús Correas
  • Einar Broch Johnsen
  • Guillermo Román-Díez
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9291)

Abstract

We present a novel static analysis to infer the parallel cost of distributed systems. Parallel cost differs from the standard notion of serial cost by exploiting the truly concurrent execution model of distributed processing to capture the cost of synchronized tasks executing in parallel.It is challenging to analyze parallel cost because one needs to soundly infer the parallelism between tasks while accounting for waiting and idle processor times at the different locations. Our analysis works in three phases: (1) It first performs a block-level analysis to estimate the serial costs of the blocks between synchronization points in the program; (2) Next, it constructs a distributed flow graph (DFG) to capture the parallelism, the waiting and idle times at the locations of the distributed system; Finally, (3) the parallel cost can be obtained as the path of maximal cost in the DFG. A prototype implementation demonstrates the accuracy and feasibility of the proposed analysis.

References

  1. 1.
  2. 2.
    Albert, E., Arenas, P., Correas, J., Genaim, S., Gómez-Zamalloa, M., Puebla, G., Román-Díez, G.: Object-Sensitive Cost Analysis for Concurrent Objects. Softw. Test. Verification Reliab. 25(3), 218–271 (2015)CrossRefGoogle Scholar
  3. 3.
    Albert, E., Correas, J., Román-Díez, G.: Peak cost analysis of distributed systems. In: Müller-Olm, M., Seidl, H. (eds.) Static Analysis. LNCS, vol. 8723, pp. 18–33. Springer, Heidelberg (2014) Google Scholar
  4. 4.
    Albert, E., Fernández, J.C., Román-Díez, G.: Non-cumulative resource analysis. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 85–100. Springer, Heidelberg (2015) Google Scholar
  5. 5.
    Albert, E., Flores-Montoya, A.E., Genaim, S.: Analysis of may-happen-in-parallel in concurrent objects. In: Giese, H., Rosu, G. (eds.) FORTE 2012 and FMOODS 2012. LNCS, vol. 7273, pp. 35–51. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  6. 6.
    Brandauer, S., Castegren, E., Clarke, D., Fernandez-Reyes, K., Johnsen, E.B., Pun, K.I., Tarifa, S.L.T., Wrigstad, T., Yang, A.M.: Parallel objects for multicores: a glimpse at the parallel language encore. Formal Methods for Multicore Programming. LNCS, vol. 9104, pp. 1–56. Springer, Heidelberg (2015) Google Scholar
  7. 7.
    Farzan, A., Kincaid, Z., Podelski, A.: Inductive data flow graphs. In: POPL, pp. 129–142. ACM (2013)Google Scholar
  8. 8.
    Gulwani, S., Mehra, K.K., Chilimbi, T.M.: Speed: precise and efficient static estimation of program computational complexity. In: Proceedings of POPL 2009, pp. 127–139. ACM (2009)Google Scholar
  9. 9.
    Hoffmann, J., Aehlig, K., Hofmann, M.: Multivariate amortized resource analysis. In: Proceedings of POPL 2011, pp. 357–370. ACM (2011)Google Scholar
  10. 10.
    Hoffmann, J., Shao, Z.: Automatic static cost analysis for parallel programs. In: Vitek, J. (ed.) ESOP 2015. LNCS, vol. 9032, pp. 132–157. Springer, Heidelberg (2015) CrossRefGoogle Scholar
  11. 11.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) Formal Methods for Components and Objects. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  12. 12.
    Lee, J.K., Palsberg, J., Majumdar, R.: Complexity results for may-happen-in-parallel analysis. Manuscript (2010)Google Scholar
  13. 13.
    Milanova, A., Rountev, A., Ryder, B.G.: Parameterized object sensitivity for points-to analysis for java. ACM Trans. Softw. Eng. Methodol. 14, 1–41 (2005)CrossRefGoogle Scholar
  14. 14.
    Shapiro, M., Horwitz, S.: Fast and accurate flow-insensitive points-to analysis. In: POPL 1997: 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 1–14. ACM, Paris, France, January 1997Google Scholar
  15. 15.
    Smaragdakis, Y., Bravenboer, M., Lhoták, O.: Pick your contexts well: understanding object-sensitivity. In: Proceedings of POPL 2011, pp. 17–30. ACM (2011)Google Scholar
  16. 16.
    Sridharan, M., Bodík, R.: Refinement-based context-sensitive points-to analysis for Java. In: PLDI, pp. 387–400 (2006)Google Scholar
  17. 17.
    Sutter, H., Larus, J.R.: Software and the concurrency revolution. ACM Queue 3(7), 54–62 (2005)CrossRefGoogle Scholar
  18. 18.
    Tarjan, R.E.: Fast algorithms for solving path problems. J. ACM 28(3), 594–614 (1981)MATHMathSciNetCrossRefGoogle Scholar
  19. 19.
    Wegbreit, B.: Mechanical program analysis. Commun. ACM 18(9), 528–539 (1975)MathSciNetCrossRefGoogle Scholar
  20. 20.
    Yi, J., Sadowski, C., Freund, S.N., Flanagan, C.: Cooperative concurrency for a multicore world. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 342–344. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  21. 21.
    Zuleger, F., Gulwani, S., Sinn, M., Veith, H.: Bound analysis of imperative programs with the size-change abstraction. In: Yahav, E. (ed.) Static Analysis. LNCS, vol. 6887, pp. 280–297. Springer, Heidelberg (2011) CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Elvira Albert
    • 1
  • Jesús Correas
    • 1
  • Einar Broch Johnsen
    • 2
  • Guillermo Román-Díez
    • 3
  1. 1.DSICComplutense University of MadridMadridSpain
  2. 2.Department of InformaticsUniversity of OsloOsloNorway
  3. 3.DLSIISTechnical University of MadridMadridSpain

Personalised recommendations