The computational complexity of simultaneous diophantine approximation problems
SIAM Journal on Computing
Theory of linear and integer programming
Theory of linear and integer programming
Automatic translation of FORTRAN programs to vector form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Testing the necklace condition for shortest tours and optimal factors in the plane
Theoretical Computer Science
A technique for summarizing data access and its use in parallelism enhancing transformations
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Efficient and exact data dependence analysis
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
A practical algorithm for exact array dependence analysis
Communications of the ACM
Network flows: theory, algorithms, and applications
Network flows: theory, algorithms, and applications
Some efficient solutions to the affine scheduling problem: I. One-dimensional time
International Journal of Parallel Programming
Simple and Fast Algorithms for Linear and Integer Programs with Two Variables Per Inequality
SIAM Journal on Computing
Improved Algorithms for Linear Inequalities with Two Variables per Inequality
SIAM Journal on Computing
Circuit Retiming Applied to Decomposed Software Pipelining
IEEE Transactions on Parallel and Distributed Systems
Optimal fine and medium grain parallelism detection in polyhedral reduced dependence graphs
International Journal of Parallel Programming
Journal of Experimental Algorithmics (JEA)
A polynomial combinatorial algorithm for generalized minimum cost flow
STOC '99 Proceedings of the thirty-first annual ACM symposium on Theory of computing
Deciding Linear Inequalities by Computing Loop Residues
Journal of the ACM (JACM)
Loop Shifting for Loop Compaction
International Journal of Parallel Programming - Special issue on instruction-level parallelism and parallelizing compilation, part 2
Loop Transformations for Restructuring Compilers: The Foundations
Loop Transformations for Restructuring Compilers: The Foundations
Scheduling and Automatic Parallelization
Scheduling and Automatic Parallelization
A Loop Transformation Theory and an Algorithm to Maximize Parallelism
IEEE Transactions on Parallel and Distributed Systems
Minimal Data Dependence Abstractions for Loop Transformations
LCPC '94 Proceedings of the 7th International Workshop on Languages and Compilers for Parallel Computing
PPCP '94 Proceedings of the Second International Workshop on Principles and Practice of Constraint Programming
Complexity of Multi-dimensional Loop Alignment
STACS '02 Proceedings of the 19th Annual Symposium on Theoretical Aspects of Computer Science
Solving Real-World Linear Programs: A Decade and More of Progress
Operations Research
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Smoothed analysis of algorithms: Why the simplex algorithm usually takes polynomial time
Journal of the ACM (JACM)
Minimal enclosing parallelepiped in 3D
Computational Geometry: Theory and Applications
Higher-Order and Symbolic Computation
Some ways to reduce the space dimension in polyhedra computations
Formal Methods in System Design
Scalable and structured scheduling
International Journal of Parallel Programming
A practical automatic polyhedral parallelizer and locality optimizer
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Shortest-path feasibility algorithms: An experimental evaluation
Journal of Experimental Algorithmics (JEA)
Apron: A Library of Numerical Abstract Domains for Static Analysis
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Weakly-relational shapes for numeric abstractions: improved algorithms and proofs of correctness
Formal Methods in System Design
Formal Methods in System Design
Loop transformations: convexity, pruning and optimization
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The two variable per inequality abstract domain
Higher-Order and Symbolic Computation
Forward communication only placements and their use for parallel program construction
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
The polyhedral model is more widely applicable than you think
CC'10/ETAPS'10 Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
Hi-index | 0.00 |
Polyhedral compilation has been successful in the design and implementation of complex loop nest optimizers and parallelizing compilers. The algorithmic complexity and scalability limitations remain one important weakness. We address it using sub-polyhedral under-aproximations of the systems of constraints resulting from affine scheduling problems. We propose a sub-polyhedral scheduling technique using (Unit-)Two-Variable-Per-Inequality or (U)TVPI Polyhedra. This technique relies on simple polynomial time algorithms to under-approximate a general polyhedron into (U)TVPI polyhedra. We modify the state-of-the-art PLuTo compiler using our scheduling technique, and show that for a majority of the Polybench (2.0) kernels, the above under-approximations yield polyhedra that are non-empty. Solving the under-approximated system leads to asymptotic gains in complexity, and shows practically significant improvements when compared to a traditional LP solver. We also verify that code generated by our sub-polyhedral parallelization prototype matches the performance of PLuTo-optimized code when the under-approximation preserves feasibility.