Abstract
Parallelization schemes are essential in order to exploit the full benefits of multi-core architectures, which have become widespread in recent years, especially for scientific applications. In shared memory architectures, the most common 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 and architecture heterogeneity. To ease this process, many automatic parallelization compilers were created. In this paper we focus on three source-to-source compilers—AutoPar, Par4All and Cetus—which were found to be most suitable for the task, point out their strengths and weaknesses, analyze their performances, inspect their capabilities and suggest new paths for enhancement. We analyze and compare the compilers’ performances over several different exemplary test cases, with each test case pointing out different pitfalls, and suggest several new ways to overcome these pitfalls, while yielding excellent results in practice. Moreover, we note that all of those source-to-source parallelization compilers function in the limits of OpenMP 2.5—an outdated version of the API which is no longer in optimal accordance with nowadays complicated heterogeneous architectures. Therefore we suggest a path to exploit the new features of OpenMP 4.5, as it provides new directives to fully utilize heterogeneous architectures, specifically ones that have a strong collaboration between CPUs and GPGPUs, thus it outperforms previous results by an order of magnitude.
Original language | English |
---|---|
Pages (from-to) | 1-31 |
Number of pages | 31 |
Journal | International Journal of Parallel Programming |
Volume | 48 |
Issue number | 1 |
DOIs | |
State | Published - 1 Feb 2020 |
Bibliographical note
Publisher Copyright:© 2019, Springer Science+Business Media, LLC, part of Springer Nature.
Funding
This work was supported by the Lynn and William Frankel Center for Computer Science. Computational support was provided by the NegevHPC project [ 44 ].
Funders | Funder number |
---|---|
Lynn and William Frankel Center for Computer Science |
Keywords
- AutoPar
- Automatic parallelism
- Cetus
- Par4All
- Parallel programming