[发明专利]一种快速开发异构并行程序的方法有效
申请号: | 201410300760.4 | 申请日: | 2014-06-27 |
公开(公告)号: | CN104035781B | 公开(公告)日: | 2017-06-23 |
发明(设计)人: | 刘铁刚;何晓峰;赵越 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种快速开发异构并行程序的方法,涉及CPU串行程序的性能分析和异构并行程序的移植首先对CPU串行程序进行性能和算法分析,定位程序性能瓶颈和其可并行性;然后在原有代码的基础上插入OpenACC预编译指令,得到可在异构并行环境上执行的异构并行代码;将代码根据软硬件平台指定参数编译执行,根据程序运行结果确定是否需要进一步的优化。这种快速开发异构并行程序方法和现有的技术相比,其优势在于1).无需重构现有代码;2).多语言支持,支持C/C++和FORTRAN等语言;3).跨平台和硬件,支持Linux、Windows和Mac等操作系统平台,支持英伟达、AMD的GPU、Intel Xeon Phi等硬件。本发明能够高效的对现有程序进行并行化,使程序充分利用异构系统的计算能力,实用性强,易于推广。 | ||
搜索关键词: | 一种 快速 开发 并行 程序 方法 | ||
【主权项】:
一种快速开发异构并行程序的方法,其特征在于,所述方法具体包括以下步骤:步骤一:进行CPU串行程序性能分析,包括测试当前串行程序的性能瓶颈、分析算法或代码块的可并行性等;步骤二:针对性能热点和可并行化代码块,插入OpenACC指令对其进行异构并行化;根据算法特点和数据特点使用合适的指令将密集计算部分转移到加速器上执行;步骤三:针对程序执行的软硬件平台,使用支持OpenACC的编译器对异构并行代码进行编译,得到可执行文件;步骤四:在异构环境上执行并行化的程序,收集性能数据;步骤五:根据性能数据,确定是否需要进行进一步优化;如果需要再次优化,优化手段包括优化数据结构、优化通信交互方式等;如果性能未达到要求,可在以下方面进行进一步优化:A)插入更多的并行指令以更为细粒度的方式引导编译器执行深层优化;B)若有新的程序性能瓶颈出现,分析其算法的并行性和并行粒度;如果可并行化,则在相应的代码段插入OpenACC预编译指令进行并行化;C)主机和加速器之间的数据复制在保证正确性的情形下使用异步复制方式;D)预先分配数据空间,减少空间分配和初始化带来的程序性能开销。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410300760.4/,转载请声明来源钻瓜专利网。
- 上一篇:电动剪指甲机
- 下一篇:一种拉链包防盗报警装置