[发明专利]并行程序编译方法及系统无效
申请号: | 200810224147.3 | 申请日: | 2008-10-24 |
公开(公告)号: | CN101387965A | 公开(公告)日: | 2009-03-18 |
发明(设计)人: | 胡长军;李建江;赵冲冲;王珏 | 申请(专利权)人: | 北京科技大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并行 程序 编译 方法 系统 | ||
技术领域
本发明涉及并行编译领域,尤其是指一种并行程序编译方法及系统。
背景技术
核外并且非规则计算的运行库系统能够将核外和非规则计算结合起来,为用户解决核外并且非规则计算问题。在并行计算机上运行大规模科学计算应用程序时,常常涉及到非规则分布的数据元素的所有权问题。这些应用会导致需要通过一层或者多层的间接数组来访问数据元素,在这种情况下数据元素的存取依赖于间接数组,而大多数间接数组元素的值只有在程序运行时才可知,这类问题就属于非规则计算问题。同时,大规模并行应用中涉及的数据量也是惊人的,内存容量往往不能满足涉及大数据量计算问题的存储要求。当程序运行时,某个时刻只能有部分数据被调入内存并参与计算,并且在适当的时候写回外存,通过内外存的数据交换来完成整个计算,这就是核外计算问题。
在核外、非规则计算问题上,前人对其模型及优化技术方面做了部分研究,但始终没有将核内与核外,规则与非规则计算问题在统一框架下进行考虑。由于核内、核外、规则、非规则问题常常并存于实际的大规模计算问题中,统一考虑将有利于最优并行策略和优化技术的选择以及系统性能的全局优化。
在核外非规则领域中,数据划分与重分布、任务划分、通信集生成和负载均衡这四个并行及优化策略方面已经有部分成果
本发明要解决两个方面的问题:优化方法和I/O子系统问题。进一步说,对非规则计算的研究要致力于处理核外数组的存取,这可以通过将核外数组影射为内存中的核内数组的方法来实现。通过建立全局数组和局部数组的对应关系,根据数据的存取模式动态地产生通信,并且着重考虑动态均衡负载问题来实现。依据上述概念,一些数据结构和功能函数被集成为一个运行库系统,由此来简化实现核外非规则计算问题。
发明内容
本发明的目的是提供一种用于集群计算机或SMP计算机的并行程序编译方法及系统,可以将解决核外问题与解决非规则问题相结合,借助于该运行库系统,能够简化核外非规则并行程序的设计,从而提高生产率。
为了实现上述目的,本发明提供了一种用于集群计算机或SMP计算机的并行程序编译方法,包括以下步骤:
步骤1、对待处理数据进行划分;
步骤2、根据输入的数据分布方式对划分后的数据进行数据重分布;
步骤3、根据输入的任务分配方式对循环进行迭代划分;
步骤4、根据步骤3的循环迭代划分结果,对待处理的索引数组元素进行重分布;
步骤5、对通信和I/O操作的进行观测,并生成预处理代码段;
步骤6、根据步骤5的通信和I/O操作观测结果,生成对应的计算和通信和I/O操作的代码段。
进一步的,步骤1具体为:依据预设或默认的划分策略,将数据段中的核外或核内数据数组和索引数组划分到各个计算节点,并将划分结果保存在转换表中。
进一步的,步骤2具体包括:
步骤2A:为了将原来的数据分布重新映射到步骤1所生成的数据划分结果上,先将本地节点临时缓冲区中下次计算不需要的数据存储到磁盘上;
步骤2B:生成MPI_IO操作的自定义数据类型,来读写磁盘上的非规则数据;
步骤2C:根据步骤2B生成的数据类型,通过磁盘读取或者通信调度的方式,取得不在本地节点内存中的数据,并将其存储在本地节点的临时缓冲区中;
步骤2D:修改数据中索引数组的下标,从原来的全局下标改为指向本地节点的数据缓冲区或本地临时缓冲区,将此变更存在转换表中,并生成把此转换表广播到各个节点中的代码。
进一步的,步骤3具体为:根据用户输入或默认设置的“拥有者计算”原则或“大多数拥有者计算”原则或“最小化通信”原则,对循环迭代代码段进行计算划分,将要计算本次数据段的循环迭代代码段划分到各个处理器上。
进一步的,步骤4具体为:根据步骤3产生的循环迭代代码段划分结果,调整索引数组的元素,生成代码将数据移动到有对应计算操作的节点上,并进行组通信操作。
进一步的,步骤5具体为:为了优化下一个计算步骤中引入的通信调用和磁盘I/O操作,检测节点之间将发生的通信图和节点的I/O操作,并进行预处理,产生优化后的通信图和I/O操作。
进一步的,步骤6具体为:根据步骤5的通信和I/O操作观测结果,生成对应的预通信和I/O操作和计算的代码段,然后生成将计算结果传到其他有关节点的通信代码段。
为了实现上述目的,本发明还提供了一种用于集群计算机或SMP计算机的并行程序编译系统,包括:
数据划分模块,用于对待处理数据进行划分;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科技大学,未经北京科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810224147.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:开关装置
- 下一篇:植物箱和使用该植物箱的园艺方法