Abstract
This paper addresses the static analysis of an important class of X10 programs, namely those with finish/async parallelism, and affine loops and array reference structure as in the polyhedral model. For such programs our analysis can certify whenever a program is deterministic or flags races.
Our key contributions are (i) adaptation of array dataflow analysis from the polyhedral model to programs with finish/async parallelism, and (ii) use of the array dataflow analysis result to certify determinacy. We distinguish our work from previous approaches by combining the precise statement instance-wise and array element-wise analysis capability of the polyhedral model with finish/async programs that are more expressive than doall parallelism commonly considered in the polyhedral literature. We show that our approach is exact (no false negative/positives) and more precise than previous approaches, but is limited to programs that fit the polyhedral model.
- Shivali Agarwal, Rajkishore Barik, Vivek Sarkar, and Rudrapatna K. Shyamasundar. 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, pages 183--193, New York, NY, USA, 2007. ACM. Google Scholar
Digital Library
- E. Allen, D. Chase, J. Hallett, V. Luchangco, J.W. Maessen, S. Ryu, G.L. Steele Jr, S. Tobin-Hochstadt, J. Dias, C. Eastlund, et al. The Fortress Language Specification. Sun Microsystems, 139:140, 2005.Google Scholar
- Denis Barthou, Jean-François Collard, and Paul Feautrier. Fuzzy array dataflow analysis. Journal of Parallel and Distributed Computing, 40:210--226, 1997. Google Scholar
Digital Library
- C. Bastoul. Code generation in the polyhedral model is easier than you think. In PACT'13 IEEE International Conference on Parallel Architecture and Compilation Techniques, pages 7--16, Juan-les-Pins, september 2004. Google Scholar
Digital Library
- V. Basupalli, T. Yuki, S. Rajopadhye, A. Morvan, S. Derrien, P. Quinton, and D. Wonnacott. ompverify: polyhedral analysis for the OpenMP programmer. OpenMP in the Petascale Era, pages 37--53, 2011. Google Scholar
Cross Ref
- B.L. Chamberlain, D. Callahan, and H.P. Zima. Parallel programmability and the Chapel language. International Journal of High Performance Computing Applications, 21(3):291--312, 2007. Google Scholar
Digital Library
- Jean-François Collard and Martin Griebl. Array dataflow analysis for explicitly parallel programs. In Luc Bougé, Pierre Fraigniaud, Anne Mignotte, and Yves Robert, editors, Euro-Par'96 Parallel Processing, volume 1123 of Lecture Notes in Computer Science, pages 406--413. Springer Berlin / Heidelberg, 1996. Google Scholar
Digital Library
- UPC Consortium et al. UPC language specifications. Lawrence Berkeley National Lab Tech Report LBNL-59208, 2005.Google Scholar
- D. Engler and K. Ashcraft. Racerx: effective, static detection of race conditions and deadlocks. ACM SIGOPS Operating Systems Review, 37(5):237--252, 2003. Google Scholar
Digital Library
- Paul Feautrier. Parametric integer programming. RAIRO Recherche Opérationnelle, 22:243--268, September 1988.Google Scholar
Cross Ref
- Paul Feautrier. Dataflow analysis of scalar and array references. Int. J. of Parallel Programming, 20(1):23--53, February 1991.Google Scholar
Cross Ref
- Paul Feautrier. Some efficient solutions to the affine scheduling problem, II, multidimensional time. Int. J. of Parallel Programming, 21(6):389--420, December 1992.Google Scholar
Cross Ref
- Paul Feautrier and Christian Lengauer. The polyhedral model. In David Padua, editor, Encyclopedia of Parallel Programming. Springer, 2011.Google Scholar
- T. Grosser, H. Zheng, R. Aloor, A. Simbürger, A. Größlinger, and L.N. Pouchet. Polly-Polyhedral optimization in LLVM. In IMPACT 2011 First International Workshop on Polyhedral Compilation Techniques, 2011.Google Scholar
- V. Kahlon, N. Sinha, E. Kruus, and Y. Zhang. Static data race detection for concurrent programs with asynchronous calls. In Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, pages 13--22. ACM, 2009. Google Scholar
Digital Library
- Jonathan K. Lee and Jens Palsberg. 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, pages 25--36, New York, NY, USA, 2010. ACM. Google Scholar
Digital Library
- Charles E. Leiserson, Tao B. Schardl, and Jim Sukha. Deterministic parallel random-number generation for dynamic-multithreading platforms. In PPOPP'12, pages 193--204, 2012. Google Scholar
Digital Library
- Robert W. Numrich and John Reid. Co-array fortran for parallel programming. SIGPLAN Fortran Forum, 17(2):1--31, August 1998. Google Scholar
Digital Library
- S. Pop, A. Cohen, C. Bastoul, S. Girbal, G.A. Silber, and N. Vasilache. GRAPHITE: Polyhedral analyses and optimizations for GCC. In Proceedings of the 2006 GCC Developers Summit, page 2006, 2006.Google Scholar
- W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. In ACM SIGPLAN PLDI, pages 140--151, 1992. Google Scholar
Digital Library
- W. Pugh and D. Wonnacott. Going beyond Integer Programming with the Omega Test to Eliminate False Data Dependencies. Technical Report CS-TR-3191, U. of Maryland, December 1992.Google Scholar
- Vijay Saraswat, Bard Bloom, Igor Peshansky, Olivier Tardieu, and David Grove. X10 language specification version 2.2, March 2012. x10.sourceforge.net/documentation/languagespec/x10-latest.pdf.Google Scholar
- Vijay Saraswat and Radha Jagadeesan. Concurrent clustered programming. In CONCUR 2005 - Concurrency Theory, pages 353--367, London, UK, 2005. Springer-Verlag. Google Scholar
Digital Library
- Vijay A. Saraswat, Radha Jagadeesan, Maged Michael, and Christoph von Praun. A theory of memory models. In Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming, PPoPP '07, pages 161--172, New York, NY, USA, 2007. ACM. Google Scholar
Digital Library
- S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems (TOCS), 15(4):391--411, 1997. Google Scholar
Digital Library
- L.A. Smith, J.M. Bull, and J. Obdrizalek. A parallel Java Grande benchmark suite. In Supercomputing, ACM/IEEE 2001 Conference, pages 6--6. IEEE, 2001. Google Scholar
Digital Library
- Martin Vechev, Eran Yahav, Raghavan Raman, and Vivek Sarkar. Automatic verification of determinism for structured parallel programs. In Proceedings of the 17th international conference on Static analysis, SAS'10, pages 455--471, Berlin, Heidelberg, 2010. Springer-Verlag. Google Scholar
Digital Library
- S. Verdoolaege. isl: An integer set library for the polyhedral model. Mathematical Software-ICMS 2010, pages 299--302, 2010. Google Scholar
Digital Library
- Peng Wu, Paul Feautrier, David Padua, and Zehra Sura. Instance-wise points-to analysis for loop-based dependence testing. In International Conference on Supercomputing (ICS 2002), pages 262 -- 273, June 2002. Google Scholar
Digital Library
- K. Yelick, L. Semenzato, G. Pike, C. Miyamoto, B. Liblit, A. Krishnamurthy, P. Hilfinger, S. Graham, D. Gay, P. Colella, et al. Titanium: A high-performance Java dialect. Concurrency Practice and Experience, 10(11-13):825--836, 1998.Google Scholar
Cross Ref
Index Terms
Array dataflow analysis for polyhedral X10 programs
Recommendations
Array dataflow analysis for polyhedral X10 programs
PPoPP '13: Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programmingThis paper addresses the static analysis of an important class of X10 programs, namely those with finish/async parallelism, and affine loops and array reference structure as in the polyhedral model. For such programs our analysis can certify whenever a ...
May-happen-in-parallel analysis of X10 programs
PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programmingX10 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 ...
Efficient Interprocedural Array Data-Flow Analysis for Automatic Program Parallelization
Special issue on architecture-independent languages and software tools for parallel processingSince sequential languages such as Fortran and C are more machine-independent than current parallel languages, it is highly desirable to develop powerful parallelization-tools which can generate parallel codes, automatically or semiautomatically, ...







Comments