TY - GEN
T1 - Scalable conditional induction variables (CIV) analysis
AU - Oancea, Cosmin E.
AU - Rauchwerger, Lawrence
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2015/3/3
Y1 - 2015/3/3
N2 - Subscripts using induction variables that cannot be expressed as a formula in terms of the enclosing-loop indices appear in the low-level implementation of common programming abstractions such as Alter, or stack operations and pose significant challenges to automatic parallelization. Because the complexity of such induction variables is often due to their conditional evaluation across the iteration space of loops we name them Conditional Induction Variables (CIV). This paper presents a flow-sensitive technique that summarizes both such civ-based and affine subscripts to program level, using the same representation. Our technique requires no modifications of our dependence tests, which is agnostic to the original shape of the subscripts, and is more powerful than previously reported dependence tests that rely on the pairwise disambiguation of read-write references. We have implemented the civ analysis in our parallelizing compiler and evaluated its impact on five Fortran benchmarks. We have found that that there are many important loops using civ subscripts and that our analysis can lead to their scalable parallelization. This in turn has led to the parallelization of the benchmark programs they appear in.
AB - Subscripts using induction variables that cannot be expressed as a formula in terms of the enclosing-loop indices appear in the low-level implementation of common programming abstractions such as Alter, or stack operations and pose significant challenges to automatic parallelization. Because the complexity of such induction variables is often due to their conditional evaluation across the iteration space of loops we name them Conditional Induction Variables (CIV). This paper presents a flow-sensitive technique that summarizes both such civ-based and affine subscripts to program level, using the same representation. Our technique requires no modifications of our dependence tests, which is agnostic to the original shape of the subscripts, and is more powerful than previously reported dependence tests that rely on the pairwise disambiguation of read-write references. We have implemented the civ analysis in our parallelizing compiler and evaluated its impact on five Fortran benchmarks. We have found that that there are many important loops using civ subscripts and that our analysis can lead to their scalable parallelization. This in turn has led to the parallelization of the benchmark programs they appear in.
UR - https://www.scopus.com/pages/publications/84925989910
UR - https://www.scopus.com/pages/publications/84925989910#tab=citedBy
U2 - 10.1109/CGO.2015.7054201
DO - 10.1109/CGO.2015.7054201
M3 - Conference contribution
AN - SCOPUS:84925989910
T3 - Proceedings of the 2015 IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2015
SP - 213
EP - 224
BT - Proceedings of the 2015 IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2015
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 2015 IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2015
Y2 - 7 February 2015 through 11 February 2015
ER -