首页> 外文期刊>International Journal of Combinatorial Optimization Problems and Informatics >AutOMP: An Automatic OpenMP Parallization Generator for Variable-Oriented High-Performance Scientific Codes
【24h】

AutOMP: An Automatic OpenMP Parallization Generator for Variable-Oriented High-Performance Scientific Codes

机译:AutOMP:用于面向变量的高性能科学代码的自动OpenMP并行化生成器

获取原文
           

摘要

OpenMP is a cross-platform API that extends C, C++ and Fortran and provides shared-memory parallelism platform for those languages. The use of many cores and HPC technologies for scientific computing has been spread since the 1990’s, and now takes part in many fields of research. The relative ease of implementing OpenMP, along with the development of multi-core shared memory processors (such as Intel Xeon Phi) makes OpenMP a favorable method for parallelization in the process of modernizing a legacy codes. Legacy scientific codes are usually holding large number of physical arrays which being used and updated by the code routines. In most of the cases the parallelization of such code focuses on loop parallelization. A key step in this parallelization is deciding which of the variables in the parallelized scope should be private (so each thread will hold a copy of them), and which variables should be shared across the threads. Other important step is finding which variables should be synchronized after the loop execution. In this work we present an automatic pre-processor that preforms these stages - AutOMP ( Automatic OpenMP ). AutOMP recognize all the variables assignments inside a loop. These variables will be private unless the assignment is of an array element which depend on the loop index variable. Afterwards, AutOMP finds the places where threads synchronization is needed, and which reduction operator is to be used. At last, the program provides the parallelization command to be used for parallelizing the loop.
机译:OpenMP是跨平台的API,它扩展了C,C ++和Fortran,并为这些语言提供了共享内存并行性平台。自1990年代以来,许多内核和HPC技术在科学计算中的使用已经普及,现在已参与许多研究领域。实施OpenMP相对容易,加上开发了多核共享内存处理器(例如Intel Xeon Phi),使得OpenMP成为在使遗留代码现代化的过程中进行并行化的一种理想方法。传统的科学代码通常包含大量物理数组,这些物理数组由代码例程使用和更新。在大多数情况下,此类代码的并行化集中在循环并行化上。并行化的关键步骤是确定并行化范围中的哪些变量应该是私有的(因此每个线程将持有它们的副本),以及哪些变量应在线程之间共享。另一个重要步骤是找到在循环执行后应同步哪些变量。在这项工作中,我们介绍了执行这些阶段的自动预处理器-AutOMP(自动OpenMP)。 AutOMP识别循环内的所有变量分配。除非赋值是依赖于循环索引变量的数组元素,否则这些变量将是私有的。之后,AutOMP找到需要线程同步的位置,以及要使用的归约运算符。最后,程序提供了用于并行化循环的并行化命令。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号