Detailansicht

High-level parallel programming support for heterogeneous systems
Bo Wu
Art der Arbeit
Masterarbeit
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Betreuer*in
Eduard Mehofer
Volltext in Browser öffnen
Alle Rechte vorbehalten / All rights reserved
DOI
10.25365/thesis.27830
URN
urn:nbn:at:at-ubw:1-30225.48120.717069-0
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)

Abstracts

Abstract
(Deutsch)
Diese Masterarbeit behandelt unterschiedliche high-level parallele Programmiermodelle für heterogene Systeme, die mittlerweile sehr verbreitet im Bereich High Performance Computing sind. Heterogene Systeme sind eine sehr kostengünstige und effektive Art weitere Performanzsteigerungen zu erzielen. Der häufigste Ansatz ist, leistungsfähige Grafikprozessoren (GPUs) als Acceleratoren zu den Hauptprozessoren (CPUs) hinzuzufügen. Derzeit sind drei der top-zehn Supercomputer der Welt heterogene Systeme. Wichtig für die Verwendung von solchen Systemen ist nicht nur die Performanz allein, sondern auch der niedrigere Energieverbrauch und der günstigere Preis. Für Softwareentwickler stellen solche Plattformen eine neue Herausforderung dar, da es sich um eine komplexere Architektur handelt. Die Programmierung auf einer heterogenen Architektur ist viel schwieriger als auf einer homogenen Architektur, trotz der beiden jüngst entwickelten Programmierungsmodelle CUDA und OpenCL. Beide sind sehr low-level Ansätze. Die Programmierer müssen die genaue Architektur auf Hardware-Ebene kennen. Andere Herausforderungen sind auch die Lokalisierung der Parallelität, sowie das komplexe Speichermodell und Ausführungsmodell. Ein weiteres Problem ist, dass bereits existierende Programme für homogene Multicore-Prozessoren nicht einfach auf diese heterogenen Systeme portiert werden können, und daher ein Umschreiben solcher Programme notwendig ist. Daher sind high-level Programmieransätze von großer Wichtigkeit, um die Probleme der low-level Programmierung zu entschärfen. Das Ziel dieser Masterarbeit ist es, einen Überblick über die aktuelle Entwicklung von high-level Programmiermodelle für heterogene Systeme zu geben. Diese Arbeit untersucht unterschiedliche repräsentative high-level Programmiermodelle. Durch die Analyse der Eigenschaften von solchen Ansätzen für Anwendungen aus Computational Science, werden die jeweilige Programmierbarkeit, Performanz und Portabilität evaluiert, verglichen und diskutiert. Dazu werden unterschiedliche Scientific Codes mit PGI Accelerator, HMPP Workbench und OpenMPC realisiert, und Experimente werden auch durchgeführt.
Abstract
(Englisch)
This master thesis focuses on several high-level parallel programming models for heterogeneous systems that have been becoming increasingly popular in the field of high-performance computing. Heterogeneous systems are an inexpensive and effective way for further performance improvements. A powerful combination of graphics processing units (GPUs) and central processing units (CPUs) is one of the most common types of heterogeneous systems. Currently, three of the world’s ten fastest supercomputers are based on heterogeneous designs. The preponderance of using these systems is not only a marked increase in performance, but also more energy-efficient and cost-effective. For software developers, programming on such platforms is a new challenge because of the more complex architecture. Despite two recently developed programming models, CUDA and OpenCL, programming of heterogeneous architectures is still much more difficult than programming of homogeneous architectures. Both of them are very low-level approaches. Programmers need to have in-depth knowledge of the hardware characteristics. Other challenges are the localization of parallelism, as well as the complex memory model and execution model. A further problem is that existing programs developed for homogeneous multicore processors cannot be easily ported to heterogeneous systems, and therefore, a rewriting of such programs is required. Hence, high-level programming approaches are of great importance to mitigate the problems of low-level programming. The purpose of the thesis is to outline the current development of high-level programming models for heterogeneous systems. The thesis explores different representative high-level programming models. By analyzing the characteristics of such approaches for applications in computational science, programmability, performance and portability are evaluated, compared and discussed. Different scientific codes have been implemented with PGI Accelerator, HMPP Workbench and OpenMPC, and experiments have been performed as well.

Schlagwörter

Schlagwörter
(Englisch)
heterogeneous systems programming support parallel programming high-level GPU CUDA OpenCL PGI HMPP OpenMPC
Schlagwörter
(Deutsch)
Heterogene Systeme Programmierunterstützung Parallele Programmierung High-level GPU CUDA OpenCL PGI HMPP OpenMPC
Autor*innen
Bo Wu
Haupttitel (Englisch)
High-level parallel programming support for heterogeneous systems
Paralleltitel (Deutsch)
High-level parallele Programmierunterstützung für heterogene Systeme
Publikationsjahr
2013
Umfangsangabe
113 S.
Sprache
Englisch
Beurteiler*in
Eduard Mehofer
Klassifikationen
54 Informatik > 54.25 Parallele Datenverarbeitung ,
54 Informatik > 54.31 Rechnerarchitektur ,
54 Informatik > 54.53 Programmiersprachen
AC Nummer
AC11428437
Utheses ID
24870
Studienkennzahl
UA | 066 | 940 | |
Universität Wien, Universitätsbibliothek, 1010 Wien, Universitätsring 1