<?xml version="1.0" encoding="utf-8"?>
<export-example>
  <doc>
    <id>2127</id>
    <completedYear/>
    <publishedYear>2016</publishedYear>
    <thesisYearAccepted/>
    <language>eng</language>
    <pageFirst>227</pageFirst>
    <pageLast>236</pageLast>
    <pageNumber/>
    <edition/>
    <issue/>
    <volume/>
    <type>conferenceobject</type>
    <publisherName>IOS Press</publisherName>
    <publisherPlace>Amsterdam, Netherlands</publisherPlace>
    <creatingCorporation/>
    <contributingCorporation/>
    <belongsToBibliography>0</belongsToBibliography>
    <completedDate>2021-10-31</completedDate>
    <publishedDate>--</publishedDate>
    <thesisDateAccepted>--</thesisDateAccepted>
    <title language="eng">Model-Driven Development of GPU Applications</title>
    <abstract language="eng">Programming GPUs with low-level libraries like CUDA and OpenCL is a tedious and error-prone task. Fortunately, algorithmic skeletons can shield developers from the complexity of parallel programming by encapsulating common parallel computing patterns. However, this simplification typically constrains programmers to write their applications using the GPU library employed by the skeleton implementation. In this work, we combine skeletal programming with modeldriven software development (MDSD) to increase the freedom of choice regarding the employed GPU library instead of leaving all technical decisions to the skeleton implementation. We present a code-generator that transforms models comprising skeletons, their input data and input functions to parallel C++ code while taking care of data-offset calculations. The generator has been tested using different GPU and multi-GPU communication libraries such as Thrust and CUDA-MPI. We demonstrate our novel approach to GPU programming with two example applications: affinity propagation and n-body simulation.</abstract>
    <parentTitle language="eng">Parallel Computing: On the Road to Exascale</parentTitle>
    <identifier type="isbn">978-1-61499-621-7</identifier>
    <identifier type="doi">10.3233/978-1-61499-621-7-227</identifier>
    <enrichment key="ConferenceStatement">ParCo2015 - International Conference on Parallel Computing, 2015, Edinburgh, Scotland</enrichment>
    <enrichment key="opus.source">publish</enrichment>
    <enrichment key="OtherSeries">Advances in Parallel Computing ; 27</enrichment>
    <author>Christoph Winter</author>
    <author>Jan Dünnweber</author>
    <collection role="ddc" number="005">Computerprogrammierung, Programme, Daten</collection>
    <collection role="institutes" number="FakIM">Fakultät Informatik und Mathematik</collection>
    <collection role="institutes" number="">Labor Parallele und Verteilte Systeme</collection>
    <collection role="othforschungsschwerpunkt" number="">Digitale Transformation</collection>
  </doc>
</export-example>
