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 multi-threaded programs.
Supplemental Material
- P. A. Abdulla, K. Cerans, B. Jonsson, and Y.-K. Tsay. General decidability theorems for infinite-state systems. In LICS '96: Proc. 11th IEEE Symposium on Logic in Computer Science, pages 313--321. IEEE Computer Society, 1996. Google Scholar
Digital Library
- E. Allen, D. Chase, V. Luchangco, J.-W. Maessen, S. Ryu, G. L. S. Jr., and S. Tobin-Hochstadt. The Fortress language specification. Technical report, Sun Microsystems, Inc., 2006.Google Scholar
- A. Bouajjani and M. Emmi. Analysis of recursively parallel programs. 2011. http://hal.archives-ouvertes.fr/hal-00639351/en.Google Scholar
- A. Bouajjani and J. Esparza. Rewriting models of boolean programs. In RTA '06: Proc. 17th International Conference on Term Rewriting and Applications, volume 4098 of LNCS, pages 136--150. Springer, 2006. Google Scholar
Digital Library
- A. Bouajjani, M. Müller-Olm, and T. Touili. Regular symbolic analysis of dynamic networks of pushdown systems. In CONCUR '05: Proc. 16th International Conference on Concurrency Theory, volume 3653 of LNCS, pages 473--487. Springer, 2005. Google Scholar
Digital Library
- S. Burckhardt, A. Baldassin, and D. Leijen. Concurrent programming with revisions and isolation types. In OOPSLA '10: Proc. 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 691--707. ACM, 2010. Google Scholar
Digital Library
- P. Charles, C. Grothoff, V. A. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In OOPSLA '05: Proc. 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 519--538. ACM, 2005. Google Scholar
Digital Library
- S. Demri, M. Jurdzinski, O. Lachish, and R. Lazic. The covering and boundedness problems for branching vector addition systems. In FSTTCS '09: IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, pages 181--192, 2009.Google Scholar
- J. Esparza and P. Ganty. Complexity of pattern-based verification for multithreaded programs. In POPL '11: Proc. 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 499--510. ACM, 2011. Google Scholar
Digital Library
- J. Esparza and A. Podelski. Efficient algorithms for pre* and post* on interprocedural parallel flow graphs. In POPL '00: Proc. 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1--11. ACM, 2000. Google Scholar
Digital Library
- A. Finkel and P. Schnoebelen. Well-structured transition systems everywhere! Theor. Comput. Sci., 256 (1--2): 63--92, 2001. Google Scholar
Digital Library
- C. Flanagan and M. Felleisen. The semantics of future and an application. J. Funct. Program., 9 (1): 1--31, 1999. Google Scholar
Digital Library
- C. Flanagan and S. Qadeer. Thread-modular model checking. In SPIN '03: Proc. 10th International Workshop on Model Checking Software, volume 2648 of LNCS, pages 213--224. Springer, 2003. Google Scholar
Digital Library
- P. Ganty and R. Majumdar. Algorithmic verification of asynchronous programs. CoRR, abs/1011.0551, 2010. http://arxiv.org/abs/1011.0551.Google Scholar
- G. Geeraerts, J.-F. Raskin, and L. V. Begin. Expand, enlarge and check: New algorithms for the coverability problem of wsts. J. Comput. Syst. Sci., 72 (1): 180--203, 2006. Google Scholar
Digital Library
- S. Graf and H. Saıdi. Construction of abstract state graphs with PVS. In CAV '97: Proc. 9th International Conference on Computer Aided Verification, volume 1254 of LNCS, pages 72--83. Springer, 1997. Google Scholar
Digital Library
- R. H. Halstead Jr. Multilisp: A language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst., 7 (4): 501--538, 1985. Google Scholar
Digital Library
- T. A. Henzinger, R. Jhala, R. Majumdar, and S. Qadeer. Thread-modular abstraction refinement. In CAV '03: Proc. 15th International Conference on Computer Aided Verification, volume 2725 of LNCS, pages 262--274. Springer, 2003.Google Scholar
Cross Ref
- R. Jhala and R. Majumdar. Interprocedural analysis of asynchronous programs. In POPL '07: Proc. 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 339--350. ACM, 2007. Google Scholar
Digital Library
- V. Kahlon. Boundedness vs. unboundedness of lock chains: Characterizing decidability of pairwise CFL-reachability for threads communicating via locks. In LICS '09: Proc. 24th Annual IEEE Symposium on Logic in Computer Science, pages 27--36. IEEE Computer Society, 2009. Google Scholar
Digital Library
- D. Kozen. Lower bounds for natural proof systems. In FOCS '77: Proc. 18th Annual Symposium on Foundations of Computer Science, pages 254--266. IEEE Computer Society, 1977. Google Scholar
Digital Library
- A. Lal and T. W. Reps. Reducing concurrent analysis under a context bound to sequential analysis. Formal Methods in System Design, 35 (1): 73--97, 2009. Google Scholar
Digital Library
- J. R. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool, 2006. http://www.morganclaypool.com/doi/abs/10.2200/S00070ED1V01Y200611CAC002.Google Scholar
Cross Ref
- E. A. Lee. The problem with threads. IEEE Computer, 39 (5): 33--42, 2006. Google Scholar
Digital Library
- D. Leijen, W. Schulte, and S. Burckhardt. The design of a task parallel library. In OOPSLA '09: Proc. 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 227--242. ACM, 2009. Google Scholar
Digital Library
- R. J. Lipton. The reachability problem requires exponential space. Technical Report 62, Yale University, 1976.Google Scholar
- P. Pratikakis, H. Vandierendonck, S. Lyberis, and D. S. Nikolopoulos. A programming model for deterministic task parallelism. In MSPC '11: Proc. 2011 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness, pages 7--12. ACM, 2011. Google Scholar
Digital Library
- C. Rackoff. The covering and boundedness problems for vector addition systems. Theor. Comput. Sci., 6: 223--231, 1978.Google Scholar
Cross Ref
- G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. ACM Trans. Program. Lang. Syst., 22 (2): 416--430, 2000. Google Scholar
Digital Library
- K. H. Randall. Cilk: Efficient Multithreaded Computing. PhD thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, May 1998. Google Scholar
Digital Library
- T. W. Reps, S. Horwitz, and S. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In POPL '95: Proc. 22th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 49--61. ACM, 1995. Google Scholar
Digital Library
- C. Segulja and T. S. Abdelrahman. Synchronization-free and deterministic coarse-grain parallelism: Architectural support and programming model. In FASPP '11: Proc. First International Workshop on Future Architectural Support for Parallel Programming, 2011.Google Scholar
- K. Sen and M. Viswanathan. Model checking multithreaded programs with asynchronous atomic methods. In CAV '06: Proc. 18th International Conference on Computer Aided Verification, volume 4144 of LNCS, pages 300--314. Springer, 2006. Google Scholar
Digital Library
Index Terms
Analysis of recursively parallel programs
Recommendations
Analysis of Recursively Parallel Programs
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 ...
Analysis of recursively parallel programs
POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe 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 ...
Parallel concurrent ML
ICFP '09: Proceedings of the 14th ACM SIGPLAN international conference on Functional programmingConcurrent ML (CML) is a high-level message-passing language that supports the construction of first-class synchronous abstractions called events. This mechanism has proven quite effective over the years and has been incorporated in a number of other ...







Comments