Abstract
Parallelization schemes are essential in order to exploit the full benefits of multi-core architectures, which have become widespread in recent years. In shared-memory architectures, the most comprehensive parallelization API is OpenMP. However, the introduction of correct and optimal OpenMP parallelization to applications is not always a simple task, due to common parallel shared-memory management pitfalls, architecture heterogeneity and the current necessity for human expertise in order to comprehend many fine details and abstract correlations. To ease this process, many automatic parallelization compilers were created over the last decade. [2] tested several source-to-source compilers and concluded that each has its advantages and disadvantages and no compiler is superior to all other compilers in all tests. This indicates that a fusion of the compilers’ best outputs under the best hyper-parameters for the current hardware setups can yield greater speedups. To create such a fusion, one should execute a computationally intensive hyper-parameter sweep, in which the performance of each option is estimated and the best option is chosen. We created a novel parallelization source-to-source multi-compiler named ComPar, which uses code segmentation-and-fusion with hyper-parameters tuning to achieve the best parallel code possible without any human intervention while maintaining the program’s validity. In this paper we present ComPar and analyze its results on NAS and PolyBench benchmarks. We conclude that although the resources ComPar requires to produce parallel code are greater than other source-to-source parallelization compilers – as it depends on the number of parameters the user wishes to consider, and their combinations – ComPar achieves the best performance overall compared to the serial code version and other tested parallelization compilers. ComPar is publicly available at: https://github.com/Scientific-Computing-Lab-NRCN/compar.
Original language | English |
---|---|
Title of host publication | OpenMP |
Subtitle of host publication | Portable Multi-Level Parallelism on Modern Systems - 16th International Workshop on OpenMP, IWOMP 2020, Proceedings |
Editors | Kent Milfeld, Lars Koesterke, Bronis R. de Supinski, Jannis Klinkenberg |
Publisher | Springer Science and Business Media Deutschland GmbH |
Pages | 247-262 |
Number of pages | 16 |
ISBN (Print) | 9783030581435 |
DOIs | |
State | Published - 2020 |
Event | 16th International Workshop on OpenMP, IWOMP 2020 - Austin, United States Duration: 22 Sep 2020 → 24 Sep 2020 |
Publication series
Name | Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) |
---|---|
Volume | 12295 LNCS |
ISSN (Print) | 0302-9743 |
ISSN (Electronic) | 1611-3349 |
Conference
Conference | 16th International Workshop on OpenMP, IWOMP 2020 |
---|---|
Country/Territory | United States |
City | Austin |
Period | 22/09/20 → 24/09/20 |
Bibliographical note
Publisher Copyright:© Springer Nature Switzerland AG 2020.
Funding
This work was supported by the Lynn and William Frankel Center for Computer Science. Computational support was provided by the NegevHPC project [1]. The authors would like to thank Reuven Regev Farag, Gilad Guralnik, Yoni Cohen, May Hagbi, Shlomi Tofahi, and Yoel Vaizman from the Department of Software Engineering-SCE for their part in the development of ComPar, and to Matan Rusanovsky1,2 for his fruitful comments and extensive evaluation of this work. Acknowledgments. This work was supported by the Lynn and William Frankel Center for Computer Science. Computational support was provided by the NegevHPC project [1]. The authors would like to thank Reuven Regev Farag, Gilad Guralnik, Yoni Cohen, May Hagbi, Shlomi Tofahi, and Yoel Vaizman from the Department of Software Engineering - SCE for their part in the development of ComPar, and to Matan Rusanovsky1,2 for his fruitful comments and extensive evaluation of this work.
Funders | Funder number |
---|---|
Department of Software Engineering-SCE | |
Gilad Guralnik | |
Lynn and William Frankel Center for Computer Science | |
Reuven Regev Farag |