TY - JOUR
T1 - The Sparse Polyhedral Framework
T2 - Composing Compiler-Generated Inspector-Executor Code
AU - Strout, Michelle Mills
AU - Hall, Mary
AU - Olschanowsky, Catherine
N1 - Funding Information:
Manuscript received May 22, 2017; revised July 12, 2018; accepted July 13, 2018. Date of publication August 14, 2018; date of current version October 25, 2018. This work was supported by the National Science Foundation (NSF) under Grant CCF-1563732. (Corresponding author: Michelle Mills Strout.) M. M. Strout is with the Department of Computer Science, University of Arizona, Tucson, AZ 85721 USA (e-mail: mstrout@cs.arizona.edu). M. Hall is with the Department of Computer Science, University of Utah, Salt Lake City, UT 84112 USA. C. Olschanowsky is with the Computer Science Department, Boise State University, Boise, ID, USA.
Publisher Copyright:
© 1963-2012 IEEE.
PY - 2018/11
Y1 - 2018/11
N2 - Irregular applications such as big graph analysis, material simulations, molecular dynamics simulations, and finite element analysis have performance problems due to their use of sparse data structures. Inspector-executor strategies improve sparse computation performance through parallelization and data locality optimizations. An inspector reschedules and reorders data at runtime, and an executor is a transformed version of the original computation that uses the newly reorganized schedules and data structures. Inspector-executor transformations are commonly written in a domain-specific or even application-specific fashion. Significant progress has been made in incorporating such inspector-executor transformations into existing compiler transformation frameworks, thus enabling their use with compile-time transformations. However, composing inspector-executor transformations in a general way has only been done in the context of the Sparse Polyhedral Framework (SPF). Though SPF enables the general composition of such transformations, the resulting inspector and executor performance suffers due to missed specialization opportunities. This paper reviews the history and current state of the art for inspector-executor strategies and reviews how the SPF enables the composition of inspector-executor transformations. Further, it describes a research vision to combine this generality in SPF with specialization to achieve composable and high performance inspectors and executors, producing a powerful compiler framework for sparse matrix computations.
AB - Irregular applications such as big graph analysis, material simulations, molecular dynamics simulations, and finite element analysis have performance problems due to their use of sparse data structures. Inspector-executor strategies improve sparse computation performance through parallelization and data locality optimizations. An inspector reschedules and reorders data at runtime, and an executor is a transformed version of the original computation that uses the newly reorganized schedules and data structures. Inspector-executor transformations are commonly written in a domain-specific or even application-specific fashion. Significant progress has been made in incorporating such inspector-executor transformations into existing compiler transformation frameworks, thus enabling their use with compile-time transformations. However, composing inspector-executor transformations in a general way has only been done in the context of the Sparse Polyhedral Framework (SPF). Though SPF enables the general composition of such transformations, the resulting inspector and executor performance suffers due to missed specialization opportunities. This paper reviews the history and current state of the art for inspector-executor strategies and reviews how the SPF enables the composition of inspector-executor transformations. Further, it describes a research vision to combine this generality in SPF with specialization to achieve composable and high performance inspectors and executors, producing a powerful compiler framework for sparse matrix computations.
KW - Intermediate representations
KW - irregular computations
KW - program optimization and parallelization
KW - sparse matrices
UR - http://www.scopus.com/inward/record.url?scp=85051667982&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85051667982&partnerID=8YFLogxK
U2 - 10.1109/JPROC.2018.2857721
DO - 10.1109/JPROC.2018.2857721
M3 - Article
AN - SCOPUS:85051667982
VL - 106
SP - 1921
EP - 1934
JO - Proceedings of the Institute of Radio Engineers
JF - Proceedings of the Institute of Radio Engineers
SN - 0018-9219
IS - 11
M1 - 8436444
ER -