TY - JOUR
T1 - KGEN
T2 - International Conference on Computational Science, ICCS 2016
AU - Kim, Youngsung
AU - Dennis, John
AU - Kerr, Christopher
AU - Kumar, Raghu Raj Prasanna
AU - Simha, Amogh
AU - Baker, Allison
AU - Mickelson, Sheri
N1 - Publisher Copyright:
© The Authors. Published by Elsevier B.V.
PY - 2016
Y1 - 2016
N2 - 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.
AB - 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.
KW - Code extraction
KW - Kernel
KW - Mini-app
KW - Python
KW - Source-to-source transformation
UR - https://www.scopus.com/pages/publications/84978524786
U2 - 10.1016/j.procs.2016.05.466
DO - 10.1016/j.procs.2016.05.466
M3 - Conference article
AN - SCOPUS:84978524786
SN - 1877-0509
VL - 80
SP - 1450
EP - 1460
JO - Procedia Computer Science
JF - Procedia Computer Science
Y2 - 6 June 2016 through 8 June 2016
ER -