Huda, Zia ul (2021)
Identification of Suitable Parallelization Patterns for Sequential Programs.
Technische Universität Darmstadt
doi: 10.26083/tuprints-00019668
Ph.D. Thesis, Primary publication, Publisher's Version
|
Text
Identification_of_Suitable_Parallelization_Patterns_for_Sequential_Programs_Ul_Huda.pdf Copyright Information: CC BY-SA 4.0 International - Creative Commons, Attribution ShareAlike. Download (2MB) | Preview |
Item Type: | Ph.D. Thesis | ||||
---|---|---|---|---|---|
Type of entry: | Primary publication | ||||
Title: | Identification of Suitable Parallelization Patterns for Sequential Programs | ||||
Language: | English | ||||
Referees: | Wolf, Prof. Dr. Felix ; Gerndt, Prof. Dr. Michael ; Jannesari, Prof. Dr. Ali | ||||
Date: | 2021 | ||||
Place of Publication: | Darmstadt | ||||
Collation: | v, 112, XXI Seiten | ||||
Date of oral examination: | 29 July 2021 | ||||
DOI: | 10.26083/tuprints-00019668 | ||||
Abstract: | During the past decade, the degree of parallelism available in hardware has grown quickly and decisively. Unfortunately, transforming an existing sequential program into a parallel one is not an easy task. Although modern compilers are able to detect the parallelism available in simple loops, a wide range of sequential programs cannot profit from these strategies because such compilers may miss coarser-grained but sometimes more scalable parallelism. To strengthen programmer productivity, over the years software engineers created a comprehensive list of sequential design patterns. These patterns improve the quality, re-usability, and maintainability of the software. Similarly, to ease the burden of parallel programming, parallel design patterns have been introduced. These patterns provide reusable solutions for common problems and help avoid concurrency bugs such as deadlocks and data races, which are very difficult to locate. Although parallel patterns are helpful for programmers, much effort is still needed to find appropriate places to apply them in the software architecture. This problem is exacerbated if one’s job is to parallelize a sequential program written by someone else. A programmer or software architect needs to have deep knowledge of not only parallel patterns but also of the target program. Tools have been developed to identify parallel patterns in the data-dependence graphs of a sequential application but they usually support at most one or two parallel patterns. This dissertation presents a framework to automatically detect a much broader variety of parallel patterns in the algorithm structure design space of sequential applications. For the identification of parallel patterns, we analyze the dependence graphs of each region of the application under study. We use different novel approaches, such as template matching and regression analysis to detect parallel patterns in a region. Furthermore, code blocks in a region are classified according to the appropriate support structure of the detected pattern. This classification eases the transformation of a sequential application into its parallel version. Finally, we defined a metric that helps select the best suitable parallel pattern out of multiple patterns detected in the same region. We support the identification of six parallel patterns in the algorithm structure of sequential applications: pipeline, multi-loop pipeline, task parallelism, geometric decomposition, do-all and reduction. We successfully identified these patterns in applications from four different benchmark suites. We confirmed our results by comparing them with pre-existing parallel versions of these applications. We also implemented the detected patterns on our own in those cases where parallel implementations were not available and achieved considerable speedups. |
||||
Alternative Abstract: |
|
||||
Status: | Publisher's Version | ||||
URN: | urn:nbn:de:tuda-tuprints-196682 | ||||
Classification DDC: | 000 Generalities, computers, information > 004 Computer science | ||||
Divisions: | 20 Department of Computer Science > Parallel Programming | ||||
Date Deposited: | 12 Oct 2021 13:09 | ||||
Last Modified: | 14 Sep 2022 10:26 | ||||
URI: | https://tuprints.ulb.tu-darmstadt.de/id/eprint/19668 | ||||
PPN: | 487398580 | ||||
Export: |
View Item |