Towards High-Level Programming for Systems with Many Cores

Sergei Gorlatch, Michel Steuwer

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Application development for modern high-performance systems with many cores, i.e., comprising multiple Graphics Processing Units (GPUs) and multi-core CPUs, currently exploits low-level programming approaches like CUDA and OpenCL, which leads to complex, lengthy and error-prone programs. In this paper, we advocate a high-level programming approach for such systems, which relies on the following two main principles: (a) the model is based on the current OpenCL standard, such that programs remain portable across various many-core systems, independently of the vendor, and all low-level code optimizations can be applied; (b) the model extends OpenCL with three high-level features which simplify many-core programming and are automatically translated by the system into OpenCL code. The high-level features of our programming model are as follows: (1) memory management is simplified and automated using parallel container data types (vectors and matrices); (2) a data (re)distribution mechanism supports data partitioning and generates automatic data movements between multiple GPUs; (3) computations are precisely and concisely expressed using parallel algorithmic patterns (skeletons). The well-defined skeletons allow for semantics-preserving transformations of SkelCL programs which can be applied in the process of program development, as well as in the compilation and optimization phase. We demonstrate how our programming model and its implementation are used to express several parallel applications, and we report first experimental results on evaluating our approach in terms of program size and target performance.
Original languageEnglish
Title of host publicationPerspectives of System Informatics
Subtitle of host publication9th International Ershov Informatics Conference, PSI 2014, St. Petersburg, Russia, June 24-27, 2014. Revised Selected Papers
EditorsAndrei Voronkov, Irina Virbitskaite
Place of PublicationBerlin, Heidelberg
PublisherSpringer Berlin Heidelberg
Pages111-126
Number of pages16
ISBN (Electronic)978-3-662-46823-4
ISBN (Print)978-3-662-46822-7
DOIs
Publication statusPublished - 19 Apr 2015

Publication series

NameLecture Notes in Computer Science
PublisherSpringer Berlin Heidelberg
Volume8974
ISSN (Print)0302-9743

Fingerprint

Dive into the research topics of 'Towards High-Level Programming for Systems with Many Cores'. Together they form a unique fingerprint.

Cite this