TY - GEN
T1 - Locus
T2 - 17th IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2019
AU - Teixeira, S. F.X.Thiago
AU - Ancourt, Corinne
AU - Padua, David
AU - Gropp, William
N1 - Funding Information:
This material is based in part upon work supported by the Department of Energy, National Nuclear Security Administration, under Award Number DE-NA0002374 and by the National Science Foundation under Award 1533912
Funding Information:
This material is based in part upon work supported by the Department of Energy, National Nuclear Security Administration, under Award Number DE-NA0002374 and by the National Science Foundation under Award 1533912. We are grateful to the anonymous reviewers who helped improve the quality of the the paper. We also gratefully acknowledge Gong Zhangxiaowen and Justin Szaday for their valuable help in setting up the experiments presented in Section V-D.
Publisher Copyright:
© 2019 IEEE.
PY - 2019/3/5
Y1 - 2019/3/5
N2 - We discuss the design and the implementation of Locus, a system and a language to orchestrate the optimization of applications. The increasing complexity of machines and the large space of program variants, produced by the many transformations available, conspire to make compilers deliver unsatisfactory performance. As a result, optimization experts must intervene to manually explore the space of program variants seeking the best version for each target machine. This intervention is unproductive, and maintaining and managing sequences of transformations as new architectures are adopted and new application features are incorporated is challenging.Locus allows collections of program transformation sequences to be specified separately from the application code. The language is able to represent in a clear notation complex collections of transformations that are applied to code regions selected by the programmer. The system integrates multiple optimization modules as well as search modules that facilitate the efficient traversal of the space of program variants. Locus is intended to help experts in the optimization process, specially for complex, long-lived applications that are to be executed on different environments. Four examples are presented to illustrate the power and simplicity of the language. Although not the primary focus of this paper, the examples also show that exploring the space of variants typically leads to better performing codes than those produced by conventional compiler optimizations that are based on heuristics.
AB - We discuss the design and the implementation of Locus, a system and a language to orchestrate the optimization of applications. The increasing complexity of machines and the large space of program variants, produced by the many transformations available, conspire to make compilers deliver unsatisfactory performance. As a result, optimization experts must intervene to manually explore the space of program variants seeking the best version for each target machine. This intervention is unproductive, and maintaining and managing sequences of transformations as new architectures are adopted and new application features are incorporated is challenging.Locus allows collections of program transformation sequences to be specified separately from the application code. The language is able to represent in a clear notation complex collections of transformations that are applied to code regions selected by the programmer. The system integrates multiple optimization modules as well as search modules that facilitate the efficient traversal of the space of program variants. Locus is intended to help experts in the optimization process, specially for complex, long-lived applications that are to be executed on different environments. Four examples are presented to illustrate the power and simplicity of the language. Although not the primary focus of this paper, the examples also show that exploring the space of variants typically leads to better performing codes than those produced by conventional compiler optimizations that are based on heuristics.
KW - Code generation
KW - Compilers
KW - Domain-specific language
KW - Optimization
UR - http://www.scopus.com/inward/record.url?scp=85063768129&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85063768129&partnerID=8YFLogxK
U2 - 10.1109/CGO.2019.8661203
DO - 10.1109/CGO.2019.8661203
M3 - Conference contribution
AN - SCOPUS:85063768129
T3 - CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization
SP - 217
EP - 228
BT - CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization
A2 - Moseley, Tipp
A2 - Jimborean, Alexandra
A2 - Kandemir, Mahmut Taylan
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 16 February 2019 through 20 February 2019
ER -