TY - CHAP A1 - Winter, Christoph A1 - Dünnweber, Jan T1 - Model-Driven Development of GPU Applications T2 - Parallel Computing: On the Road to Exascale N2 - 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. Y1 - 2016 SN - 978-1-61499-621-7 U6 - https://doi.org/10.3233/978-1-61499-621-7-227 SP - 227 EP - 236 PB - IOS Press CY - Amsterdam, Netherlands ER -