Set and Relation Manipulation for the Sparse Polyhedral Framework

  • Michelle Mills Strout
  • Geri Georg
  • Catherine Olschanowsky
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7760)


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).


Iteration Space Access Function Linear Arithmetic Polyhedral Model Existential Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 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)CrossRefGoogle Scholar
  3. 3.
    Rauchwerger, L.: Run-time parallelization: Its time has come. Parallel Computing 24, 527–556 (1998)zbMATHCrossRefGoogle Scholar
  4. 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)CrossRefGoogle Scholar
  5. 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. 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. 7.
    Im, E.J.: Optimizing the Performance of Sparse Matrix-Vector Multiply. Ph.d. thesis, University of California, Berkeley (2000)Google Scholar
  8. 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)zbMATHCrossRefGoogle Scholar
  9. 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)zbMATHCrossRefGoogle Scholar
  10. 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)CrossRefGoogle Scholar
  11. 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. 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. 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)CrossRefGoogle Scholar
  14. 14.
    Mohiyuddin, M., Hoemmen, M., Demmel, J., Yelick, K.: Minimizing communication in sparse matrix solvers. In: Supercomputing, ACM, New York (2009)Google Scholar
  15. 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. 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. 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)CrossRefGoogle Scholar
  18. 18.
    Feautrier, P.: Some efficient solutions to the affine scheduling problem. part II. multidimensional time. International Journal of Parallel Programming 21, 389–420 (1992)MathSciNetzbMATHCrossRefGoogle Scholar
  19. 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. 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. 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)MathSciNetzbMATHCrossRefGoogle Scholar
  22. 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)CrossRefGoogle Scholar
  23. 23.
    Xue, J.: Transformations of nested loops with non-convex iteration spaces. Parallel Computing 22, 339–368 (1996)MathSciNetzbMATHCrossRefGoogle Scholar
  24. 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. 25.
    Lin, Y., Padua, D.: Compiler analysis of irregular memory accesses. SIGPLAN Notices 35, 157–168 (2000)CrossRefGoogle Scholar
  26. 26.
    Barthou, D., Collard, J.F., Feautrier, P.: Fuzzy array dataflow analysis. Journal of Parallel and Distributed Computing 40, 210–226 (1997)zbMATHCrossRefGoogle Scholar
  27. 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. 28.
    Chen, C., Hall, M., Venkat, A.: Omega+ (2012),
  29. 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)CrossRefGoogle Scholar
  30. 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. 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. 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)CrossRefGoogle Scholar
  33. 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. 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. 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. 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)CrossRefGoogle Scholar
  37. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Michelle Mills Strout
    • 1
  • Geri Georg
    • 1
  • Catherine Olschanowsky
    • 1
  1. 1.Colorado State UniversityUSA

Personalised recommendations