skip to main content
research-article

May-Happen-in-Parallel Analysis for Actor-Based Concurrency

Published: 22 December 2015 Publication History

Abstract

This article presents a may-happen-in-parallel (MHP) analysis for languages with actor-based concurrency. In this concurrency model, actors are the concurrency units such that, when a method is invoked on an actor a2 from a task executing on actor a1, statements of the current task in a1 may run in parallel with those of the (asynchronous) call on a2, and with those of transitively invoked methods. The goal of the MHP analysis is to identify pairs of statements in the program that may run in parallel in any execution. Our MHP analysis is formalized as a method-level (local) analysis whose information can be modularly composed to obtain application-level (global) information. The information yielded by the MHP analysis is essential to infer more complex properties of actor-based concurrent programs, for example, data race detection, deadlock freeness, termination, and resource consumption analyses can greatly benefit from the MHP relations to increase their accuracy. We report on MayPar, a prototypical implementation of an MHP static analyzer for a distributed asynchronous language.

Supplementary Material

a11-albert-apndx.pdf (albert.zip)
Supplemental movie, appendix, image and software files for, May-Happen-in-Parallel Analysis for Actor-Based Concurrency

References

[1]
Shivali Agarwal, Rajkishore Barik, Vivek Sarkar, and Rudrapatna K. Shyamasundar. 2007. May-happen-in-parallel Analysis of X10 Programs. In Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’07). ACM, New York, NY, 183--193.
[2]
G. Agha. 1986. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA.
[3]
A. V. Aho, R. Sethi, and J. D. Ullman. 1986. Compilers -- Principles, Techniques and Tools. Addison-Wesley, New York, NY.
[4]
Elvira Albert, Puri Arenas, Antonio Flores-Montoya, Samir Genaim, Miguel Gómez-Zamalloa, Enrique Martin-Martin, Germán Puebla, and Guillermo Román-Díez. 2014a. SACO: Static Analyzer for Concurrent Objects. In Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14), Lecture Notes in Computer Science, Erika Ábrahám and Klaus Havelund (Eds.), Vol. 8413. Springer, Berlin, 562--567.
[5]
Elvira Albert, Jesús Correas, and Guillermo Román-Díez. 2014b. Peak Cost Analysis of Distributed Systems. In Proceedings of the 21st International Symposium on Static Analysis (SAS’14), Lecture Notes in Computer Science, Markus Müller-Olm and Helmut Seidl (Eds.), Vol. 8723. Springer, Berlin, 18--33.
[6]
Elvira Albert, Antonio Flores-Montoya, and Samir Genaim. 2012. Analysis of May-Happen-in-Parallel in Concurrent Objects. In Proceedings of the - Joint 14th IFIP WG 6.1 International Conference on Formal Techniques for Distributed Systems (FMOODS’12) and 32nd IFIP WG 6.1 International Conference (FORTE’12), Lecture Notes in Computer Science, Holger Giese and Grigore Rosu (Eds.), Vol. 7273. Springer, Berlin, 35--51.
[7]
Elvira Albert, Antonio Flores-Montoya, Samir Genaim, and Enrique Martin-Martin. 2013. Termination and Cost Analysis of Loops with Concurrent Interleavings. In Proceedings of the 11th International Symposium on Automated Technology for Verification and Analysis (ATVA’13), Lecture Notes in Computer Science, Dang Van Hung and Mizuhito Ogawa (Eds.), Vol. 8172. Springer, Berlin, 349--364.
[8]
Elvira Albert, Samir Genaim, and Pablo Gordillo. 2015. May-Happen-in-Parallel Analysis for Asynchronous Programs with Inter-Procedural Synchronization. In Proceedings of the 22nd International Symposium on Static Analysis (SAS’15), Lecture Notes in Computer Science, Sandrine Blazy and Thomas Jensen (Eds.), Vol. 9291. Springer, 72--89.
[9]
Rajkishore Barik. 2005. Efficient computation of may-happen-in-parallel information for concurrent java programs. In Proceedings of the 18th International Workshop on Languages and Compilers for Parallel Computing, (LCPC’05). Revised Selected Papers, Lecture Notes in Computer Science, Eduard Ayguadé, Gerald Baumgartner, J. Ramanujam, and P. Sadayappan (Eds.), Vol. 4339. Springer, Berlin, 152--169.
[10]
Peter A. Buhr, Michel Fortier, and Michael H. Coffin. 1995. Monitor classification. ACM Computing Surveys 27, 1, 63--107.
[11]
Dave Clarke, Einar Johnsen, and Olaf Owe. 2010. Concurrent objects à la carte. In Concurrency, Compositionality, and Correctness, Dennis Dams, Ulrich Hannemann, and Martin Steffen (Eds.). Lecture Notes in Computer Science, Vol. 5930. Springer, Berlin, 185--206. http://dx.doi.org/10.1007/978-3-642-11512-7_12.
[12]
Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2007. Proving thread termination. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’07). ACM, New York, NY, 320--330.
[13]
P. Cousot and R. Cousot. 1979. A constructive characterization of the lattices of all retractions, pre-closure, quasi-closure and closure operators on a complete lattice. PortugaliæMathematica 38, 2, 185--198.
[14]
Frank S. de Boer, Dave Clarke, and Einar Broch Johnsen. 2007. A Complete Guide to the Future. In Proceedings of the Programming Languages and Systems 16th European Symposium on Programming, ESOP’07, Held as Part of the Joint European Conferences on Theory and Practics of Software, ETAPS’07, Braga, Portugal, March 24 - April 1, 2007, Lecture Notes in Computer Science, Rocco de Nicola (Ed.), Vol. 4421. Springer, Berlin, 316--330.
[15]
Evelyn Duesterwald and Mary Lou Soffa. 1991. Concurrency analysis in the presence of procedures using a data-flow framework. In Proceedings of the Symposium on Testing, Analysis, and Verification (TAV4). ACM, New York, NY, 36--48.
[16]
Michael Emmi, Akash Lal, and Shaz Qadeer. 2012. Asynchronous programs with prioritized task-buffers. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE’12). ACM, New York, NY, Article 48, 11 pages.
[17]
Antonio Flores-Montoya, Elvira Albert, and Samir Genaim. 2013. May-Happen-in-Parallel based Deadlock Analysis for Concurrent Objects. In Formal Techniques for Distributed Systems (FMOODS/FORTE’13), Lecture Notes in Computer Science, Dirk Beyer and Michele Boreale (Eds.), Vol. 7892. Springer, Berlin, 273--288. http://dx.doi.org/10.1007/978-3-642-38592-6_19
[18]
Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, and Peter J. Stuckey. 2013. Abstract interpretation over non-lattice abstract domains. In Proceedings of the 20th International Symposium on Static Analysis, SAS 2013, Francesco Logozzo and Manuel Fähndrich (Eds.), Vol. 7935. Springer, Berlin, 6--24.
[19]
Philipp Haller and Martin Odersky. 2009. Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science 410, 2--3 202--220.
[20]
Matthew S. Hecht and Jeffrey D. Ullman. 1973. Analysis of a simple algorithm for global data flow problems. In Proceedings of the 1st Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL’73). ACM, New York, NY, 207--217.
[21]
Einar Broch Johnsen, Reiner Hähnle, Jan Schäfer, Rudolf Schlatte, and Martin Steffen. 2012. ABS: A Core Language for Abstract Behavioral Specification. In Proceedings of the 9th International Symposium on Formal Methods for Components and Objects (FMCO’10). Revised Papers, Lecture Notes in Computer Science, Bernhard K. Aichernig, Frank S. de Boer, and Marcello M. Bonsangue (Eds.), Vol. 6957. Springer, Berlin, 142--164.
[22]
John B. Kam and Jeffrey D. Ullman. 1976. Global data flow analysis and iterative algorithms. Journal of the ACM 23, 1, 158--171.
[23]
Jonathan K. Lee, Jens Palsberg, Rupak Majumdar, and Hong Hong. 2012. Efficient may happen in parallel analysis for async-finish parallelism. In Static Analysis, Antoine Miné and David Schmidt (Eds.), Lecture Notes in Computer Science, Vol. 7460. Springer, Berlin, 5--23.
[24]
Jonathan K. Lee and Jens Palsberg. 2010. Featherweight X10: A Core Calculus for Async-Finish Parallelism. In Principles and Practice of Parallel Programming (PPoPP’10). ACM, New York, NY, 25--36.
[25]
Lin Li and Clark Verbrugge. 2004. A practical MHP information analysis for concurrent Java programs. In Languages and Compilers for High Performance Computing, 17th International Workshop, LCPC’04, West Lafayette, IN, USA, September 22--24, 2004, Revised Selected Papers, Lecture Notes in Computer Science, Rudolf Eigenmann, Zhiyuan Li, and Samuel P. Midkiff (Eds.), Vol. 3602. Springer, Berlin, 194--208.
[26]
Stephen P. Masticola. 1993. Static Detection of Deadlocks In Polynomial Time. Ph.D. Dissertation. Rutgers University, New Brunswick, NJ, USA. http://dl.acm.org/citation.cfm?id=194282&CFID==568373654&CFTOKEN==93584834.
[27]
Stephen P. Masticola and Barbara G. Ryder. 1993. Non-concurrency Analysis. In Proceedings of the 4th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPOPP’93). ACM, New York, NY, 129--138.
[28]
Ana Milanova, Atanas Rountev, and Barbara G. Ryder. 2002. Parameterized object sensitivity for points-to and side-effect analyses for Java. In Proceedings of the 2002 ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA’02). ACM, New York, NY, 1--11.
[29]
Mayur Naik, Chang-Seo Park, Koushik Sen, and David Gay. 2009. Effective static deadlock detection. In Proceedings of the 31st International Conference on Software Engineering (ICSE’09). IEEE Computer Society, Washington, DC, 386--396.
[30]
Gleb Naumovich and George S. Avrunin. 1998. A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel. SIGSOFT Software Engineering Notes 23, 6, 24--34. 288213.
[31]
Gleb Naumovich, George S. Avrunin, and Lori A. Clarke. 1999. An efficient algorithm for computing MHP information for concurrent Java programs. SIGSOFT Software Engineering Notes 24, 6, 338--354. 319252.
[32]
F. Nielson, H. R. Nielson, and C. Hankin. 2005. Principles of Program Analysis (2nd ed.). Springer.
[33]
Benjamin C. Pierce. 1994. Concurrent Objects in a Process Calculus. In Proceedings of the Theory and Practice of Parallel Programming, International Workshop TPPP’94, Sendai, Japan, November 7--9, 1994, Lecture Notes in Computer Science, Vol. 907. Springer, Berlin, 187--215.
[34]
Corneliu Popeea and Andrey Rybalchenko. 2012. Compositional termination proofs for multi-threaded programs. In Proceedings of the 18th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’12). Springer, Berlin, 237--251.
[35]
G. Ramalingam. 2000. Context-sensitive synchronization-sensitive analysis is undecidable. ACM Transactions on Programming Languages and Systems 22, 2, 416--430.
[36]
Richard N. Taylor. 1983. Complexity of analyzing the synchronization structure of concurrent programs. Acta Informatica 19, 1, 57--84.
[37]
John Whaley and Monica S. Lam. 2004. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation (PLDI’04). ACM, New York, NY, 131--144.

