Detailansicht
Programming support for high-level parallel pipeline patterns on hybrid many-core architectures
Enes Bajrovic
Art der Arbeit
Masterarbeit
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Betreuer*in
Siegfried Benkner
DOI
10.25365/thesis.34789
URN
urn:nbn:at:at-ubw:1-29337.37843.514354-1
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)
Abstracts
Abstract
(Deutsch)
Heterogene Elemente in modernen Hardware-Architekturen versprechen umfassende Leistungssteigerungen sowie verbesserte Energieeffizienz. Neue Hardware Entwicklungen scheinen diesen Trend durch die Kombination von konventionellen multi-core Prozessoren mit Hardware-Beschleunigern wie etwa GPUs oder Intel Xeon Phi zu übernehmen. Die Softwareentwicklung für derartige Systeme gestaltet sich jedoch äußerst komplex und es ist oftmals schwierig, deren gesamtes Leistungspotenzial zu nutzen. ProgrammiererInnen sind gezwungen explizit auf verschiedene Speicherbereiche, Lokalität und Lastverteilung Rücksicht zu nehmen und müssen darüber hinaus verschiedene Programmiermodelle und Parallelisierungsverfahren beachten. Um hohe Effizienz sowie Programmierbarkeit zu gewährleisten, kombinieren bestehende Ansätze oftmals höhere und abstrakte Programmiermodelle mit Compiler-Techniken sowie Laufzeitsystemen.
Diese Arbeit präsentiert einen Ansatz für die Programmierung von heterogenen many-core Systemen mit Hilfe eines parallelen Pipeline Programmiermuster. Dies baut auf einem komponentenbasierten, task-parallelen Programmiermodell welches innerhalb des europäischen Forschungsprojekt PEPPHER entwickelt wurde. Das gewählte Komponentenmodell ermöglicht verschiedene Implementierungsvarianten von Task-Routinen welche für verschiedene Zielarchitekturen angepasst werden können. Ein hochentwickeltes Laufzeit-System ist für die Verteilung und Auswahl passender Implementierungsvarianten sowie deren effizienter Ausführung auf verschiedenen Hardware-Elementen verantwortlich. Aufbauend auf dieser Basis, haben wir ein Programmiersystem entwickelt welches aus einer abstrakten Koordinationssprache, einem Source-to-Source Transformationssystem sowie einer Laufzeit-Koordinationsbibliothek für Pipelining besteht. Der vorgestellte Ansatz wird auf zwei unterschiedlichen heterogenen Systemen mit Anwendungen aus Computer-Vision sowie Bioinformatik evaluiert.
Abstract
(Englisch)
The increasing heterogeneity in modern hardware architectures promises significant performance gains as well as a better performance-to-power ratio. New hardware appears to be leaning towards hybrid many-core architectures that combine conventional multi-core systems with accelerators, such as GPUs , Intel Xeon Phis, etc. However, developing software that can fully exploit the potential computing power proves to be considerably complex and the programmability of such systems is significantly hindered. Consequently, programmers are forced to explicitly deal with distinct memory spaces, locality, load balancing, while using different programming models and parallelization strategies. In order to enable efficient execution and increase programmability, many approaches combine higher-level abstractions in programming models with compilers and runtimes systems.
This thesis presents an approach towards the support for high-level pipeline parallel patterns on heterogeneous many-core architectures. It builds on top of a component-based, task-parallel programming model developed within the European project PEPPHER. In this context tasks relate to the components that may have multiple implementation variants tailored for different execution units of hybrid many-core system. A sophisticated heterogeneous runtime system is responsible for mapping suitable component implementation variants and scheduling their execution to different execution units. On top of these foundations, we have developed a framework comprised of a high-level coordination language, a source-to-source compiler and the coordination layer for pipelining that relies on a heterogeneous runtime system to perform dynamic scheduling in a performance and resource efficient way. We evaluate the approach on two different heterogeneous systems and demonstrate its viability and effectiveness with two benchmarks from the areas of computer vision and bioinformatics.
Schlagwörter
Schlagwörter
(Englisch)
Parallel programming models heterogeneous architectures hybrid architectures many cores multi cores pipeline pattern
Schlagwörter
(Deutsch)
Programmiermodelle parallelen Pipeline Programmiermuster many cores multi cores pipeline pattern heterogene systeme
Autor*innen
Enes Bajrovic
Haupttitel (Englisch)
Programming support for high-level parallel pipeline patterns on hybrid many-core architectures
Paralleltitel (Deutsch)
Programmierunterstützung für High-Level Parallele Pipeline Patterns auf Hybriden Many-core Architekturen
Paralleltitel (Englisch)
Programming Support for High-Level Parallel Pipeline Patterns on Hybrid Many-core Architectures
Publikationsjahr
2014
Umfangsangabe
V, 113 S. : Ill., graph. Darst.
Sprache
Englisch
Beurteiler*in
Siegfried Benkner
Klassifikationen
54 Informatik > 54.53 Programmiersprachen ,
54 Informatik > 54.99 Informatik: Sonstiges
AC Nummer
AC12207756
Utheses ID
30861
Studienkennzahl
UA | 066 | 940 | |