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.
- Martín Abadi and Gordon D. Plotkin. A model of cooperative threads. In POPL, pages 29--40, 2009. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Rajkishore Barik. Efficient computation of may-happen-in-parallel information for concurrent Java programs. In LCPC, pages 152--169, 2005. Google Scholar
Digital Library
- Rajkishore Barik and Vivek Sarkar. Interprocedural load elimination for optimization of parallel programs. In PACT, 2009. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Atsushi Igarashi, Benjamion Pierce, and Philip Wadler. Featherweight Java: A minimal core calculus for Java and GJ. In OOPSLA, pages 132--146, 1999. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- A. J. Kfoury, Michael A. Arbib, and Robert N. Moll. A Programming Approach to Computability. Springer-Verlag, 1982. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Lin Li and Clark Verbrugge. A practical MHP information analysis for concurrent Java programs. In LCPC, pages 194--208, 2004. Google Scholar
Digital Library
- Stephen P. Masticola and Barbara G. Ryder. Non-concurrency analysis. In PPoPP, pages 129--138, 1993. Google Scholar
Digital Library
- Mayur Naik and Alex Aiken. Conditional must not aliasing for static race detection. In POPL, pages 327--338, 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Vijay A. Saraswat and Radha Jagadeesan. Concurrent clustered programming. In CONCUR, pages 353--367, 2005. Google Scholar
Digital Library
- Richard N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Inf., 19:57--84, 1983.Google Scholar
Digital Library
- Christoph von Praun and Thomas R. Gross. Static conflict analyis for multi-threaded object-oriented programs. In PLDI, pages 115--128, 2003. Google Scholar
Digital Library
- Andrew Wright and Matthias Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38--94, 1994. Google Scholar
Digital Library
Index Terms
Featherweight X10: a core calculus for async-finish parallelism
Recommendations
Featherweight X10: a core calculus for async-finish parallelism
PPoPP '10We 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 ...
Featherweight X10: a core calculus for async-finish parallelism
FTfJP '12: Proceedings of the 14th Workshop on Formal Techniques for Java-like ProgramsWe 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. For example, we present a type ...
Parallel sparse flow-sensitive points-to analysis
CC 2018: Proceedings of the 27th International Conference on Compiler ConstructionThis paper aims to contribute to further advances in pointer (or points-to) analysis algorithms along the combined dimen- sions of precision, scalability, and performance. For precision, we aim to support interprocedural ow-sensitive analysis. For ...







Comments