<?xml version="1.0" encoding="utf-8"?>
<export-example>
  <doc>
    <id>6073</id>
    <completedYear/>
    <publishedYear/>
    <thesisYearAccepted/>
    <language>eng</language>
    <pageFirst/>
    <pageLast/>
    <pageNumber/>
    <edition/>
    <issue/>
    <volume/>
    <type>reportzib</type>
    <publisherName/>
    <publisherPlace/>
    <creatingCorporation/>
    <contributingCorporation/>
    <belongsToBibliography>0</belongsToBibliography>
    <completedDate>--</completedDate>
    <publishedDate>2016-10-31</publishedDate>
    <thesisDateAccepted>--</thesisDateAccepted>
    <title language="eng">KART – A Runtime Compilation Library for Improving HPC Application Performance</title>
    <abstract language="eng">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 C++ library solution that allows developers to compile, link, and execute code (e.g., C, 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.</abstract>
    <identifier type="issn">1438-0064</identifier>
    <identifier type="urn">urn:nbn:de:0297-zib-60730</identifier>
    <identifier type="doi">10.1007/978-3-319-67630-2_29</identifier>
    <enrichment key="SourceTitle">Appeared in: ISC High Performance Workshops 2017: IXPUG Workshop "Experiences on Intel Knights Landing at the One Year Mark" LNCS 10524, 2017</enrichment>
    <author>Matthias Noack</author>
    <submitter>Matthias Noack</submitter>
    <author>Florian Wende</author>
    <author>Georg Zitzlsberger</author>
    <author>Michael Klemm</author>
    <author>Thomas Steinke</author>
    <series>
      <title>ZIB-Report</title>
      <number>16-48</number>
    </series>
    <collection role="institutes" number="vas">Distributed Algorithms and Supercomputing</collection>
    <collection role="persons" number="steinke">Steinke, Thomas</collection>
    <collection role="projects" number="2013-Many-Core-HPC">2013-Many-Core-HPC</collection>
    <file>https://opus4.kobv.de/opus4-zib/files/6073/kart_zr.pdf</file>
  </doc>
</export-example>
