GGrantIndex
← Search

CAREER: Compilation Processes to Enhance Dataflow Optimizations

$205,028FY2020CSENSF

Boise State University, Boise ID

Investigators

Abstract

Supercomputing drives advances in many areas of science and engineering. Challenges ranging from understanding climate change, to discovering new materials for solar cells, to curing cancer, depend on the power of leadership-class supercomputing resources. Resources of this class cost tens of millions to set up and operate, so the scientific applications using them should produce the largest scientific advancement possible, in the shortest amount of time, using the least amount of energy. However, scientific applications operate inefficiently in that they typically perform operations at less than 30 percent of the potential maximum rate, and often further less than that. Hand-optimizing scientific applications by rewriting the code can increase the operation rate, but also introduces code complexities that make code difficult to understand and maintain, impeding scientific progress. Automated code optimization preserves code maintainability and has the potential to significantly increase operation rates. However, there are obstacles, such as the use of shared mathematical libraries that block automated optimization. This project seeks to overcome key obstacles to automated code optimization for scientific applications. An integrated education plan will engage at-risk youth from local Idaho high schools in computer science, building on a successful pilot program that brought pregnant and parenting teens together with computer science students. The research goal of this project is to unblock memory optimizations that depend on a code transformation performed by compilers called function inlining that is crucial to subsequent code transformation. Interactions with memory are expensive and application designers depend on them to support software design patterns. Application designers often use library calls or function pointers to break software into small, reusable modular components. However, doing so prevents inlining and limits the efficacy of transformations contributing to memory optimizations. In response to this problem, the project will make function bodies available earlier and in a form that is amenable to transformations. To accomplish this, the project will develop a new early linking stage using a high-level compiler internal representation, resulting in large regions of application code expressed in a structure ideal for transformation. This approach allows for inlining and subsequent loop transformations, thus removing the barrier resulting from using precompiled libraries, and some of the barriers from function pointer use. Project objectives are to: (1) enable inlining of precompiled libraries, (2) enable inlining over function pointers, and (3) provide customized optimization planning. This project is jointly funded by CCF Division Software and Hardware Foundations Program and the Established Program to Stimulate Competitive Research (EPSCoR). This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →