Abstract
Scheduling transformations reorder operations in a program to improve locality and/or parallelism. There are mature loop transformation frameworks such as the polyhedral model for composing and applying instance-wise scheduling transformations for loop nests.In recent years, there have been efforts to build frameworks for composing and applying scheduling transformations for nested recursion and loops, but these frameworks cannot employ the full power of transformations for loop nests since they have overly-restrictive representations. This paper describes a new framework, UniRec, that not only generalizes prior frameworks for reasoning about transformations on recursion, but also generalizes the unimodular framework, and hence unifies reasoning about perfectly-nested loops and recursion.
- [n. d.]. PolyBench: Polyhedral Benchmark Suite. https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/ Accessed: 2022-04-14.
Google Scholar
- Pierre Amiranoff, Albert Cohen, and Paul Feautrier. 2006. Beyond Iteration Vectors: Instancewise Relational Abstract Domains. In Proceedings of the 13th International Conference on Static Analysis (SAS’06). Springer-Verlag, Berlin, Heidelberg. 161–180. isbn:3-540-37756-5, 978-3-540-37756-6 https://doi.org/10.1007/11823230_11
Google Scholar
Digital Library
- Vinayaka Bandishti, Irshad Pananilath, and Uday Bondhugula. 2012. Tiling stencil computations to maximize parallelism. In SC ’12: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. 1–11. https://doi.org/10.1109/SC.2012.107
Google Scholar
Digital Library
- Utpal Banerjee. 1991. Unimodular Transformations of Double Loops. In Languages and Compilers for Parallel Computing.
Google Scholar
- Ian J. Bertolacci, Catherine Olschanowsky, Ben Harshbarger, Bradford L. Chamberlain, David G. Wonnacott, and Michelle Mills Strout. 2015. Parameterized Diamond Tiling for Stencil Computations with Chapel Parallel Iterators. In Proceedings of the 29th ACM on International Conference on Supercomputing (ICS ’15). Association for Computing Machinery, New York, NY, USA. 197–206. isbn:9781450335591 https://doi.org/10.1145/2751205.2751226
Google Scholar
Digital Library
- Uday Bondhugula, Albert Hartono, J. Ramanujam, and P. Sadayappan. 2008. A Practical Automatic Polyhedral Parallelizer and Locality Optimizer. In Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’08). ACM, New York, NY, USA. 101–113. isbn:978-1-59593-860-2 https://doi.org/10.1145/1375581.1375595
Google Scholar
Digital Library
- Stephen Chou and Saman Amarasinghe. 2021. Dynamic Sparse Tensor Algebra Compilation. https://doi.org/10.48550/ARXIV.2112.01394
Google Scholar
- Paul Feautrier. 1992. Some Efficient Solutions to the Affine Scheduling Problem: I. One-dimensional Time. Int. J. Parallel Program., 21, 5 (1992), Oct., 313–348. issn:0885-7458 https://doi.org/10.1007/BF01407835
Google Scholar
Digital Library
- Paul Feautrier. 1992. Some efficient solutions to the affine scheduling problem. Part II. Multidimensional time. International Journal of Parallel Programming, 21, 6 (1992), 01 Dec, 389–420. issn:1573-7640 https://doi.org/10.1007/BF01379404
Google Scholar
Cross Ref
- Paul Iannetta, Laure Gonnord, and Gabriel Radanne. 2021. Parallelizing Structural Transformations on Tarbres. 21. https://hal.inria.fr/hal-03208466
Google Scholar
- Youngjoon Jo and Milind Kulkarni. 2011. Enhancing Locality for Recursive Traversals of Recursive Structures. In Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’11). ACM, New York, NY, USA. 463–482. isbn:978-1-4503-0940-0 https://doi.org/10.1145/2048066.2048104
Google Scholar
Digital Library
- Youngjoon Jo and Milind Kulkarni. 2012. Automatically Enhancing Locality for Tree Traversals with Traversal Splicing. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’12). ACM, New York, NY, USA. 355–374. isbn:978-1-4503-1561-6 https://doi.org/10.1145/2384616.2384643
Google Scholar
Digital Library
- Ken Kennedy and John R. Allen. 2001. Optimizing Compilers for Modern Architectures: A Dependence-Based Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. isbn:1558602860
Google Scholar
- Ken Kennedy and John R. Allen. 2002. Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. isbn:1-55860-286-0
Google Scholar
Digital Library
- Salwa Kobeissi, Alain Ketterlin, and Philippe Clauss. 2020. Rec2Poly: Converting Recursions to Polyhedral Optimized Loops Using an Inspector-Executor Strategy. In Embedded Computer Systems: Architectures, Modeling, and Simulation, Alex Orailoglu, Matthias Jung, and Marc Reichenbach (Eds.). Springer International Publishing, Cham. 96–109. isbn:978-3-030-60939-9
Google Scholar
- J. R. Larus and P. N. Hilfinger. 1988. Detecting Conflicts Between Structure Accesses. In Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation (PLDI ’88). ACM, New York, NY, USA. 24–31. isbn:0-89791-269-1 https://doi.org/10.1145/53990.53993
Google Scholar
Digital Library
- William Pugh. 1991. The Omega Test: A Fast and Practical Integer Programming Algorithm for Dependence Analysis. In Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing ’91). ACM, New York, NY, USA. 4–13. isbn:0-89791-459-7 https://doi.org/10.1145/125826.125848
Google Scholar
Digital Library
- M. O. Rabin and D. Scott. 1959. Finite Automata and Their Decision Problems. IBM J. Res. Dev., 3, 2 (1959), April, 114–125. issn:0018-8646 https://doi.org/10.1147/rd.32.0114
Google Scholar
Digital Library
- Samyam Rajbhandari, Jinsung Kim, Sriram Krishnamoorthy, Louis-Noel Pouchet, Fabrice Rastello, Robert J. Harrison, and P. Sadayappan. 2016. A Domain-specific Compiler for a Parallel Multiresolution Adaptive Numerical Simulation Environment. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC ’16). IEEE Press, Piscataway, NJ, USA. Article 40, 12 pages. isbn:978-1-4673-8815-3 http://dl.acm.org/citation.cfm?id=3014904.3014958
Google Scholar
Digital Library
- Samyam Rajbhandari, Jinsung Kim, Sriram Krishnamoorthy, Louis-Noël Pouchet, Fabrice Rastello, Robert J. Harrison, and P. Sadayappan. 2016. On Fusing Recursive Traversals of K-d Trees. In Proceedings of the 25th International Conference on Compiler Construction (CC 2016). ACM, New York, NY, USA. 152–162. isbn:978-1-4503-4241-4 https://doi.org/10.1145/2892208.2892228
Google Scholar
Digital Library
- Laith Sakka, Kirshanthan Sundararajah, and Milind Kulkarni. 2017. TreeFuser: A Framework for Analyzing and Fusing General Recursive Tree Traversals. Proc. ACM Program. Lang., 1, OOPSLA (2017), Article 76, Oct., 30 pages. issn:2475-1421 https://doi.org/10.1145/3133900
Google Scholar
Digital Library
- Laith Sakka, Kirshanthan Sundararajah, Ryan R. Newton, and Milind Kulkarni. 2019. Sound, Fine-Grained Traversal Fusion for Heterogeneous Trees. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019). Association for Computing Machinery, New York, NY, USA. 830–844. isbn:9781450367127 https://doi.org/10.1145/3314221.3314626
Google Scholar
Digital Library
- Kirshanthan Sundararajah and Milind Kulkarni. 2019. Composable, Sound Transformations of Nested Recursion and Loops. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019). Association for Computing Machinery, New York, NY, USA. 902–917. isbn:9781450367127 https://doi.org/10.1145/3314221.3314592
Google Scholar
Digital Library
- Kirshanthan Sundararajah, Laith Sakka, and Milind Kulkarni. 2017. Locality Transformations for Nested Recursive Iteration Spaces. SIGPLAN Not., 52, 4 (2017), April, 281–295. issn:0362-1340 https://doi.org/10.1145/3093336.3037720
Google Scholar
Digital Library
- Ivan Šimeček, Claudio Kozický, Daniel Langr, and Pavel Tvrdík. 2020. Space-Efficient k-d Tree-Based Storage Format for Sparse Tensors. In Proceedings of the 29th International Symposium on High-Performance Parallel and Distributed Computing (HPDC ’20). Association for Computing Machinery, New York, NY, USA. 29–33. isbn:9781450370523 https://doi.org/10.1145/3369583.3392692
Google Scholar
Digital Library
- Yusheng Weijiang, Shruthi Balakrishna, Jianqiao Liu, and Milind Kulkarni. 2015. Tree Dependence Analysis. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’15). ACM, New York, NY, USA. 314–325. isbn:978-1-4503-3468-6 https://doi.org/10.1145/2737924.2737972
Google Scholar
Digital Library
- Michael Wolfe. 1986. Loop Skewing: The Wavefront Method Revisited. Int. J. Parallel Program., 15, 4 (1986), Oct., 279–293. issn:0885-7458 https://doi.org/10.1007/BF01407876
Google Scholar
Digital Library
Index Terms
UniRec: a unimodular-like framework for nested recursions and loops
Recommendations
Composable, sound transformations of nested recursion and loops
PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and ImplementationScheduling transformations reorder a program’s operations to improve locality and/or parallelism. The polyhedral model is a general framework for composing and applying instance-wise scheduling transformations for loop-based programs, but there is no ...
Affine and unimodular transformations for non-uniform nested loops
ICCOMP'08: Proceedings of the 12th WSEAS international conference on ComputersPerformance improvement in the modern parallel machines needs not only to find sufficient parallelism in a program, but it is also important that we minimize the synchronization and communication overheads in the parallelized program. Parallelizing and ...
Parallelizing tightly nested loops
IPPS '91: Proceedings of the Fifth International Parallel Processing SymposiumPresents a new technique to parallelize nested loops at the statement level. It transforms sequential nested loops, either vectorizable or not, into parallel ones. Previously, the wavefront method was used to parallelize non-vectorizable nested loops. ...






Comments