Locus: A System and a Language for Program Optimization

S. F.X.Thiago Teixeira, Corinne Ancourt, David A Padua, William D Gropp

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

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.

Original languageEnglish (US)
Title of host publicationCGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization
EditorsTipp Moseley, Alexandra Jimborean, Mahmut Taylan Kandemir
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages217-228
Number of pages12
ISBN (Electronic)9781728114361
DOIs
StatePublished - Mar 5 2019
Event17th IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2019 - Washington, United States
Duration: Feb 16 2019Feb 20 2019

Publication series

NameCGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization

Conference

Conference17th IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2019
CountryUnited States
CityWashington
Period2/16/192/20/19

Fingerprint

Locus
Optimization
Compiler Optimization
Module
Program Transformation
Process Optimization
Compiler
Notation
Simplicity
Integrate
Heuristics
Target
Language

Keywords

  • Code generation
  • Compilers
  • Domain-specific language
  • Optimization

ASJC Scopus subject areas

  • Software
  • Control and Optimization

Cite this

Teixeira, S. F. X. T., Ancourt, C., Padua, D. A., & Gropp, W. D. (2019). Locus: A System and a Language for Program Optimization. In T. Moseley, A. Jimborean, & M. T. Kandemir (Eds.), CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization (pp. 217-228). [8661203] (CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization). Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/CGO.2019.8661203

Locus : A System and a Language for Program Optimization. / Teixeira, S. F.X.Thiago; Ancourt, Corinne; Padua, David A; Gropp, William D.

CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization. ed. / Tipp Moseley; Alexandra Jimborean; Mahmut Taylan Kandemir. Institute of Electrical and Electronics Engineers Inc., 2019. p. 217-228 8661203 (CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Teixeira, SFXT, Ancourt, C, Padua, DA & Gropp, WD 2019, Locus: A System and a Language for Program Optimization. in T Moseley, A Jimborean & MT Kandemir (eds), CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization., 8661203, CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization, Institute of Electrical and Electronics Engineers Inc., pp. 217-228, 17th IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2019, Washington, United States, 2/16/19. https://doi.org/10.1109/CGO.2019.8661203
Teixeira SFXT, Ancourt C, Padua DA, Gropp WD. Locus: A System and a Language for Program Optimization. In Moseley T, Jimborean A, Kandemir MT, editors, CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization. Institute of Electrical and Electronics Engineers Inc. 2019. p. 217-228. 8661203. (CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization). https://doi.org/10.1109/CGO.2019.8661203
Teixeira, S. F.X.Thiago ; Ancourt, Corinne ; Padua, David A ; Gropp, William D. / Locus : A System and a Language for Program Optimization. CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization. editor / Tipp Moseley ; Alexandra Jimborean ; Mahmut Taylan Kandemir. Institute of Electrical and Electronics Engineers Inc., 2019. pp. 217-228 (CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization).
@inproceedings{20deb20028624195ac6be3860415a35c,
title = "Locus: A System and a Language for Program Optimization",
abstract = "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.",
keywords = "Code generation, Compilers, Domain-specific language, Optimization",
author = "Teixeira, {S. F.X.Thiago} and Corinne Ancourt and Padua, {David A} and Gropp, {William D}",
year = "2019",
month = "3",
day = "5",
doi = "10.1109/CGO.2019.8661203",
language = "English (US)",
series = "CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "217--228",
editor = "Tipp Moseley and Alexandra Jimborean and Kandemir, {Mahmut Taylan}",
booktitle = "CGO 2019 - Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization",
address = "United States",

}

TY - GEN

T1 - Locus

T2 - A System and a Language for Program Optimization

AU - Teixeira, S. F.X.Thiago

AU - Ancourt, Corinne

AU - Padua, David A

AU - Gropp, William D

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.

ER -