Steuwer, M. , Friese, M., Albers, S. and Gorlatch, S. (2014) Introducing and implementing the allpairs skeleton for programming multi-GPU systems. International Journal of Parallel Programming, 42(4), pp. 601-618. (doi: 10.1007/s10766-013-0265-6)
|
Text
148973.pdf - Accepted Version 523kB |
Abstract
Algorithmic skeletons simplify software development: they abstract typical patterns of parallelism and provide their efficient implementations, allowing the application developer to focus on the structure of algorithms, rather than on implementation details. This becomes especially important for modern parallel systems with multiple graphics processing units (GPUs) whose programming is complex and error-prone, because state-of-the-art programming approaches like CUDA and OpenCL lack high-level abstractions. We define a new algorithmic skeleton for allpairs computations which occur in real-world applications, ranging from bioinformatics to physics. We develop the skeleton’s generic parallel implementation for multi-GPU Systems in OpenCL. To enable the automatic use of the fast GPU memory, we identify and implement an optimized version of the allpairs skeleton with a customizing function that follows a certain memory access pattern. We use matrix multiplication as an application study for the allpairs skeleton and its two implementations and demonstrate that the skeleton greatly simplifies programming, saving up to 90 % of lines of code as compared to OpenCL. The performance of our optimized implementation is up to 6.8 times higher as compared with the generic implementation and is competitive to the performance of a manually written optimized OpenCL code.
Item Type: | Articles |
---|---|
Status: | Published |
Refereed: | Yes |
Glasgow Author(s) Enlighten ID: | Steuwer, Dr Michel |
Authors: | Steuwer, M., Friese, M., Albers, S., and Gorlatch, S. |
Subjects: | Q Science > QA Mathematics > QA75 Electronic computers. Computer science |
College/School: | College of Science and Engineering > School of Computing Science |
Journal Name: | International Journal of Parallel Programming |
Publisher: | Springer |
ISSN: | 0885-7458 |
ISSN (Online): | 1573-7640 |
Published Online: | 24 August 2014 |
Copyright Holders: | Copyright © 2013 Springer Science+Business Media |
First Published: | First published in International Journal of Parallel Programming 42(4): 601-618 |
Publisher Policy: | Reproduced in accordance with the publisher copyright policy |
University Staff: Request a correction | Enlighten Editors: Update this record