TU Darmstadt / ULB / TUbiblio

An Alternative OpenMP-Backend for Polly

Halkenhäuser, Michael (2018)
An Alternative OpenMP-Backend for Polly.
Technische Universität Darmstadt
Bachelor Thesis, Primary publication

Abstract

Multicore architectures have found their way into many areas of application by now. While this allows for the execution of several tasks in parallel, software still has to be adapted for the specific architectures to utilize the available resources effectively. Thus, the development of code that may be run in parallel is oftentimes left to human experts, who are faced with the challenge of supporting different systems and their peculiarities. While there are standardized means to realize multithreaded software more easily, like for example OpenMP, it still remains a tedious and time-consuming task. Additionally, a programmer may introduce severe errors rather quickly, if the software is not carefully engineered. Fortunately, automatic tools exist which are based on a specific mathematical representation known as the polyhedral model. On the one hand, such representations may only describe certain code structures, since they are based on linear expressions. On the other hand, this allows to exactly define and test what may be parallelized, due to correct analysis results, as for example dependency analyses. Furthermore, powerful program transformations can be defined in a very abstract manner, using methods from linear algebra. One of these tools is Polly, which may automatically generate parallelized code without any manual preparation. Polly is a subproject of the LLVM compiler framework and operates solely on a low-level intermediate representation. This brings several advantages since this representation is language independent and can be deployed on multiple platforms. However, the generation of multithreaded code is currently limited to a specific OpenMP runtime environment. In this work we will therefore present an extension to the existing infrastructure, which enables the use of an additional implementation and therefore expands Polly’s field of application.

Item Type: Bachelor Thesis
Erschienen: 2018
Creators: Halkenhäuser, Michael
Type of entry: Primary publication
Title: An Alternative OpenMP-Backend for Polly
Language: English
Referees: Koch, Prof. Dr. Andreas ; Sommer, M.Sc. Lukas
Date: 17 July 2018
Place of Publication: Darmstadt
Refereed: 3 August 2018
URL / URN: https://tuprints.ulb.tu-darmstadt.de/8517
Abstract:

Multicore architectures have found their way into many areas of application by now. While this allows for the execution of several tasks in parallel, software still has to be adapted for the specific architectures to utilize the available resources effectively. Thus, the development of code that may be run in parallel is oftentimes left to human experts, who are faced with the challenge of supporting different systems and their peculiarities. While there are standardized means to realize multithreaded software more easily, like for example OpenMP, it still remains a tedious and time-consuming task. Additionally, a programmer may introduce severe errors rather quickly, if the software is not carefully engineered. Fortunately, automatic tools exist which are based on a specific mathematical representation known as the polyhedral model. On the one hand, such representations may only describe certain code structures, since they are based on linear expressions. On the other hand, this allows to exactly define and test what may be parallelized, due to correct analysis results, as for example dependency analyses. Furthermore, powerful program transformations can be defined in a very abstract manner, using methods from linear algebra. One of these tools is Polly, which may automatically generate parallelized code without any manual preparation. Polly is a subproject of the LLVM compiler framework and operates solely on a low-level intermediate representation. This brings several advantages since this representation is language independent and can be deployed on multiple platforms. However, the generation of multithreaded code is currently limited to a specific OpenMP runtime environment. In this work we will therefore present an extension to the existing infrastructure, which enables the use of an additional implementation and therefore expands Polly’s field of application.

URN: urn:nbn:de:tuda-tuprints-85172
Divisions: 20 Department of Computer Science
20 Department of Computer Science > Embedded Systems and Applications
Date Deposited: 17 Mar 2019 20:55
Last Modified: 17 Mar 2019 20:55
PPN:
Referees: Koch, Prof. Dr. Andreas ; Sommer, M.Sc. Lukas
Refereed / Verteidigung / mdl. Prüfung: 3 August 2018
Export:
Suche nach Titel in: TUfind oder in Google
Send an inquiry Send an inquiry

Options (only for editors)
Show editorial Details Show editorial Details