[发明专利]基于共享数据的单程序多数据型程序自动并行化方法无效
申请号: | 96118769.7 | 申请日: | 1996-10-10 |
公开(公告)号: | CN1180192A | 公开(公告)日: | 1998-04-29 |
发明(设计)人: | 康继昌;朱怡安;肖骊;冯百明 | 申请(专利权)人: | 西北工业大学 |
主分类号: | G06F9/00 | 分类号: | G06F9/00 |
代理公司: | 航空工业部西北专利事务所 | 代理人: | 宋仙波 |
地址: | 710072 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 共享 数据 程序 多数 自动 并行 方法 | ||
本发明专利涉及一种高效的串行源程序自动并行化技术,可将单程序多数据(Single Program Multiple Data,SPMD)型串行源程序自动地转换为并行程序,其属于并行计算机技术领域。
现有公开的程序自动并行化技术主要基于传统向量化的相关性分析和程序转换的方法。如,美国SGI公司的Challenge 4L系统,有4个CPU,通过总线共享主存,配有自动并行化工具软件PFA(Power FORTRAN Accelerator)。Perfect Benchmark的12种测试程序的加速比测试结果,其不足之处:6种小于1(4机并行,理想加速比为4,加速比小于1表示效果不如单机);4种稍大于1;1种为1.81,共有11种效率不到50%。据报导,上海复旦大学的自动并行化工具软件AFT于1996年6月16日通过技术鉴定(国际电子报1996年6月17日)。AFT进一步采用了过程间分析,符号分析,全局分析等技术,使并行化效果超过了国际同类先进商业软件系统,在一些关键技术上达到了国际领先水平。在与PFA同样的条件下,12种测试程序的加速比测试结果,其不足之处:2种小于1;6种稍大于1;共有8种效率不超过50%。综上可见,现有的程序自动并行化技术十分复杂,效果不够理想。PFA和AFT都要求有共享主存(或共享存储器)硬件的支持。当节点机(以下简称节点)数增加时,访问共享主存将产生通信瓶颈,降低程序运行的效率。因此,两者都不适用于节点数较多的并行机系统。
本发明专利目的是为了避免以上所述的技术不足之处,提出了一种基于共享数据的单程序多数据型程序自动并行化方法。
本发明专利的目的内容通过以下措施来实现:
(1)数组的自动均衡划分和分配
数组划分的原则是,各节点的计算量要尽可能均衡,而通信量尽可能小。一个二维(或三维)数组,要分配给n个节点去计算,可在X(或者Y)方向上均匀地划分为n份,依次分配给n个节点。
同理,也可以在X和Y两个方向,或X,Y和Z三个方向上划分,分别称为二维划分或三维划分。
(2)生成节点源程序“毛坯”
由于串行程序属于SPMD模型,每个节点源程序和串行源程序基本相同,只是计算的数据不同,故可将串行源程序拷贝n份,分别供n个节点生成源程序之用。各个节点要负责计算所分配数组范围中的数据,因此依次修改拷贝中有关循环程序中的上、下限,即生成各节点源程序“毛坯”。
(3)自动寻找节点间的共享数据
分析节点源程序“毛坯”流程,扫描有关语句中数组下标,找出不属本节点的数据,即为与邻近节点的共享数据,用表记录其名称,属性,宽度及共享方向等,供生成通信命令之用。
(4)同步点定位
一帧计算结束即应通信,称为同步点,位于串行源程序最外层循环的末尾,该末尾语句的标号,即为同步点标号,供自动插入通信和同步命令之用;也可以通过分析源程序控制流程,自动定位最外层循环末尾处的同步点。
(5)扩充高级语言编译程序的通信和同步库函数
并行程序比串行程序要增加通信和同步功能,这可通过扩充高级语言编译程序的库函数来实现。扩充的方法与硬件结构有关。调用通信库函数或同步库函数就是通信命令或同步命令。
(6)自动生成和插入通信和同步命令
根据共享数据表中的共享数据及其有关参数,再利用所扩充的通信和同步库函数,即可自动生成通信和同步命令,并插入各节点源程序的同步点处。
(7)数组范围重定义
每个节点运行过程中要访问的数组范围只需包括本节点负责计算的数据和计算所需的共享数据,节点源程序定义数组范围应包括两者之和。而原串行源程序定义的数组范围包括了全部网格点,这就是数组范围重定义的任务。进行数组范围重定义可以节约节点的存储空间。
利用以上技术手段,就可生成各节点源程序,也即实现了程序的自动并行化。每个节点的源程序由传统的串行编译程序,依次编译生成各节点的目标程序。将各节点的目标程序依次加载到各节点中,即可并行运行了。
本发明专利与现有技术对比,有如下优点:
(1)构思方案新颖,方法设计合理,具有创造性,可将SPMD型计算程序自动并行化,生成的并行程序运行效率高。
(2)生成的并行程序运行流程与原串行程序完全一致,故可保证并行程序的正确性。
(3)并行程序运行效率决定于每个节点的“计算/通信”比,计算的数据越多,运行的效率就越高。尤其是对于大型计算程序并行化的效率更高。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/96118769.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:汉字离合码编码方法
- 下一篇:复方杜仲酒及其配制方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置