skip to main content
research-article
Free Access

Analysis of Recursively Parallel Programs

Published:01 November 2013Publication History
Skip Abstract Section

Abstract

We propose a general formal model of isolated hierarchical parallel computations, and identify several fragments to match the concurrency constructs present in real-world programming languages such as Cilk and X10. By associating fundamental formal models (vector addition systems with recursive transitions) to each fragment, we provide a common platform for exposing the relative difficulties of algorithmic reasoning. For each case we measure the complexity of deciding state reachability for finite-data recursive programs, and propose algorithms for the decidable cases. The complexities which include PTIME, NP, EXPSPACE, and 2EXPTIME contrast with undecidable state reachability for recursive multithreaded programs.

References

  1. Abdulla, P. A., Cerans, K., Jonsson, B., and Tsay, Y.-K. 1996. General decidability theorems for infinite-state systems. In Proceedings of the 11th IEEE Symposium on Logic in Computer Science (LICS’96). 313--321. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Agarwal, S., Barik, R., Sarkar, V., and Shyamasundar, R. K. 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 Press, New York, 183--193. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Allen, E., Chase, D., Luchangco, V., Maessen, J.-W., Ryu, S., Steele Jr., G. L., and Tobin-Hochstadt, S. 2006. The fortress language specification. Tech. rep., Sun Microsystems, Inc.Google ScholarGoogle Scholar
  4. Apt, K. R. and Kozen, D. 1986. Limits for automatic verification of finite-state concurrent systems. Inf. Process. Lett. 22, 6, 307--309. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Atig, M. F., Bouajjani, A., and Touili, T. 2008. Analyzing asynchronous programs with preemption. In Proceedings of the IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS’08). Leibniz International Proceedings in Informatics, vol. 2, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 37--48.Google ScholarGoogle Scholar
  6. Atig, M. F., Bouajjani, A., and Qadeer, S. 2011. Context-bounded analysis for concurrent programs with dynamic creation of threads. Logic. Methods Comput. Sci. 7, 4.Google ScholarGoogle Scholar
  7. Ball, T., Chaki, S., and Rajamani, S. K. 2001. Parameterized verification of multithreaded software libraries. In Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’01). Lecture Notes in Computer Science, vol. 2031, Springer, 158--173. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bouajjani, A. and Esparza, J. 2006. Rewriting models of Boolean programs. In Proceedings of the 17th International Conference on Term Rewriting and Applications (RTA’06). Lecture Notes in Computer Science, vol. 4098, Springer, 136--150. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Bouajjani, A., Müller-Olm, M., and Touili, T. 2005. Regular symbolic analysis of dynamic networks of pushdown systems. In Proceedings of the 16th International Conference on Concurrency Theory (CONCUR’05). Lecture Notes in Computer Science, vol. 3653, Springer, 473--487. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Burckhardt, S., Baldassin, A., and Leijen, D. 2010. Concurrent programming with revisions and isolation types. In Proceedings of the 25th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’10). ACM Press, New York, 691--707. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Chamberlain, B. L., Callahan, D., and Zima, H. P. 2007. Parallel programmability and the Chapel language. Int. J. High Perform. Comput. Appl. 21, 3, 291--312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Charles, P., Grothoff, C., Saraswat, V. A., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., and Sarkar, V. 2005. X10: An object-oriented approach to non-uniform cluster computing. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’05). ACM Press, New York, 519--538. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Chaudhuri, S. 2008. Subcubic algorithms for recursive state machines. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’08). ACM Press, 159--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Clarke, E. M. and Emerson, E. A. 1981. Design and synthesis of synchronization skeletons using branching-time temporal logic. In Logic of Programs, Lecture Notes in Computer Science, vol. 131, Springer, 52--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Clarke, E. M., Grumberg, O., and Peled, D. 2001. Model Checking. MIT Press.Google ScholarGoogle Scholar
  16. Cousot, P. and Cousot, R. 1976. Static determination of dynamic properties of programs. In Proceedings of the 2nd International Symposium on Programming. 106--130.Google ScholarGoogle Scholar
  17. Cousot, P. and Cousot, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL’77). ACM Press, New York, 238--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Delzanno, G., Raskin, J.-F., and Begin, L. V. 2002. Towards the automated verification of multithreaded Java programs. In Proceedings of tghe 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’02). Lecture Notes in Computer Science, vol. 2280, Springer, 173--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Demri, S., Jurdzinski, M., Lachish, O., and Lazic, R. 2009. The covering and boundedness problems for branching vector addition systems. In Proceedings of the IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS’09). Leibniz International Proceedings in Informatics Series, vol. 4, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 181--192.Google ScholarGoogle Scholar
  20. Elmas, T., Qadeer, S., and Tasiran, S. 2009. A calculus of atomic actions. In Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’09). ACM Press, New York, 2--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Emmi, M., Qadeer, S., and Rakamaric, Z. 2011. Delay-bounded scheduling. In Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’11). ACM Press, New York, 411--422. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Emmi, M., Lal, A., and Qadeer, S. 2012. Asynchronous programs with prioritized task-buffers. In Proceedings of the 20th International Symposium on the Foundations of Software Engineering (FSE’12). ACM Press, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Esparza, J. and Nielsen, M. 1994. Decidability issues for Petri nets - A survey. Bull. Euro. Assoc. Theor. Comput. Sci. 52, 244--262.Google ScholarGoogle Scholar
  24. Esparza, J. and Podelski, A. 2000. Efficient algorithms for pre* and post* on interprocedural parallel flow graphs. In Proceedings of thge 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’00). ACM Press, New York, 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Esparza, J. and Ganty, P. 2011. Complexity of pattern-based verification for multithreaded programs. In Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’11). ACM Press, New York, 499--510. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Esparza, J., Kucera, A., and Schwoon, S. 2003. Model checking LTL with regular valuations for pushdown systems. Inf. Comput. 186, 2, 355--376. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Fatahalian, K., Horn, D. R., Knight, T. J., Leem, L., Houston, M., Park, J. Y., Erez, M., Ren, M., Aiken, A., Dally, W. J., and Hanrahan, P. 2006. Sequoia: Programming the memory hierarchy. In Proceedings of the ACM/IEEE SC2006 Conference on High Performance Networking and Computing (SC’06). ACM Press, New York, 83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Finkel, A. and Schnoebelen, P. 2001. Well-structured transition systems everywhere! Theor. Comput. Sci. 256, 1--2, 63--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Flanagan, C. and Felleisen, M. 1999. The semantics of future and an application. J. Funct. Program. 9, 1, 1--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Flanagan, C. and Qadeer, S. 2003. Thread-modular model checking. In Proceedings of the 10th International Workshop on Model Checking Software (SPIN’03). Lecture Notes in Computer Science, vol. 2648, Springer, 213--224. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Ganty, P. and Majumdar, R. 2012. Algorithmic verification of asynchronous programs. ACM Trans. Program. Lang. Syst. 34, 1, 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Ganty, P., Majumdar, R., and Rybalchenko, A. 2009. Verifying liveness for asynchronous programs. In Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’09). ACM Press, New York, 102--113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Geeraerts, G., Heußner, A., and Raskin, J.-F. 2012. Queue-dispatch asynchronous systems. CoRR abs/1201.4871. http://www.swt-bamberg.de/aheussner/files/heussner-a-2013--a.pdf.Google ScholarGoogle Scholar
  34. Geeraerts, G., Raskin, J.-F., and Begin, L. V. 2006. Expand, enlarge and check: New algorithms for the coverability problem of WSTS. J. Comput. Syst. Sci. 72, 1, 180--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. German, S. M. and Sistla, A. P. 1992. Reasoning about systems with many processes. J. ACM 39, 3, 675--735. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Graf, S. and Saïdi, H. 1997. Construction of abstract state graphs with PVS. In Proceedings of the 9th International Conference on Computer Aided Verification (CAV’97). Lecture Notes in Computer Science Series, vol. 1254, Springer, 72--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Gray, J. 1985. Why do computers stop and what can be about it? http://www.hpl.hp.com/techreports/tandem/TR-85.7.pdf.Google ScholarGoogle Scholar
  38. Gupta, A., Popeea, C., and Rybalchenko, A. 2011. Predicate abstraction and refinement for verifying multi-threaded programs. In Proceedings 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’11). ACM Press, New York, 331--344. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Halstead Jr., R. H. 1985. Multilisp: A language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7, 4, 501--538. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Henzinger, T. A., Jhala, R., Majumdar, R., and Qadeer, S. 2003. Thread-modular abstraction refinement. In Proceedings of the 15th International Conference on Computer Aided Verification (CAV’03). Lecture Notes in Computer Science, vol. 2725, Springer, 262--274.Google ScholarGoogle ScholarCross RefCross Ref
  41. Jhala, R. and Majumdar, R. 2007. Interprocedural analysis of asynchronous programs. In Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’07). ACM Press, New York, 339--350. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Kahlon, V. 2009. Boundedness vs. unboundedness of lock chains: Characterizing decidability of pairwise CFL-reachability for threads communicating via locks. In Proceedings of the 24th Annual IEEE Symposium on Logic in Computer Science (LICS’09). 27--36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Karp, R. M. and Miller, R. E. 1969. Parallel program schemata. J. Comput. Syst. Sci. 3, 2, 147--195. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Knoop, J., Steffen, B., and Vollmer, J. 1996. Parallelism for free: Efficient and optimal bitvector analyses for parallel programs. ACM Trans. Program. Lang. Syst. 18, 3, 268--299. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Kosaraju, S. R. 1982. Decidability of reachability in vector addition systems (preliminary version). In Proceedings of the 14th Annual ACM Symposium on Theory of Computing (STOC’82). ACM Press, New York, 267--281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Kozen, D. 1977. Lower bounds for natural proof systems. In Proceedings of the 18th Annual Symposium on Foundations of Computer Science (FOCS’77). IEEE Computer Society, Lois Alamitos, CA, 254--266. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. La Torre, S., Madhusudan, P., and Parlato, G. 2009. Reducing context-bounded concurrent reachability to sequential reachability. In Proceedings of the 21st International Conference on Computer Aided Verification (CAV’09). Lecture Notes in Computer Science, vol. 5643, Springer, 477--492. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. La Torre, S., Madhusudan, P., and Parlato, G. 2010. Model-checking parameterized concurrent programs using linear interfaces. In Proceedings of the 22nd International Conference on Computer Aided Verification (CAV’10). Lecture Notes in Computer Science, vol. 6174, Springer, 629--644. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Lal, A. and Reps, T. W. 2009. Reducing concurrent analysis under a context bound to sequential analysis. Formal Methods Syst. Des. 35, 1, 73--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Larus, J. R. and Rajwar, R. 2006. Transactional Memory. Morgan & Claypool. http://www.morganclaypool.com/doi/abs/10.2200/S00070ED1V01Y200611CAC002.Google ScholarGoogle Scholar
  51. Lee, E. A. 2006. The problem with threads. IEEE Comput. 39, 5, 33--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Lee, J. K. and Palsberg, J. 2010. Featherweight X10: A core calculus for async-finish parallelism. In Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPOPP’10). ACM Press, New York, 25--36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Leijen, D., Schulte, W., and Burckhardt, S. 2009. The design of a task parallel library. In Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’09). ACM Press, New York, 227--242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Leroux, J. 2011. Vector addition system reachability problem: A short self-contained proof. In Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’11). ACM Press, New York, 307--316. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Lipton, R. J. 1976. The reachability problem requires exponential space. Tech. rep. 62, Yale University.Google ScholarGoogle Scholar
  56. Mayr, E. W. 1981. An algorithm for the general Petri net reachability problem. In Proceedings of the 13th Annual ACM Symposium on Theory of Computing (STOC’81). ACM Press, New York, 238--246. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Musuvathi, M. and Qadeer, S. 2007. Iterative context bounding for systematic testing of multithreaded programs. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’07). ACM Press, New York, 446--455. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Nielson, F., Nielson, H. R., and Hankin, C. 1999. Principles of program analysis. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Owicki, S. S. and Gries, D. 1976. Verifying properties of parallel programs: An axiomatic approach. Comm. ACM 19, 5, 279--285. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Papadimitriou, C. H. 1993. Computational Complexity. Addison Wesley.Google ScholarGoogle Scholar
  61. Parikh, R. 1966. On context-free languages. J. ACM 13, 4, 570--581. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Pratikakis, P., Vandierendonck, H., Lyberis, S., and Nikolopoulos, D. S. 2011. A programming model for deterministic task parallelism. In Proceedings of the 2011 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness (MSPC’11). ACM Press, New York, 7--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Qadeer, S. and Wu, D. 2004. KISS: Keep it simple and sequential. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’04). ACM Press, New York, 14--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Qadeer, S. and Rehof, J. 2005. Context-bounded model checking of concurrent software. In Proceedings of the 11th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’05). Lecture Notes in Computer Science, vol. 3440, Springer, 93--107. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Queille, J.-P. and Sifakis, J. 1982. Specification and verification of concurrent systems in cesar. In Proceedings of the 5th Colloquium of International Symposium on Programming. Lecture Notes in Computer Science, vol. 137, Springer, 337--351. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Rackoff, C. 1978. The covering and boundedness problems for vector addition systems. Theor. Comput. Sci. 6, 223--231.Google ScholarGoogle ScholarCross RefCross Ref
  67. Ramalingam, G. 2000. Context-sensitive synchronization-sensitive analysis is undecidable. ACM Trans. Program. Lang. Syst. 22, 2, 416--430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Randall, K. H. 1998. Cilk: Efficient multithreaded computing. Ph.D. thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Reps, T. W., Horwitz, S., and Sagiv, S. 1995. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the 22th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’95). ACM Press, New York, 49--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Savitch, W. J. 1970. Relationships between nondeterministic and deterministic tape complexities. J. Comput. Syst. Sci. 4, 2, 177--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Segulja, C. and Abdelrahman, T. S. 2011. Synchronization-free and deterministic coarse-grain parallelism: Architectural support and programming model. In Proceedings of the 1st International Workshop on Future Architectural Support for Parallel Programming.Google ScholarGoogle Scholar
  72. Seidl, H. and Steffen, B. 2000. Constraint-based inter-procedural analysis of parallel programs. In Proceedings of the 9th European Symposium on Programming (ESOP’00). Lecture Notes in Computer Science, vol. 1782, Springer, 351--365. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Seidl, H., Schwentick, T., Muscholl, A., and Habermehl, P. 2004. Counting in trees for free. In Proceedings of the 31st International Colloquium on Automata, Languages and Programming (ICALP’04). Lecture Notes in Computer Science, vol. 3142, Springer, 1136--1149.Google ScholarGoogle ScholarCross RefCross Ref
  74. Sen, K. and Viswanathan, M. 2006. Model checking multithreaded programs with asynchronous atomic methods. In Proceedings 18th International Conference on Computer Aided Verification (CAV’06). Lecture Notes in Computer Science, vol. 4144, Springer, 300--314. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Sharir, M. and Pnueli, A. 1981. Two approaches to interprocedural data-flow analysis. In Program Flow Analysis: Theory and Applications, S. S. Muchnick and N. D. Jones Eds., Prentice-Hall, Chapter 7, 189--234.Google ScholarGoogle Scholar
  76. Sipser, M. 1997. Introduction to the theory of computation. PWS Publishing Company. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Taylor, R. N. 1983. Complexity of analyzing the synchronization structure of concurrent programs. Acta Inf. 19, 57--84.Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Verma, K. N. and Goubault-Larrecq, J. 2005. Karp-Miller trees for a branching extension of VASS. Discr. Math. Theor. Comput. Sci. 7, 1, 217--230.Google ScholarGoogle Scholar
  79. Verma, K. N., Seidl, H., and Schwentick, T. 2005. On the complexity of equational horn clauses. In Proceedings of the 20th International Conference on Automated Deduction (CADE’05). Lecture Notes in Computer Science, vol. 3632, Springer, 337--352. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Analysis of Recursively Parallel Programs

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  • Published in

                    cover image ACM Transactions on Programming Languages and Systems
                    ACM Transactions on Programming Languages and Systems  Volume 35, Issue 3
                    November 2013
                    156 pages
                    ISSN:0164-0925
                    EISSN:1558-4593
                    DOI:10.1145/2542180
                    Issue’s Table of Contents

                    Copyright © 2013 ACM

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 1 November 2013
                    • Accepted: 1 May 2013
                    • Revised: 1 February 2013
                    • Received: 1 August 2012
                    Published in toplas Volume 35, Issue 3

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • research-article
                    • Research
                    • Refereed

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader
                  About Cookies On This Site

                  We use cookies to ensure that we give you the best experience on our website.

                  Learn more

                  Got it!