skip to main content
10.1145/1693453.1693459acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Featherweight X10: a core calculus for async-finish parallelism

Authors Info & Claims
Published:09 January 2010Publication History

ABSTRACT

We present a core calculus with two of X10's key constructs for parallelism, namely async and finish. Our calculus forms a convenient basis for type systems and static analyses for languages with async-finish parallelism, and for tractable proofs of correctness. For example, we give a short proof of the deadlock-freedom theorem of Saraswat and Jagadeesan. Our main contribution is a type system that solves the open problem of context-sensitive may-happen-in-parallel analysis for languages with async-finish parallelism. We prove the correctness of our type system and we report experimental results of performing type inference on 13,000 lines of X10 code. Our analysis runs in polynomial time, takes a total of 28 seconds on our benchmarks, and produces a low number of false positives, which suggests that our analysis is a good basis for other analyses such as race detectors.

References

  1. Martín Abadi and Gordon D. Plotkin. A model of cooperative threads. In POPL, pages 29--40, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Shivali Agarwal, Rajkishore Barik, Vivek Sarkar, and R. K. Shyamasundar. May-happen-in-parallel analysis of X10 programs. In PPoPP, pages 183--193, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Rajkishore Barik. Efficient computation of may-happen-in-parallel information for concurrent Java programs. In LCPC, pages 152--169, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Rajkishore Barik and Vivek Sarkar. Interprocedural load elimination for optimization of parallel programs. In PACT, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Philippe Charles, Christopher Donawa, Kemal Ebcioglu, Christian Grothoff, Allan Kielstra, Vivek Sarkar, and Christoph Von Praun. X10: An object-oriented approach to non-uniform cluster computing. In OOPSLA, pages 519--538, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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, pages 258--269, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Evelyn Duesterwald and Mary Lou Soffa. Concurrency analysis in the presence of procedures using a data-flow framework. In Symposium on Testing, Analysis, and Verification, pages 36--48, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Atsushi Igarashi, Benjamion Pierce, and Philip Wadler. Featherweight Java: A minimal core calculus for Java and GJ. In OOPSLA, pages 132--146, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Vineet Kahlon. Boundedness vs. unboundedness of lock chains: Characterizing decidability of pairwise CFL-reachability for threads communicating via locks. In LICS, pages 27--36, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. J. Kfoury, Michael A. Arbib, and Robert N. Moll. A Programming Approach to Computability. Springer-Verlag, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dexter Kozen, Jens Palsberg, and Michael I. Schwartzbach. Efficient inference of partial types. Journal of Computer and System Sciences, 49(2):306--324, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Jonathan K. Lee and Jens Palsberg. Featherweight X10: a core calculus for async-finish parallelism. The full version of our PPoPP'10 paper with three appendices containing detailed proofs is available at http://www.cs.ucla.edu/~palsberg/paper/ppopp10.pdf.Google ScholarGoogle Scholar
  13. Lin Li and Clark Verbrugge. A practical MHP information analysis for concurrent Java programs. In LCPC, pages 194--208, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Stephen P. Masticola and Barbara G. Ryder. Non-concurrency analysis. In PPoPP, pages 129--138, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Mayur Naik and Alex Aiken. Conditional must not aliasing for static race detection. In POPL, pages 327--338, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gleb Naumovich and George S. Avrunin. A conservative data flow algorithm for detecting all pairs of statement that may happen in parallel. In SIGSOFT FSE, pages 24--34, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gleb Naumovich, George S. Avrunin, and Lori A. Clarke. An efficient algorithm for computing HP information for concurrent Java programs. In ESEC / SIGSOFT FSE, pages 338--354, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Vijay A. Saraswat and Radha Jagadeesan. Concurrent clustered programming. In CONCUR, pages 353--367, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Richard N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Inf., 19:57--84, 1983.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Christoph von Praun and Thomas R. Gross. Static conflict analyis for multi-threaded object-oriented programs. In PLDI, pages 115--128, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Andrew Wright and Matthias Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38--94, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Featherweight X10: a core calculus for async-finish parallelism

      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 '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
        January 2010
        372 pages
        ISBN:9781605588773
        DOI:10.1145/1693453
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 45, Issue 5
          PPoPP '10
          May 2010
          346 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1837853
          Issue’s Table of Contents

        Copyright © 2010 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 9 January 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate230of1,014submissions,23%

      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!