liu.seSearch for publications in DiVA
Change search
ReferencesLink to record
Permanent link

Direct link
Skeleton Programming for Heterogeneous GPU-based Systems
Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology. (PELAB - Programming Environment Laboratory)
2011 (English)Licentiate thesis, monograph (Other academic)
Abstract [en]

In this thesis, we address issues associated with programming modern heterogeneous systems while focusing on a special kind of heterogeneous systems that include multicore CPUs and one or more GPUs, called GPU-based systems.We consider the skeleton programming approach to achieve high level abstraction for efficient and portable programming of these GPU-based systemsand present our work on SkePU library which is a skeleton library for these systems.

We extend the existing SkePU library with a two-dimensional (2D) data type and skeleton operations and implement several new applications using newly made skeletons. Furthermore, we consider the algorithmic choice present in SkePU and implement support to specify and automatically optimize the algorithmic choice for a skeleton call, on a given platform.

To show how to achieve performance, we provide a case-study on optimized GPU-based skeleton implementation for 2D stencil computations and introduce two metrics to maximize resource utilization on a GPU. By devising a mechanism to automatically calculate these two metrics, performance can be retained while porting an application from one GPU architecture to another.

Another contribution of this thesis is implementation of the runtime support for the SkePU skeleton library. This is achieved with the help of the StarPUruntime system. By this implementation,support for dynamic scheduling and load balancing for the SkePU skeleton programs is achieved. Furthermore, a capability to do hybrid executionby parallel execution on all available CPUs and GPUs in a system, even for a single skeleton invocation, is developed.

SkePU initially supported only data-parallel skeletons. The first task-parallel skeleton (farm) in SkePU is implemented with support for performance-aware scheduling and hierarchical parallel execution by enabling all data parallel skeletons to be usable as tasks inside the farm construct.

Experimental evaluations are carried out and presented for algorithmic selection, performance portability, dynamic scheduling and hybrid execution aspects of our work.

Place, publisher, year, edition, pages
Linköping: Linköping University Electronic Press , 2011. , 90 p.
Linköping Studies in Science and Technology. Thesis, ISSN 0280-7971 ; 1504
Keyword [en]
Skeleton programming, GPU programming, SkePU, performance, portability
National Category
Computer Science
URN: urn:nbn:se:liu:diva-70234ISBN: 978-91-7393-066-6 (print)OAI: diva2:437140
2011-10-07, Visionen, hus B, Campus Valla, Linköpings universitet, Linköping, 13:00 (English)
Swedish e‐Science Research Center
Available from: 2011-09-27 Created: 2011-08-26 Last updated: 2014-10-08Bibliographically approved

Open Access in DiVA

Skeleton Programming for Heterogeneous GPU-based Systems(1929 kB)1394 downloads
File information
File name FULLTEXT01.pdfFile size 1929 kBChecksum SHA-512
Type fulltextMimetype application/pdf
omslag(60 kB)70 downloads
File information
File name COVER01.pdfFile size 60 kBChecksum SHA-512
Type coverMimetype application/pdf

Search in DiVA

By author/editor
Dastgeer, Usman
By organisation
PELAB - Programming Environment LaboratoryThe Institute of Technology
Computer Science

Search outside of DiVA

GoogleGoogle Scholar
Total: 1394 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

Total: 1422 hits
ReferencesLink to record
Permanent link

Direct link