Cited By

View all
  • (2022)A structure-aware algorithm for fault-tolerant scheduling of scientific workflowsThe Journal of Supercomputing10.1007/s11227-022-04529-w78:15(17348-17377)Online publication date: 1-Oct-2022
  • (2022)I Can See Clearly Now: Clairvoyant Assertions for Deadlock CheckingThe Logic of Software. A Tasting Menu of Formal Methods10.1007/978-3-031-08166-8_1(1-18)Online publication date: 4-Jul-2022
  • (2021)A Robust Distributed Clustering of Large Data Sets on a Grid of Commodity MachinesData10.3390/data60700736:7(73)Online publication date: 7-Jul-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Computational Logic
ACM Transactions on Computational Logic  Volume 17, Issue 2
March 2016
266 pages
ISSN:1529-3785
EISSN:1557-945X
DOI:10.1145/2851089
  • Editor:
  • Orna Kupferman
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 December 2015
Accepted: 01 September 2015
Revised: 01 July 2015
Received: 01 September 2014
Published in TOCL Volume 17, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Actors
  2. analysis
  3. concurrency
  4. may-happen-in-parallel

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • Spanish MINECO
  • CM project
  • EU project FP7-ICT-610582 ENVISAGE: Engineering Virtualized Services (http://www.envisage-project.eu)

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)2
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)A structure-aware algorithm for fault-tolerant scheduling of scientific workflowsThe Journal of Supercomputing10.1007/s11227-022-04529-w78:15(17348-17377)Online publication date: 1-Oct-2022
  • (2022)I Can See Clearly Now: Clairvoyant Assertions for Deadlock CheckingThe Logic of Software. A Tasting Menu of Formal Methods10.1007/978-3-031-08166-8_1(1-18)Online publication date: 4-Jul-2022
  • (2021)A Robust Distributed Clustering of Large Data Sets on a Grid of Commodity MachinesData10.3390/data60700736:7(73)Online publication date: 7-Jul-2021
  • (2020)Behavioral Contracts for Cooperative SchedulingDeductive Software Verification: Future Perspectives10.1007/978-3-030-64354-6_4(85-121)Online publication date: 4-Dec-2020
  • (2019)Asynchronous Cooperative Contracts for Cooperative SchedulingSoftware Engineering and Formal Methods10.1007/978-3-030-30446-1_3(48-66)Online publication date: 18-Sep-2019
  • (2018)Parallel Cost AnalysisACM Transactions on Computational Logic10.1145/327427819:4(1-37)Online publication date: 20-Nov-2018
  • (2018)Work Analysis with Resource-Aware Session TypesProceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer Science10.1145/3209108.3209146(305-314)Online publication date: 9-Jul-2018
  • (2018)Automatic Inference of Task Parallelism in Task-Graph-Based Actor ModelsIEEE Access10.1109/ACCESS.2018.28857056(78965-78991)Online publication date: 2018
  • (2018)Peak Resource Analysis of Concurrent Distributed SystemsJournal of Systems and Software10.1016/j.jss.2018.11.018Online publication date: Nov-2018
  • (2018)Stateful Behavioral Types for Active ObjectsIntegrated Formal Methods10.1007/978-3-319-98938-9_13(214-235)Online publication date: 9-Aug-2018
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media