Skip to main content

Set and Relation Manipulation for the Sparse Polyhedral Framework

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7760))

Abstract

The Sparse Polyhedral Framework (SPF) extends the Polyhedral Model by using the uninterpreted function call abstraction for the compile-time specification of run-time reordering transformations such as loop and data reordering and sparse tiling approaches that schedule irregular sets of iteration across loops. The Polyhedral Model represents sets of iteration points in imperfectly nested loops with unions of polyhedral and represents loop transformations with affine functions applied to such polyhedra sets. Existing tools such as ISL, Cloog, and Omega manipulate polyhedral sets and affine functions, however the ability to represent the sets and functions where some of the constraints include uninterpreted function calls such as those needed in the SPF is non-existant or severely restricted. This paper presents algorithms for manipulating sets and relations with uninterpreted function symbols to enable the Sparse Polyhedral Framework. The algorithms have been implemented in an open source, C++ library called IEGenLib (The Inspector/Executor Generator Library).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 49.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Mirchandaney, R., Saltz, J.H., Smith, R.M., Nico, D.M., Crowley, K.: Principles of runtime support for parallel processors. In: ICS 1988: Proceedings of the 2nd International Conference on Supercomputing, pp. 140–152. ACM, New York (1988)

    Google Scholar 

  2. Saltz, J., Chang, C., Edjlali, G., Hwang, Y.S., Moon, B., Ponnusamy, R., Sharma, S., Sussman, A., Uysal, M., Agrawal, G., Das, R., Havlak, P.: Programming irregular applications: Runtime support, compilation and tools. Advances in Computers 45, 105–153 (1997)

    Article  Google Scholar 

  3. Rauchwerger, L.: Run-time parallelization: Its time has come. Parallel Computing 24, 527–556 (1998)

    Article  MATH  Google Scholar 

  4. Rauchwerger, L., Amato, N.M., Padua, D.A.: A scalable method for run-time loop parallelization. International Journal of Parallel Programming 23, 537–576 (1995)

    Article  Google Scholar 

  5. Ding, C., Kennedy, K.: Improving cache performance in dynamic applications through data and computation reorganization at run time. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 229–241. ACM, New York (1999)

    Google Scholar 

  6. Mitchell, N., Carter, L., Ferrante, J.: Localizing non-affine array references. In: Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT), pp. 192–202. IEEE Computer Society, Los Alamitos (1999)

    Google Scholar 

  7. Im, E.J.: Optimizing the Performance of Sparse Matrix-Vector Multiply. Ph.d. thesis, University of California, Berkeley (2000)

    Google Scholar 

  8. Mellor-Crummey, J., Whalley, D., Kennedy, K.: Improving memory hierarchy performance for irregular applications using data and computation reorderings. International Journal of Parallel Programming 29, 217–247 (2001)

    Article  MATH  Google Scholar 

  9. Pingali, V.K., McKee, S.A., Hsieh, W.C., Carter, J.B.: Restructuring computations for temporal data cache locality. International Journal of Parallel Programming 31, 305–338 (2003)

    Article  MATH  Google Scholar 

  10. Basumallik, A., Eigenmann, R.: Optimizing irregular shared-memory applications for distributed-memory systems. In: Proceedings of the Eleventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 119–128. ACM Press, New York (2006)

    Chapter  Google Scholar 

  11. Ravishankar, M., Eisenlohr, J., Pouchet, L.N., Ramanujam, J., Rountev, A., Sadayappan, P.: Code generation for parallel execution of a class of irregular loops on distributed memory systems. In: The International Conference for High Performance Computing, Networking, Storage, and Analysis, SC (2012)

    Google Scholar 

  12. Douglas, C.C., Hu, J., Kowarschik, M., Rüde, U., Weiß., C.: Cache Optimization for Structured and Unstructured Grid Multigrid. Electronic Transaction on Numerical Analysis, 21–40 (2000)

    Google Scholar 

  13. Strout, M.M., Carter, L., Ferrante, J., Kreaseck, B.: Sparse tiling for stationary iterative methods. International Journal of High Performance Computing Applications 18, 95–114 (2004)

    Article  Google Scholar 

  14. Mohiyuddin, M., Hoemmen, M., Demmel, J., Yelick, K.: Minimizing communication in sparse matrix solvers. In: Supercomputing, ACM, New York (2009)

    Google Scholar 

  15. Strout, M.M., Carter, L., Ferrante, J.: Compile-time composition of run-time data and iteration reorderings. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), ACM, New York (2003)

    Google Scholar 

  16. LaMielle, A., Strout, M.M.: Enabling code generation within the sparse polyhedral framework. Technical report, Technical Report CS-10-102 Colorado State University (2010)

    Google Scholar 

  17. Wolf, M.E., Lam, M.S.: Loop transformation theory and an algorithm to maximize parallelism. IEEE Transactions on Parallel and Distributed Systems 2, 452–471 (1991)

    Article  Google Scholar 

  18. Feautrier, P.: Some efficient solutions to the affine scheduling problem. part II. multidimensional time. International Journal of Parallel Programming 21, 389–420 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  19. Sarkar, V., Thekkath, R.: A general framework for iteration-reordering loop transformations. In: Fraser, C.W. (ed.) Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 175–187. ACM, New York (1992)

    Google Scholar 

  20. Kelly, W., Pugh, W.: A unifying framework for iteration reordering transformations. Technical Report CS-TR-3430, University of Maryland, College Park (1995)

    Google Scholar 

  21. Cohen, A., Donadio, S., Garzaran, M.J., Herrmann, C., Kiselyov, O., Padua, D.: In search of a program generator to implement generic transformations for high-performance computing. Sci. Comput. Program. 62, 25–46 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  22. Benabderrahmane, M.-W., Pouchet, L.-N., Cohen, A., Bastoul, C.: The Polyhedral Model Is More Widely Applicable Than You Think. In: Gupta, R. (ed.) CC 2010. LNCS, vol. 6011, pp. 283–303. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  23. Xue, J.: Transformations of nested loops with non-convex iteration spaces. Parallel Computing 22, 339–368 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  24. Pugh, B., Wonnacott, D.: Nonlinear array dependence analysis. Technical Report CS-TR-3372, Dept. of Computer Science, Univ. of Maryland (1994)

    Google Scholar 

  25. Lin, Y., Padua, D.: Compiler analysis of irregular memory accesses. SIGPLAN Notices 35, 157–168 (2000)

    Article  Google Scholar 

  26. Barthou, D., Collard, J.F., Feautrier, P.: Fuzzy array dataflow analysis. Journal of Parallel and Distributed Computing 40, 210–226 (1997)

    Article  MATH  Google Scholar 

  27. Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., Wonnacott, D.: The omega calculator and library, version 1.1.0 (1996)

    Google Scholar 

  28. Chen, C., Hall, M., Venkat, A.: Omega+ (2012), http://ctop.cs.utah.edu/ctop/?page_id=21

  29. Chen, C.: Polyhedra scanning revisited. In: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2012, pp. 499–508. ACM, New York (2012)

    Chapter  Google Scholar 

  30. Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical automatic polyhedral program optimization system. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), ACM, New York (2008)

    Google Scholar 

  31. Hartono, A., Norris, B., Ponnuswamy, S.: Annotation-based empirical performance tuning using Orio. In: 23rd IEEE International Parallel & Distributed Processing Symposium (IPDPS), Rome, Italy (2009)

    Google Scholar 

  32. Hall, M., Chame, J., Chen, C., Shin, J., Rudy, G., Khan, M.M.: Loop Transformation Recipes for Code Generation and Auto-Tuning. In: Gao, G.R., Pollock, L.L., Cavazos, J., Li, X. (eds.) LCPC 2009. LNCS, vol. 5898, pp. 50–64. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  33. Yuki, T., Basupalli, V., Gupta, G., Iooss, G., Kim, D., Pathan, T., Srinivasa, P., Zou, Y., Rajopadhye, S.: Alphaz: A system for analysis, transformation, and code generation in the polyhedral equational model. Technical report, Colorado State University CS-12-101 (2012)

    Google Scholar 

  34. Yi, Q., Seymour, K., You, H., Vuduc, R., Quinlan, D.: Poet: Parameterized optimizations for empirical tuning. In: Proceedings of the Parallel and Distributed Processing Symposium (2007)

    Google Scholar 

  35. Wood, S., Strout, M.M., Wonnacott, D.G., Eaton, E.: Smores: Sparse matrix omens of reordering success. Winning Poster at the PLDI Student Research Competition (2011)

    Google Scholar 

  36. Strout, M.M., Carter, L., Ferrante, J., Freeman, J., Kreaseck, B.: Combining Performance Aspects of Irregular Gauss-Seidel Via Sparse Tiling. In: Pugh, B., Tseng, C.-W. (eds.) LCPC 2002. LNCS, vol. 2481, pp. 90–110. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  37. Verdoolaege, S.: An integer set library for program analysis. In: Advances in the Theory of Integer Linear Optimization and its Extensions, AMS 2009 Spring Western Section Meeting, San Francisco, California (2009)

    Google Scholar 

  38. Bastoul, C.: Code generation in the polyhedral model is easier than you think. In: Proceedings of the 13th Interntional Conference on Parallel Architecture and Compilation Techniques, PACT (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Strout, M.M., Georg, G., Olschanowsky, C. (2013). Set and Relation Manipulation for the Sparse Polyhedral Framework. In: Kasahara, H., Kimura, K. (eds) Languages and Compilers for Parallel Computing. LCPC 2012. Lecture Notes in Computer Science, vol 7760. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37658-0_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-37658-0_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-37657-3

  • Online ISBN: 978-3-642-37658-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics