A Case for Strongly Polynomial Time Sub-Polyhedral Scheduling Using Two-Variable-Per-Inequality Polyhedra

We make a case for sub-polyhedral scheduling using (Unit-)Two-Variable-Per-Inequality or (U)TVPI Polyhedra. We empirically show that using general convex polyhedra leads to a scalability problem in a widely used polyhedral scheduler. We propose methods in which polyhedral schedulers can beat the scalability challenge by using sub-polyhedral under-aproximations of the polyhedra resulting from the application of the affine form of the Farkas lemma. We propose simple algorithms that under-approximate a general polyhedra into (U)TVPI polyhedra. These algorithms take worstcase polynomial time. We implement the above approximation algorithms in a modified PLuTo, and show that for a majority of the Polybench 2.0 kernels, the above under-approximation yield polyhedra that are non-empty. We also provide preliminary evidence that code generated by our sub-polyhedral parallelization prototype matches the performance of PLuTo-optimized code when the under-approximation preserves feasibility.

[1]  K. Brown,et al.  Graduate Texts in Mathematics , 1982 .

[2]  Roberto Bagnara,et al.  Weakly-relational shapes for numeric abstractions: improved algorithms and proofs of correctness , 2009, Formal Methods Syst. Des..

[3]  Frédéric Vivien,et al.  Minimal enclosing parallelepiped in 3D , 2004, Comput. Geom..

[4]  Bengt Aspvall,et al.  A Polynomial Time Algorithm for Solving Systems of Linear Inequalities with Two Variables per Inequality , 1980, SIAM J. Comput..

[5]  Patrick Cousot,et al.  A static analyzer for large safety-critical software , 2003, PLDI.

[6]  Kevin D. Wayne,et al.  A polynomial combinatorial algorithm for generalized minimum cost flow , 1999, STOC '99.

[7]  Hongbin Zheng,et al.  Polly – Polyhedral optimization in LLVM , 2012 .

[8]  Antoine Miné,et al.  The octagon abstract domain , 2001, High. Order Symb. Comput..

[9]  David K. Smith Theory of Linear and Integer Programming , 1987 .

[10]  Joseph Naor,et al.  Simple and Fast Algorithms for Linear and Integer Programs With Two Variables per Inequality , 1994, SIAM J. Comput..

[11]  Edith Cohen,et al.  Improved algorithms for linear inequalities with two variables per inequality , 1991, STOC '91.

[12]  Paul Feautrier,et al.  Some efficient solutions to the affine scheduling problem. I. One-dimensional time , 1992, International Journal of Parallel Programming.

[13]  Edith Cohen,et al.  Improved algorithms for linear inequalities with two variables per inequality , 1991, STOC '91.

[14]  Andy King,et al.  The two variable per inequality abstract domain , 2010, High. Order Symb. Comput..

[15]  Paul Feautrier,et al.  Scalable and Structured Scheduling , 2006, International Journal of Parallel Programming.

[16]  G. Ziegler Lectures on Polytopes , 1994 .

[17]  Martin Griebl,et al.  Forward Communication Only Placements and Their Use for Parallel Program Construction , 2002, LCPC.

[18]  Paul Feautrier,et al.  Some efficient solutions to the affine scheduling problem. Part II. Multidimensional time , 1992, International Journal of Parallel Programming.

[19]  Albert Cohen,et al.  GRAPHITE Two Years After First Lessons Learned From Real-World Polyhedral Compilation , 2010 .

[20]  Uday Bondhugula,et al.  A practical automatic polyhedral parallelizer and locality optimizer , 2008, PLDI '08.

[21]  Robert E. Shostak,et al.  Deciding Linear Inequalities by Computing Loop Residues , 1981, JACM.

[22]  Yves Robert,et al.  Scheduling and Automatic Parallelization , 2000, Birkhäuser Boston.

[23]  Shuvendu K. Lahiri,et al.  An Efficient Decision Procedure for UTVPI Constraints , 2005, FroCoS.

[24]  Uday Bondhugula,et al.  Loop transformations: convexity, pruning and optimization , 2011, POPL '11.