skip to main content
10.1145/1229428.1229471acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
Article

May-happen-in-parallel analysis of X10 programs

Published:14 March 2007Publication History

ABSTRACT

X10 is a modern object-oriented programming language designed for high performance, high productivity programming of parallel and multi-core computer systems. Compared to the lower-level thread-based concurrency model in the JavaTM language, X10 has higher-level concurrency constructs such as async, atomic and finish built into the language to simplify creation, analysis and optimization of parallel programs. In this paper, we introduce a new algorithm for May-Happen-in-Parallel (MHP) analysis of X10 programs. The analysis algorithm is based on simple path traversals in the Program Structure Tree, and does not rely on pointer alias analysis of thread objects as in MHP analysis for Java programs. We introduce a more precise definition of the MHP relation than in past work by adding condition vectors that identify execution instances for which the MHP relation holds, instead of just returning a single true/false value for all pairs of executing instances. Further, MHP analysis is refined in our approach by using the observation that two statement instances which occur in atomic sections that execute at the same X10 place must have MHP = false. We expect that our MHP analysis algorithm will be applicable to any language that adopts the core concepts of places, async, finish, and atomic sections from the X10 programming model. We also believe that this approach offers the best of two worlds to programmers and parallel programming tools ---higher-level abstractions of concurrency coupled with simple and efficient analysis algorithms.

References

  1. B. Alpern, M. N. Wegman, and F. K. Zadeck. Detecting equality of variables in programs. In POPL '88: Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 1--11, New York, NY, USA, 1988. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Rajkishore Barik. Efficient computation of may-happen-in-parallel information for concurrent java programs. In 18th International Workshop on Languages and Compilers for Parallel Computing, October 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. David Callahan and Jaspal Sublok. Static analysis of low-level synchronization. In PADD '88: Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging, pages 100--111, New York, NY, USA, 1988. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Philippe Charles, Christopher Donawa, Kemal Ebcioglu, Christian Grothoff, Allan Kielstra, Christoph von Praun, Vijay Saraswat, and Vivek Sarkar. X10: An object-oriented approach to non-uniform cluster computing. In OOPSLA 2005 Onward! Track, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Jong-Deok Choi, Keunwoo Lee, Alexey Loginov, Robert O'Callahan, Vivek Sarkar, and Manu Sridharan. Efficient and precise datarace detection for multithreaded object-oriented programs. In PLDI '02: Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, pages 258--269, New York, NY, USA, 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Evelyn Duesterwald and Mary Lou Soffa. Concurrency analysis in the presence of procedures using a data-flow framework. In TAV4: Proceedings of the symposium on Testing, analysis, and verification, pages 36--48, New York, NY, USA, 1991. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Ferrante, K. Ottenstein, and J. Warren. The Program Dependence Graph and its Use in Optimization. ACM Transactions on Programming Languages and Systems, 9(3):319--349, July 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Dov Harel. A Linear Time Algorithm for Finding Dominators in Flow Graphs and Related Problems. Symposium on Theory of Computing, May 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ferrante J, Grunwald D, and Srinivasan H. Compile-time analysis and optimization of explicitly parallel programs. In Journal of Parallel algorithms and applications, 1997.Google ScholarGoogle Scholar
  10. Jens Krinke. Static slicing of threaded programs. In Workshop on Program Analysis For Software Tools and Engineering, pages 35--42, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Jaejin Lee. Compilation Techniques for Explicitly Parallel Programs. PhD thesis, University of Illinois at Urbana-Champaign, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. T. Lengauer and Robert Tarjan. A Fast Algorithm for Finding Dominators in a Flowgraph. TOPLAS, July 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Lin Li and Clark Verbrugge. A practical mhp information analysis for concurrent java programs. In The 17th International Workshop on Languages and Compilers for Parallel Computing (LCPC'04), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Stephen P. Masticola and Barbara G. Ryder. A model of ada programs for static deadlock detection in polynomial times. In PADD '91: Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging, pages 97--107, New York, NY, USA, 1991. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Stephen P. Masticola and Barbara G. Ryder. Non-concurrency analysis. In PPOPP '93: Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 129--138, New York, NY, USA, 1993. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. G. Naumovich, G. S. Avruin, and L. A. Clarke. Data flow analysis for checking properties of concurrent java programs. Technical Report UM-CS-1998-022, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gleb Naumovich and George S. Avrunin. A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel. In SIGSOFT '98/FSE-6: Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering, pages 24--34, New York, NY, USA, 1998. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gleb Naumovich, George S. Avrunin, and Lori A. Clarke. An efficient algorithm for computing MHP information for concurrent Java programs. In Proceedings of the joint 7th European Software Engineering Conference and 7th ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 338--354, September 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. X10 release on SourceForge. http://x10.sf.net.Google ScholarGoogle Scholar
  20. Vivek Sarkar. A Concurrent Execution Semantics for Parallel Program Graphs and Program Dependence Graphs (Extended Abstract). Springer-Verlag Lecture Notes in Computer Science, 757:16--30, 1992. Proceedings of the Fifth Workshop on Languages and Compilers for Parallel Computing, Yale University, August 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Vivek Sarkar. Analysis and Optimization of Explicitly Parallel Programs using the Parallel Program Graph Representation. In Languages and compilers for parallel computing. Proceedings of the 10th international workshop. Held Aug., 1997 in Minneapolis, MN., Lecture Notes in Computer Science. Springer-Verlag, New York, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Vivek Sarkar and Barbara Simons. Parallel Program Graphs and their Classification. Springer-Verlag Lecture Notes in Computer Science, 768:633--655, 1993. Proceedings of the Sixth Workshop on Languages and Compilers for Parallel Computing, Portland, Oregon, August 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Richard N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Inf., 19:57--84, 1983.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Michael J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London and The MIT Press, Cambridge, Massachusetts, 1989. In the series, Research Monographs in Parallel and Distributed Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. May-happen-in-parallel analysis of X10 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
      • Published in

        cover image ACM Conferences
        PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
        March 2007
        284 pages
        ISBN:9781595936028
        DOI:10.1145/1229428

        Copyright © 2007 ACM

        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: 14 March 2007

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        PPoPP '07 Paper Acceptance Rate22of65submissions,34%Overall Acceptance Rate230of1,014submissions,23%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader