KGEN: A python tool for automated fortran kernel generation and verification

Youngsung Kim, John Dennis, Christopher Kerr, Raghu Raj Prasanna Kumar, Amogh Simha, Allison Baker, Sheri Mickelson

Research output: Contribution to journalConference articlepeer-review

18 Scopus citations

Abstract

Computational kernels, which are small pieces of software that selectively capture the characteristics of larger applications, have been used successfully for decades. Kernels allow for the testing of a compiler's ability to optimize code, performance of future hardware and reproducing compiler bugs. Unfortunately they can be rather time consuming to create and do not always accurately represent the full complexity of large scientific applications. Furthermore, expert knowledge is often required to create such kernels. In this paper, we present a Python-based tool that greatly simplifies the generation of computational kernels from Fortran based applications. Our tool automatically extracts partial source code of a larger Fortran application into a stand-alone executable kernel. Additionally, our tool also generates state data necessary for proper execution and verification of the extracted kernel. We have utilized our tool to extract more than thirty computational kernels from a million-line climate simulation model. Our extracted kernels have been used for a variety of purposes including: code modernization, identification of limitations in compiler optimizations, numerical algorithm debugging, compiler bug reporting, and for procurement benchmarking.

Original languageEnglish
Pages (from-to)1450-1460
Number of pages11
JournalProcedia Computer Science
Volume80
DOIs
StatePublished - 2016
Externally publishedYes
EventInternational Conference on Computational Science, ICCS 2016 - San Diego, United States
Duration: Jun 6 2016Jun 8 2016

Funding

This work was supported in part by Intel Parallel Computing Center focused on Weather and Climate Simulation (IPCC-WACS).

FundersFunder number
Intel Parallel Computing Center

    Keywords

    • Code extraction
    • Kernel
    • Mini-app
    • Python
    • Source-to-source transformation

    Fingerprint

    Dive into the research topics of 'KGEN: A python tool for automated fortran kernel generation and verification'. Together they form a unique fingerprint.

    Cite this