Journal article Open Access

Hybrid CPU–GPU execution support in the skeleton programming framework SkePU

Öhberg, Tomas; Ernstsson, August; Kessler, Christoph


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nam##2200000uu#4500</leader>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u">https://creativecommons.org/licenses/by/4.0/legalcode</subfield>
    <subfield code="a">Creative Commons Attribution 4.0 International</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2019-03-25</subfield>
  </datafield>
  <controlfield tag="005">20200319202013.0</controlfield>
  <datafield tag="500" ind1=" " ind2=" ">
    <subfield code="a">https://link.springer.com/article/10.1007/s11227-019-02824-7</subfield>
  </datafield>
  <controlfield tag="001">3716385</controlfield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">openaire</subfield>
    <subfield code="o">oai:zenodo.org:3716385</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;In this paper, we present a hybrid execution backend for the skeleton programming framework SkePU. The backend is capable of automatically dividing the workload and simultaneously executing the computation on a multi-core CPU and any number of accelerators, such as GPUs. We show how to efficiently partition the workload of skeletons such as Map, MapReduce, and Scan to allow hybrid execution on heterogeneous computer systems. We also show a unified way of predicting how the workload should be partitioned based on performance modeling. With experiments on typical skeleton instances, we show the speedup for all skeletons when using the new hybrid backend. We also evaluate the performance on some real-world applications. Finally, we show that the new implementation gives higher and more reliable performance compared to an old hybrid execution implementation based on dynamic scheduling.&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Department of Computer and Information Science, Linköping University, Linköping, Sweden</subfield>
    <subfield code="a">Ernstsson, August</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Department of Computer and Information Science, Linköping University, Linköping, Sweden</subfield>
    <subfield code="a">Kessler, Christoph</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">1820885</subfield>
    <subfield code="z">md5:fc4e77e8f85f943dc1d3af70d9f2c1b8</subfield>
    <subfield code="u">https://zenodo.org/record/3716385/files/Hybrid_CPU_GPU.pdf</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">publication</subfield>
    <subfield code="b">article</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Department of Computer and Information Science, Linköping University, Linköping, Sweden</subfield>
    <subfield code="a">Öhberg, Tomas</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.1007/s11227-019-02824-7</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">Hybrid CPU–GPU execution support in the skeleton programming framework SkePU</subfield>
  </datafield>
  <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>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
</record>
21
23
views
downloads
Views 21
Downloads 23
Data volume 41.9 MB
Unique views 21
Unique downloads 23

Share

Cite as