Publications by the same author
plus in the repository
plus in Google Scholar

Bibliografische Daten exportieren
 

Erweiterung eines channelbasierten Task-Laufzeitsystems um eine OpenMP-Nutzerschnittstelle

DOI zum Zitieren der Version auf EPub Bayreuth: https://doi.org/10.15495/EPub_UBT_00006047
URN to cite this document: urn:nbn:de:bvb:703-epub-6047-3

Title data

Brunner, Christopher:
Erweiterung eines channelbasierten Task-Laufzeitsystems um eine OpenMP-Nutzerschnittstelle.
Bayreuth , 2022 . - v, 64 P. - (Bayreuth Reports on Parallel and Distributed Systems ; 16 )
( Bachelor thesis, 2022 , University of Bayreuth, Faculty of Mathematics, Physics and Computer Sciences)

[thumbnail of brunner2022taskopenmp.pdf]
Format: PDF
Name: brunner2022taskopenmp.pdf
Version: Published Version
Available under License Creative Commons BY 4.0: Attribution
Download (1MB)

Abstract

In der Prozessorentwicklung der letzten 15 Jahre konnte Fortschritt aufgrund von physikalischen Limitierungen nicht mehr weiter durch ein stetiges Erhöhen der Taktrate erzielt werden. Stattdessen wurden weitere Leistungsverbesserungen vor allem durch eine größere Anzahl von Rechenkernen auf dem Prozessorchip erreicht. Damit ein einzelnes Programm von diesem Trend profitieren kann, teilt man seine auszuführenden Instruktionen in Tasks ein. Diese werden von einem Laufzeitsystem anschließend Threads zugeordnet, welche parallel auf den verschiedenen Prozessorkernen arbeiten. Die Aufgabe eines solchen System besteht dabei in einer möglichst performanten Aufteilung der Tasks auf die Threads, sodass die vorhandenen Rechenressourcen bestmöglich ausgenutzt werden. Ein entsprechendes Task-Laufzeitsystem Tasking 2.0 von A. Prell nutzt zur Verteilung sogenanntes Work-Stealing, bei welchem unbeschäftigte Threads die Tasks anderer Threads stehlen. Die Kommunikation zwischen den Threads geschieht dabei ausschließlich über Kommunikationskanäle (Channels), welche flexibel an die jeweils zugrunde liegende Architektur des Zielsystems angepasst werden können. Die zur Verwendung des Laufzeitsystems bereitgestellte projekteigene Schnittstelle definiert C-Makros und erfordert ein manuelles Auslagern von Task-Anweisungssequenzen in Funktionen. Weitere Laufzeitsysteme, die ebenso ein Modell zur Parallelisierung auf gemeinsamen Speicher bieten, setzten stattdessen auf die weit verbreitete Programmierschnittstelle OpenMP, welche sich durch Compiler-Anweisungen anwenderfreundlich nutzen lässt. Im Rahmen dieser Arbeit wird deshalb die OpenMP-Nutzerschnittstelle partiell für das Task-Laufzeitsystem von A. Prell implementiert. Ein spezieller Fokus liegt dabei auf der Realisierung der grundlegenden Schnittstellenfunktionen zur Verwendung von Tasks, parallel ausführbaren Regionen sowie For-Schleifen, welche die Funktionalitäten des Laufzeitsystems abbilden. Das auf diese Weise erweiterte Laufzeitsystem vereint dadurch die Implementierungsbesonderheiten des Tasking 2.0 mit der einfachen Anwendbarkeit einer OpenMP-Nutzerschnittstelle.

Abstract in another language

In the development of processors over the past 15 years, progress could no longer achieved by constantly increasing the clock speed due to physical limitations. Instead, further performance improvements have primarily been obtained by increasing the number of processing cores on the processor chip. For a single program to benefit from this trend, its instructions must be divided into tasks. These are then assigned to threads by a runtime system, which operate in parallel on the various processor cores. The purpose of such a system is to distribute the tasks to the threadsefficiently as possible, so that the available computing resources are utilised in the best possible way. A corresponding task runtime system Tasking 2.0 by A. Prell uses so-called Work-Stealing for distribution, in which idle threads steal the tasks of other threads. The communication between the threads takes place exclusively via Channels, which can be adapted flexibly to the underlying architecture of the target system. The project-specific interface provided for using the runtime system defines C macros and requires manual swapping of a tasks statement-sequence into functions. Other runtime systems, which also provide a shared memory programming model for parallelisation, instead rely on the widely used programming interface OpenMP, which can be used in a user-friendly way through compiler instructions. In the context of this thesis, the OpenMP user interface is therefore partially implemented for A. Prell’s task runtime system. A special focus is put on the realization of the fundamental interface features for the use of tasks, parallel executable regions as well as for-loops, which represent the functionalities of the runtime system. The result is an extended runtime system that combines the special implementation properties of Tasking 2.0 with the simple applicability of an OpenMP user interface.

Further data

Item Type: Bachelor thesis
Keywords: Paralleles Rechnen; OpenMP; Tasks; Laufzeitsystem; Channel
DDC Subjects: 000 Computer Science, information, general works > 004 Computer science
Institutions of the University: Faculties
Faculties > Faculty of Mathematics, Physics und Computer Science
Faculties > Faculty of Mathematics, Physics und Computer Science > Department of Computer Science
Faculties > Faculty of Mathematics, Physics und Computer Science > Department of Computer Science > Chair Applied Computer Science II
Faculties > Faculty of Mathematics, Physics und Computer Science > Department of Computer Science > Chair Applied Computer Science II > Chair Applied Computer Science II - Univ.-Prof. Dr. Thomas Rauber
Language: German
Originates at UBT: Yes
URN: urn:nbn:de:bvb:703-epub-6047-3
Date Deposited: 05 Apr 2022 06:39
Last Modified: 05 Apr 2022 06:39
URI: https://epub.uni-bayreuth.de/id/eprint/6047

Downloads

Downloads per month over past year