Book section Open Access

Multi-Variant User Functions for Platform-Aware Skeleton Programming

Ernstsson, August; Kessler, Christoph

MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="">
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u"></subfield>
    <subfield code="a">Creative Commons Attribution 4.0 International</subfield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2020-04-03</subfield>
  <controlfield tag="005">20200403202013.0</controlfield>
  <datafield tag="500" ind1=" " ind2=" ">
    <subfield code="a"></subfield>
  <controlfield tag="001">3739343</controlfield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">openaire</subfield>
    <subfield code="o"></subfield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;Today&amp;rsquo;s computer architectures are increasingly specialized and heterogeneous configurations of computational units are common. To provide efficient programming of these systems while still achieving good performance, including performance portability across platforms, high-level parallel programming libraries and tool-chains are used, such as the skeleton programming framework SkePU. SkePU works on heterogeneous systems by automatically generating program components, &amp;ldquo;user functions&amp;rdquo;, for multiple different execution units in the system, such as CPU and GPU, from a high-level C++ program. This work extends this multi-backend approach by providing the possibility for the programmer to provide additional variants of these user functions tailored for different scenarios, such as platform constraints. This paper introduces the overall approach of multi-variant user functions, provides several use cases including explicit SIMD vectorization for supported hardware, and evaluates the result of these optimizations that can be achieved using this extension.&lt;/p&gt;</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Dept. of Computer and Information Science Linköping University</subfield>
    <subfield code="a">Kessler, Christoph</subfield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">191176</subfield>
    <subfield code="z">md5:2e476a046dc7278d78298271bffa6954</subfield>
    <subfield code="u"></subfield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">publication</subfield>
    <subfield code="b">section</subfield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Dept. of Computer and Information Science Linköping University</subfield>
    <subfield code="a">Ernstsson, August</subfield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.3233/APC200074</subfield>
    <subfield code="2">doi</subfield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">Multi-Variant User Functions for Platform-Aware Skeleton Programming</subfield>
  <datafield tag="536" ind1=" " ind2=" ">
    <subfield code="c">801015</subfield>
    <subfield code="a">Enhancing Programmability and boosting Performance Portability for Exascale Computing Systems</subfield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2"></subfield>
Views 22
Downloads 10
Data volume 1.9 MB
Unique views 20
Unique downloads 7


Cite as