KART – A runtime compilation library for improving HPC application performance

3Citations
Citations of this article
7Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The effectiveness of ahead-of-time compiler optimization heavily depends on the amount of available information at compile time. Input-specific information that is only available at runtime cannot be used, although it often determines loop counts, branching predicates and paths, as well as memory-access patterns. It can also be crucial for generating efficient SIMD-vectorized code. This is especially relevant for the many-core architectures paving the way to exascale computing, which are more sensitive to code-optimization. We explore the design-space for using input-specific information at compile-time and present KART, a library solution that allows developers to compile, link, and execute code (e.g., C,, Fortran) at application runtime. Besides mere runtime compilation of performance-critical code, KART can be used to instantiate the same code multiple times using different inputs, compilers, and options. Other techniques like auto-tuning and code-generation can be integrated into a KART-enabled application instead of being scripted around it. We evaluate runtimes and compilation costs for different synthetic kernels, and show the effectiveness for two real-world applications, HEOM and a WSM6 proxy.

Cite

CITATION STYLE

APA

Noack, M., Wende, F., Zitzlsberger, G., Klemm, M., & Steinke, T. (2017). KART – A runtime compilation library for improving HPC application performance. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 10524 LNCS, pp. 389–403). Springer Verlag. https://doi.org/10.1007/978-3-319-67630-2_29

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free