期刊文献+

面向DSWP并行的OpenMP任务调度机制的扩展与实现 被引量:2

Extension to OpenMP Task Scheduling Mechanism for DSWP Parallelization and its Implementation
下载PDF
导出
摘要 多核处理器能够提升多线程程序的性能,但早已存在的诸多单线程程序无法从中获益,程序员也习惯于编写单线程程序。自动并行化技术是将单线程程序移植到多核上的重要手段,但是当循环中存在无法确定的数据依赖或复杂的控制流时,传统的自动并行化技术无法取得良好效果。Ottoni等人针对传统自动并行失败的循环提出了Decoupled Software Pipelining(DSWP)算法用以实现指令级的细粒度并行,但其需要对处理器体系结构的深入了解以及对核间通信队列和专用指令的硬件支持,并行性能和应用广泛性受到限制。基于OpenMP应用编程接口实现的DSWP并行不依赖于硬件上对核间通信队列和专用指令的支持,且不受平台的限制,但现有的OpenMP任务调度机制无法满足DSWP并行中对任务调度的需求。对现有的OpenMP任务调度机制进行扩展,增加了任务与线程绑定的属性,保证了基于OpenMP的DSWP并行程序的正确执行。在GCC的OpenMP运行库libgomp中扩展了任务绑定属性子句的功能,扩展后的GCC作为OpenMP DSWP程序的基础编译器,为自动并行提供支持。通过对基准测试集NPB3.3.1的测试表明,传统自动并行失败的循环,经OpenMP DSWP自动并行后在双核处理器上平均加速比达到1.23以上;使用添加了OpenMP DSWP算法的Open64编译器生成的并行程序,与仅使用传统自动并行方法的Intel编译器和Open64编译器所得程序相比,平均加速比分别高出22%和26%。 While multicore processors increase throughput for multi-programmed and multithreaded codes, many impor-tant applications are single threaded and thus are not benefited. Automatic parallelization techniques play an important role in migrating singe threaded applications to multicore platform. Unfortunately, the prevalence of control flow, recur-sire data structures, and general pointer accesses in ordinary programs renders the existing techniques unsuitable. Ottoni et al. proposed an automatic parallelization algorithm called Decoupled Software Pipelining (DSWP)to exploit fine- grained pipeline parallelism at the instruction level. But it requires knowledge of micro-architectural properties and hard- ware support of a communication channel and two special instructions. The improved DSWP algorithm based on OpertMP increases the parallel granularity and does not rely on hardware support any more, but the existing OpenMP task scheduling mechanism cannot satisfy the need of DSWP. A new binding clause for the task construct in OpenMP was proposed to extend the task scheduling mechanism. It guarantees the correctness of the OpenMP DSWP paralleliza-tion. The new clause is implemented in the GCC runtime library libgomp, which provides support for the compilation of OpenMP DSWP programs. The experimental results show that loops failed to be parallelized by existing techniques can be parallelized by the improved automatic parallelization algorithm and gain significant performance improvement on du-al-core CPU. The average performance speedup is up to 1.23. Compared with Intel and Open64 compilers, the compiler with the improved algorithm can increase execution efficiency evidently and the average speedup of the OpenMP DSWP programs generated by it increases more than 22% and 26%.
出处 《计算机科学》 CSCD 北大核心 2013年第9期38-43,共6页 Computer Science
基金 国家"核高基"重大专项(2009ZX01036-001-001-2)资助
关键词 自动并行化 OPENMP DSWP 任务调度机制 GCC Automatic parallelization, OpenMP, Decoupled software pipelining, Task scheduling mechanism, GCC
  • 相关文献

