Dynamic compilation for component-based high performance computing

  • Authors:
  • Jeffrey A. Sandoval;Keith D. Cooper

  • Affiliations:
  • Rice University, Houston, TX;Rice University, Houston, TX

  • Venue:
  • Proceedings of the 2009 Workshop on Component-Based High Performance Computing
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Component-based frameworks for high-performance computing (HPC) are being developed in response to the increasing complexity of HPC software. These frameworks promote the development of clear programming interfaces that allow easy code reuse, distributed development, and inter-language operability. Unfortunately, the decoupled and dynamic nature of component-based applications prevent static compilers from applying optimization across components. Consequently, if components are used at too fine of a granularity they can impose a significant performance overhead -- a serious consequence in the HPC community. Therefore, this paper proposes dynamic compilation as a method for improving performance of component-based HPC applications, which would allow programmers to express programs at the most natural granularity. We introduce a technique called IR annotation in which a high-level intermediate representation (IR) of a program is embedded inside an optimized native executable. This approach leverages the benefits of multiple program representations at the cost of increased code size. The optimized code enables immediate execution at native speed while the IR allows selective dynamic re-compilation if runtime monitoring exposes performance problems. Our experimental results for using IR annotation on the Common Component Architecture (CCA), a component-based HPC framework, show that the program size increase is only about 2.5x. Finally, we propose several ideas that can potentially further reduce the code growth due to IR annotation.