【24h】

An OpenMP Based Parallelization Compiler for C Applications

机译:用于C应用程序的基于OpenMP的并行化编译器

获取原文
获取原文并翻译 | 示例

摘要

Directive-drive programming models, such as OpenMP, are one solution for exploiting the potential of multicore architectures, and enable developers to accelerate software applications by adding annotations on for-type loops and other code regions. However, manual parallelization of applications is known to be a non trivial and time consuming process, requiring parallel programming skills. Automatic parallelization approaches can reduce the burden on the application development side. This paper presents an OpenMP based automatic parallelization compiler, named AutoPar-Clava, for automatic identification and annotation of loops in C code. By using static analysis, parallelizable regions are detected, and a compilable OpenMP parallel code from the sequential version is produced. In order to reduce the accesses to shared memory by each thread, each variable is categorized into the proper OpenMP scoping. Also, AutoPar-Clava is able to support reduction on arrays, which is available since OpenMP 4.5. The effectiveness of AutoPar-Clava is evaluated by means of the Polyhedral Benchmark suite, and targeting a N-cores 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 (i.e., icc), ROSE, TRACO, and Cetus.
机译:指令驱动程序编程模型(例如OpenMP)是一种利用多核体系结构潜力的解决方案,它使开发人员可以通过在for类型的循环和其他代码区域上添加注释来加速软件应用程序。但是,应用程序的手动并行化是一个不平凡且耗时的过程,需要并行编程技能。自动并行化方法可以减轻应用程序开发方面的负担。本文提出了一种基于OpenMP的自动并行化编译器,名为AutoPar-Clava,用于自动识别和注释C代码中的循环。通过使用静态分析,检测到可并行化的区域,并从顺序版本中生成可编译的OpenMP并行代码。为了减少每个线程对共享内存的访问,将每个变量分类为适当的OpenMP作用域。此外,AutoPar-Clava能够支持减少阵列,自Ope​​nMP 4.5开始提供。通过多面体基准套件评估了AutoPar-Clava的有效性,并针对基于x86的N核计算平台。取得的结果非常有希望,并且可以与密切相关的自动并行编译器(例如Intel C / C ++编译器(即icc),ROSE,TRACO和Cetus)进行比较。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号