欢迎来到天天文库
浏览记录
ID:34509339
大小:401.05 KB
页数:5页
时间:2019-03-07
《openmp并行程序的编译器优化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第32卷第24期计算机工程2006年12月Vol.32No.24ComputerEngineeringDecember2006软件技术与数据库文章编号10003428(2006)24003704文献标识码A中图分类号TP311OpenMP并行程序的编译器优化张平李清宝赵荣彩(解放军信息工程大学信息工程学院郑州450002)摘要OpemMP标准以其良好的可移植性和易用性被广泛应用于并行程序设计该文讨论了OpenMP并行程序的编译器优化算法在编译过程中通过并行区合并和扩展实现并行区重构并在并行区中实现了基于跨处理器相关图的barrier同步优化分析验证表明这些优化策略减少了并行
2、区和barrier同步的数目有效地提高了OpenMP程序的并行性能关键词跨处理器相关barrier同步并行区重构数据相关图CompilerOptimizationAlgorithmforOpenMPParallelProgramZHANGPing,LIQingbao,ZHAORongcai(SchoolofInformationandEngineering,PLAInformationandEngineeringUniversity,Zhengzhou450002)AbstractOpenMPiswidelyusedinparallelprogrammingforitspo
3、rtabilityandsimplicity.ThispaperintroducesthecompileroptimizationalgorithmsforOpenMPparallelprogram.Incompiling,parallelregionsarereconstructedthroughextensionandcombination.Andabarriersynchronizationoptimizationalgorithmbasedoncross-processordependencegraphisdevelopedtoeliminateredundantb
4、arriersineachparallelregion.Analysisshowthatthesestrategiesreducethenumberofparallelregionandbarriersynchronization,andcanimprovetheparallelperformanceofOpenMPprogram.KeywordsCross-processordependence;Barriersynchronization;Parallelregionreconstruction;DatadependencegraphOpenMP是共享内存并行程序设计的
5、工业标准其目标在ompparallel,ompfor的结束都隐含着一个barrier同步是为具有统一地址空间的并行系统提供可移植可扩展的开点为减少不必要的同步OpenMP提供了nowait子句指发接口它通过编译指示和运行时库函数扩展CC++和示可以不进行barrier同步Fortran语言支持并行1.2OpenMP的执行模式OpenMP为程序员提供了一种简单的并行程序设计方OpenMP程序遵循fork-and-join执行模式(如图1)程序法可以在串行程序的基础上方便地开发出并行程序但应从主线程开始执行当遇到并行结构主线程启动(创建或唤用程序员往往缺乏对程序并行性的分析(如
6、数据相关性分析醒)一组工作线程并行执行其中的语句当遇到工作共享结和通信分析等)许多OpenMP程序的性能也并不理想并行构工作负荷由线程组中的各个线程分担并行区结束线效率较低另一方面如果要求程序员在编写并行程序时进程组中的线程同步工作线程终止(消亡或睡眠)主线程继行深入的程序分析就会增加程序设计的难度违背OpenMP续执行的易用性原则也是不现实的因此我们考虑在编译过程在程序执行过程中可多次执行fork-and-join过程需[1]中实现OpenMP程序的优化要在串行执行和并行执行间进行多次切换实验表明本文讨论了循环级并行的OpenMP并行程序的编译器优OpenMP执行过程中串
7、行执行和并行执行切换带来的额外化策略通过并行区的扩展和合并重构并行区减少并行区执行开销是影响OpenMP程序性能的一个重要因素的数目在重构后的并行区中依据计算的分配调度进行跨处理器相关性分析建立跨处理器相关图消除冗余barrier主线程同步#pragmaompparallel{1OpenMP并行程序OpenMP利用编译指示运行时库函数和环境变量描述主线程线程1线程2线程3程序的并行特性}1.1OpenMP编译指示OpenMP的编译指示分为并行结构工作共享结构同主线程步编译数据环境指示等几类常用的编译指示包括图1Op
此文档下载收益归作者所有