当前位置: X-MOL 学术J. Supercomput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Source-to-source compilation targeting OpenMP-based automatic parallelization of C applications
The Journal of Supercomputing ( IF 3.3 ) Pub Date : 2019-12-17 , DOI: 10.1007/s11227-019-03109-9
Hamid Arabnejad , João Bispo , João M. P. Cardoso , Jorge G. Barbosa

Directive-driven programming models, such as OpenMP, are one solution for exploring the potential parallelism when targeting multicore architectures. Although these approaches significantly help developers, code parallelization is still a non-trivial and time-consuming process, requiring parallel programming skills. Thus, many efforts have been made toward automatic parallelization of the existing sequential code. This article presents AutoPar-Clava, an OpenMP-based automatic parallelization compiler which: (1) statically detects parallelizable loops in C applications; (2) classifies variables used inside the target loop based on their access pattern; (3) supports reduction clauses on scalar and array variables whenever it is applicable; and (4) generates a C OpenMP parallel code from the input sequential version. The effectiveness of AutoPar-Clava is evaluated by using the NAS and Polyhedral Benchmark suites and targeting a x86-based computing platform. The achieved results are very promising and compare favorably with closely related auto-parallelization compilers, such as Intel C/C++ Compiler (icc), ROSE, TRACO and CETUS.

中文翻译:

针对基于 OpenMP 的 C 应用程序自动并行化的源到源编译

指令驱动的编程模型(例如 OpenMP)是一种解决方案,用于在面向多核架构时探索潜在的并行性。尽管这些方法对开发人员有很大帮助,但代码并行化仍然是一个重要且耗时的过程,需要并行编程技能。因此,已经为现有顺序代码的自动并行化做出了许多努力。本文介绍 AutoPar-Clava,一种基于 OpenMP 的自动并行化编译器,它: (1) 静态检测 C 应用程序中的可并行化循环;(2) 根据访问模式对目标循环中使用的变量进行分类;(3) 在适用时支持标量和数组变量的归约子句;(4) 根据输入的顺序版本生成 C OpenMP 并行代码。AutoPar-Clava 的有效性通过使用 NAS 和 Polyhedral Benchmark 套件并针对基于 x86 的计算平台进行评估。取得的结果非常有希望,与密切相关的自动并行化编译器(如 Intel C/C++ Compiler (icc)、ROSE、TRACO 和 CETUS)相比毫不逊色。
更新日期:2019-12-17
down
wechat
bug