Atre, Rohit ; Huda, Zia Ul ; Jannesari, Ali ; Wolf, Felix (2018)
Dissecting sequential programs for parallelization - an approach based on computational units.
In: Concurrency and Computation: Practice and Experience, 31 (5)
doi: 10.1002/cpe.4770
Artikel, Bibliographie
Kurzbeschreibung (Abstract)
When trying to parallelize a sequential program, programmers routinely struggle during the first step: finding out which code sections can be made to run in parallel. While identifying such code sections, most of the current parallelism discovery techniques focus on specific language constructs. In contrast, we propose to concentrate on the computations performed by a program. In our approach, a program is treated as a collection of computations communicating with one another using a number of variables. Each computation is represented as a computational unit (CU). A CU contains the inputs and outputs of a computation, and the three phases of a computation are read, compute, and write. Based on the notion of CU, which ensures that the read phase executes before the write phase, we present a unified framework to identify both loop parallelism and task parallelism in sequential programs. We conducted a range of experiments on 23 applications from four different benchmark suites. Our approach accurately identified the parallelization opportunities in benchmark applications based on comparison with their parallel versions. We have also parallelized the opportunities identified by our approach that were not implemented in the parallel versions of the benchmarks and reported the speedup.
Typ des Eintrags: | Artikel |
---|---|
Erschienen: | 2018 |
Autor(en): | Atre, Rohit ; Huda, Zia Ul ; Jannesari, Ali ; Wolf, Felix |
Art des Eintrags: | Bibliographie |
Titel: | Dissecting sequential programs for parallelization - an approach based on computational units |
Sprache: | Englisch |
Publikationsjahr: | 29 Juni 2018 |
Verlag: | Wiley |
Titel der Zeitschrift, Zeitung oder Schriftenreihe: | Concurrency and Computation: Practice and Experience |
Jahrgang/Volume einer Zeitschrift: | 31 |
(Heft-)Nummer: | 5 |
Veranstaltungstitel: | 10th International Symposium on High-Level Parallel Programming and Applications |
Veranstaltungsort: | Valladolid, Spain |
Veranstaltungsdatum: | 10.-11. Juli 2017 |
DOI: | 10.1002/cpe.4770 |
Kurzbeschreibung (Abstract): | When trying to parallelize a sequential program, programmers routinely struggle during the first step: finding out which code sections can be made to run in parallel. While identifying such code sections, most of the current parallelism discovery techniques focus on specific language constructs. In contrast, we propose to concentrate on the computations performed by a program. In our approach, a program is treated as a collection of computations communicating with one another using a number of variables. Each computation is represented as a computational unit (CU). A CU contains the inputs and outputs of a computation, and the three phases of a computation are read, compute, and write. Based on the notion of CU, which ensures that the read phase executes before the write phase, we present a unified framework to identify both loop parallelism and task parallelism in sequential programs. We conducted a range of experiments on 23 applications from four different benchmark suites. Our approach accurately identified the parallelization opportunities in benchmark applications based on comparison with their parallel versions. We have also parallelized the opportunities identified by our approach that were not implemented in the parallel versions of the benchmarks and reported the speedup. |
Zusätzliche Informationen: | Art.No.: e4770 |
Fachbereich(e)/-gebiet(e): | 20 Fachbereich Informatik 20 Fachbereich Informatik > Parallele Programmierung |
Hinterlegungsdatum: | 20 Apr 2018 12:22 |
Letzte Änderung: | 11 Jun 2024 14:40 |
PPN: | 519038037 |
Export: | |
Suche nach Titel in: | TUfind oder in Google |
Frage zum Eintrag |
Optionen (nur für Redakteure)
Redaktionelle Details anzeigen |