skip to main content
research-article

Array dataflow analysis for polyhedral X10 programs

Published:23 February 2013Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. Denis Barthou, Jean-François Collard, and Paul Feautrier. Fuzzy array dataflow analysis. Journal of Parallel and Distributed Computing, 40:210--226, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarCross RefCross Ref
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. UPC Consortium et al. UPC language specifications. Lawrence Berkeley National Lab Tech Report LBNL-59208, 2005.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. Paul Feautrier. Parametric integer programming. RAIRO Recherche Opérationnelle, 22:243--268, September 1988.Google ScholarGoogle ScholarCross RefCross Ref
  11. Paul Feautrier. Dataflow analysis of scalar and array references. Int. J. of Parallel Programming, 20(1):23--53, February 1991.Google ScholarGoogle ScholarCross RefCross Ref
  12. 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 ScholarGoogle ScholarCross RefCross Ref
  13. Paul Feautrier and Christian Lengauer. The polyhedral model. In David Padua, editor, Encyclopedia of Parallel Programming. Springer, 2011.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. Robert W. Numrich and John Reid. Co-array fortran for parallel programming. SIGPLAN Fortran Forum, 17(2):1--31, August 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. In ACM SIGPLAN PLDI, pages 140--151, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. Vijay Saraswat and Radha Jagadeesan. Concurrent clustered programming. In CONCUR 2005 - Concurrency Theory, pages 353--367, London, UK, 2005. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. S. Verdoolaege. isl: An integer set library for the polyhedral model. Mathematical Software-ICMS 2010, pages 299--302, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Array dataflow analysis for polyhedral 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

        Full Access

        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!