参考文献12

  • 1Benoit A,Melhem R,Renaud-Goud P,et al.Power-aware Manhattan routing on chip multiprocessors[C]∥Proceedings of 26th International Parallel and Distributed Processing Symposium.Shanghai,2012:189-200.
  • 2Jin Hao-qiang,Jespersen D,Mehrotra P,et al.High performance computing using MPI and OpenMP on multi-core parallel systems[J].Parallel Computing,2011,37(9):562-575.
  • 3丁锐,赵荣彩,韩林.基于主导值的计算和数据自动划分算法[J].计算机科学,2012,39(3):290-294. 被引量:5
  • 4Allen R,Kennedy K.Optimizing compilers for modern architectures:a dependence-based approach[M].California:Morgan Kaufmann Publisher,2001:63-68.
  • 5Lin Yu-te,Wang Shao-chung,Shih Wen-li,et al.Enable OpenCL compiler with Open64infrastructures[C]∥Proceedings of 13th IEEE International Conference on High Performance Computing and Communications.Alberta,2011:863-868.
  • 6Gerber R,Smith K B,Bik A J C,et al.The sofware optimization cookbook:high-performance recipes for IA-32platforms(2st ed)[M].Hillsboro:Intel Press,2006:13-27.
  • 7Ottoni G,Rangan R,Stoler A,et al.Automatic thread extraction with decoupled software pipelining[C]∥Proceedings of the 38th Annual IEEE/ACM International Symposium on Microarchitecture.Washington,DC,2005:105-118.
  • 8August D I,Connors D A,Mahlke S A,et al.Integrated predication and speculative execution in the IMPACT EPIC architecture[C]∥Proceedings of the 25th International Symposium on Computer Architecture.Barcelona,1998:227-237.
  • 9富弘毅,丁滟,宋伟,杨学军.一种利用并行复算实现的OpenMP容错机制[J].软件学报,2012,23(2):411-427. 被引量:7
  • 10Thoman P,Jordan H,Pellegrini S,et al.Automatic OpenMPloop scheduling:a combined compiler and runtime approach[C]∥Proceedings of 8th International Workshop on OpenMP.Rome,2012:88-101.

二级参考文献25

  • 1夏军,杨学军.基于数据空间融合的全局计算与数据划分方法[J].软件学报,2004,15(9):1311-1327. 被引量:7
  • 2Anderson J M. Automatic computation and data decomposition for multiproeessors [D]. US: Stanford University, 1997.
  • 3Kennedy K,Kremer U. Automatic Data Layout for Distributed- Memory Machines [J]. ACM Transactions on Programming Languages and Systems, 1998,20 (4) : 869-916.
  • 4韩林.面向分布存储结构的并行分饵一致性优化技术研究[D].郑州:解放军信息工程大学,2008.
  • 5Lee Pei-zong. Automatic data and computation decomposition on distributed memory parallel eomputers[J]. ACM Transactions on Programming Languages and Systems, 2002,24 (1) : 1-50.
  • 6Brian S A. Enabling automatic parallelization of industrial-grade applications [D]. US: Purdue University, 2010.
  • 7Zhen Cao, Yuan Dong, Wang Sheng-yuan. Domain-specific pattern matching based automatic parallelization demonstrated by 2-D prestack migration: Parallel and Distributed Systems(IC- PADS) [C]// 15th International Conference. Shenzhen, China, 2009:973-980.
  • 8Anderson J M, Lam M S. Global optimizations for parallelism and locality on scalable parallel machines [C] // Proceedings of the ACM SIGPLAN' 93 Conference on Programming Language Design and Implementation. Albuquerque, New Mexico, USA, 1993:112-125.
  • 9Anderson J M, Lam M S. Data and computation transformations for mulfiprocessors[C]//Proceedings of the 5th ACM/SIGP- LAN Symposium on Principles and Practice of Parallel Programruing. Santa Barbara,California, USA, 1995 : 166-178.
  • 10Lim A W, Lain M S. Maximizing parallelism and minimizing synchronization with affine transforms[C]//Proceedings of the Conference Record of the 24th ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages. Paris, France, 1997:201-214.

共引文献10

同被引文献10

引证文献2

二级引证文献5

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部