skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Performance Exploration Through Optimistic Static Program Annotations

Abstract

Compilers are limited by the static information directly or indirectly encoded in the program. Low-level languages, such as C/C++, are considered problematic as their weak type system and relaxed memory semantic allows for various, sometimes non-obvious, behaviors. Since compilers have to preserve the program semantics for all program executions, the existence of exceptional behavior can prevent optimizations that the developer would consider valid and might expect. Analyses to guarantee the absence of disruptive and unlikely situations are consequently an indispensable part of an optimizing compiler. However, such analyses have to be approximative and limited in scope as global and exact solutions are infeasible for any non-trivial program. In this paper, we present an automated tool to measure the effectmissing static information has on the optimizations applied to a given program. The approach generates an optimistically optimized program version which, compared to the original, defines a performance gap that can be closed by better compiler analyses and selective static program annotations. Our evaluation on six already tuned proxy applications for high-performance codes shows speedups of up to 20.6%. This clearly indicates that static uncertainty limits performance. At the same time, we observed that compilers are often unable to utilize additional staticmore » information. Thus, manual annotation of all correct static information is therefore not only error prone but also mostly redundant.« less

Authors:
; ;
Publication Date:
Research Org.:
Argonne National Lab. (ANL), Argonne, IL (United States)
Sponsoring Org.:
USDOE National Nuclear Security Administration (NNSA); USDOE Office of Science (SC)
OSTI Identifier:
1574771
DOE Contract Number:  
AC02-06CH11357
Resource Type:
Conference
Resource Relation:
Journal Volume: 11501; Conference: 2019 ISC High Performance, 06/16/19 - 06/20/19, Frankfurt, DE
Country of Publication:
United States
Language:
English
Subject:
Auto Tuning; Compiler Optimization; LLVM; Performance Gap; Static Program Analysis

Citation Formats

Doerfert, Johannes, Homerding, Brian, and Finkel, Hal. Performance Exploration Through Optimistic Static Program Annotations. United States: N. p., 2019. Web. doi:10.1007/978-3-030-20656-7_13.
Doerfert, Johannes, Homerding, Brian, & Finkel, Hal. Performance Exploration Through Optimistic Static Program Annotations. United States. doi:10.1007/978-3-030-20656-7_13.
Doerfert, Johannes, Homerding, Brian, and Finkel, Hal. Tue . "Performance Exploration Through Optimistic Static Program Annotations". United States. doi:10.1007/978-3-030-20656-7_13.
@article{osti_1574771,
title = {Performance Exploration Through Optimistic Static Program Annotations},
author = {Doerfert, Johannes and Homerding, Brian and Finkel, Hal},
abstractNote = {Compilers are limited by the static information directly or indirectly encoded in the program. Low-level languages, such as C/C++, are considered problematic as their weak type system and relaxed memory semantic allows for various, sometimes non-obvious, behaviors. Since compilers have to preserve the program semantics for all program executions, the existence of exceptional behavior can prevent optimizations that the developer would consider valid and might expect. Analyses to guarantee the absence of disruptive and unlikely situations are consequently an indispensable part of an optimizing compiler. However, such analyses have to be approximative and limited in scope as global and exact solutions are infeasible for any non-trivial program. In this paper, we present an automated tool to measure the effectmissing static information has on the optimizations applied to a given program. The approach generates an optimistically optimized program version which, compared to the original, defines a performance gap that can be closed by better compiler analyses and selective static program annotations. Our evaluation on six already tuned proxy applications for high-performance codes shows speedups of up to 20.6%. This clearly indicates that static uncertainty limits performance. At the same time, we observed that compilers are often unable to utilize additional static information. Thus, manual annotation of all correct static information is therefore not only error prone but also mostly redundant.},
doi = {10.1007/978-3-030-20656-7_13},
journal = {},
issn = {0302--9743},
number = ,
volume = 11501,
place = {United States},
year = {2019},
month = {1}
}

Conference:
Other availability
Please see Document Availability for additional information on obtaining the full-text document. Library patrons may search WorldCat to identify libraries that hold this conference proceeding.

Save / Share: