一种生成并行程序的方法及装置制造方法及图纸

技术编号:19634701 阅读:40 留言:0更新日期:2018-12-01 15:29
本发明专利技术实施例公开了一种调整程序执行顺序的方法及装置,该方法包括:获取目标程序的当前执行顺序,所述目标程序包括第一执行语句和第二执行语句,所述第一执行语句和所述第二执行语句处于同一串行执行支路,且所述第二执行语句对所述第一执行语句不存在依赖关系,所述依赖关系是指所述第二执行语句的执行依赖所述第一执行语句的执行结果;根据所述依赖关系,将所述目标程序的当前执行顺序调整为目标执行顺序,其中,所述第一执行语句和所述第二执行语句处于不同的并行执行支路。由此可见,当串行执行的两条执行语句不存在依赖关系时可以自动调整为并行执行,提高了开发并行程序的工作效率,降低了开发并行程序的难度。

A Method and Device for Generating Parallel Programs

The embodiment of the present invention discloses a method and device for adjusting the execution order of a program, which includes acquiring the current execution order of the target program, the target program including the first execution statement and the second execution statement, the first execution statement and the second execution statement are in the same serial execution branch, and the said method includes acquiring the current execution order of the target program, and the first execution statement and the second execution statement are The second execution statement has no dependency on the first execution statement, which means that the execution of the second execution statement depends on the execution result of the first execution statement; according to the dependency relationship, the current execution order of the target program is adjusted to the target execution order, in which the first execution order is the first execution order. The line statement and the second execution statement are in different parallel execution branches. Thus, when there is no dependency between the two execution statements executed serially, they can be automatically adjusted to parallel execution, which improves the efficiency of developing parallel programs and reduces the difficulty of developing parallel programs.

【技术实现步骤摘要】
一种生成并行程序的方法及装置
本专利技术涉及软件程序自动优化
,尤其涉及一种生成并行程序的方法及装置。
技术介绍
计算机程序或者软件程序(通常简称程序)是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。最初的计算机只具有单核体系架构的处理器,基于此,计算机程序员编写的程序为串行程序,即编写好的程序只有一条串行执行支路,即程序中所有执行语句均处于上述串行执行支路中,其中,相邻的两条执行语句中后一条执行语句的执行并不一定依赖前一条执行语句的执行结果。而目前计算机大多使用多核多个中央处理器(英文:CentralProcessingUnit,简称:CPU),即多个CPU,每个处理器中集成两个或多个完整的计算引擎,为方便解决大规模的计算问题,可以挖掘问题求解过程中的并行性,寻求并行算法与并行机器体系结构的最佳匹配和映射,合理组织并行任务,减少额外消息传递和数据移动开销,然后就产生了并行计算,也就是说程序员需要开发并行程序。专利技术人经过研究发现,计算机程序员以串行程序思路开发软件的工作效率更高,而计算机程序员以并行本文档来自技高网...

【技术保护点】
1.一种调整程序执行顺序的方法,其特征在于,包括:获取目标程序的当前执行顺序,所述目标程序包括第一执行语句和第二执行语句,所述第一执行语句和所述第二执行语句处于同一串行执行支路,且所述第二执行语句对所述第一执行语句不存在依赖关系,所述依赖关系是指所述第二执行语句的执行依赖所述第一执行语句的执行结果;根据所述依赖关系,将所述目标程序的当前执行顺序调整为目标执行顺序,其中,所述第一执行语句和所述第二执行语句处于不同的并行执行支路。

【技术特征摘要】
1.一种调整程序执行顺序的方法,其特征在于,包括:获取目标程序的当前执行顺序,所述目标程序包括第一执行语句和第二执行语句,所述第一执行语句和所述第二执行语句处于同一串行执行支路,且所述第二执行语句对所述第一执行语句不存在依赖关系,所述依赖关系是指所述第二执行语句的执行依赖所述第一执行语句的执行结果;根据所述依赖关系,将所述目标程序的当前执行顺序调整为目标执行顺序,其中,所述第一执行语句和所述第二执行语句处于不同的并行执行支路。2.根据权利要求1所述的方法,其特征在于,所述根据所述依赖关系,将所述目标程序的当前执行顺序调整为目标执行顺序,具体包括:根据所述依赖关系,将所述目标程序的当前执行顺序调整为第一执行顺序,其中,所述第一执行语句和所述第二执行语句处于不同的并行执行支路;获取调整为第一执行顺序的目标程序中并行执行支路的数量;若所述调整为第一执行顺序的目标程序中并行执行支路的数量大于预设阈值,根据所述依赖关系和所述预设阈值,将所述目标程序的第一执行顺序调整为目标执行顺序,所述调整为目标执行顺序的目标程序中并行执行支路的数量不大于所述预设阈值,所述预设阈值是根据所述目标程序需运行平台的并行计算资源设定的;若所述调整为第一执行顺序的目标程序中并行执行支路的数量不大于预设阈值,则将所述第一执行顺序确定为所述目标程序的目标执行顺序。3.根据权利要求2所述的方法,其特征在于,所述根据所述依赖关系和所述预设阈值,将所述目标程序的第一执行顺序调整为目标执行顺序,具体包括:根据所述预设阈值,从所述调整为第一执行顺序的目标程序中并行执行支路的集合中选取并行执行支路,获得第一并行执行支路集合,所述第一并行执行支路集合中并行执行支路的数量不大于所述预设阈值;根据所述依赖关系和所述第一并行执行支路集合,将所述目标程序的第一执行顺序调整为目标执行顺序。4.根据权利要求2所述的方法,其特征在于,所述根据所述依赖关系和所述预设阈值,将所述目标程序的第一执行顺序调整为目标执行顺序,具体包括:获取所述调整为第一执行顺序的目标程序中并行执行支路中各执行语句在所述并行计算资源上或异构并行计算资源不同架构上的计算时间;根据所述并行执行支路中各执行语句的计算时间,对所述并行执行支路中各执行语句进行合并和/或分拆,获得第二并行执行支路集合,所述第二并行执行支路集合中并行执行支路的数量不大于所述预设阈值;根据所述依赖关系和所述第二并行执行支路集合,将所述目标程序的第一执行顺序调整为目标执行顺序。5.根据权利要求4所述的方法,其特征在于,所述合并和/或分拆采用优化算法,所述算法包括模拟退火算法、遗传算法、蚁群算法和粒子群算法。6.一种调整程序执行顺序的装置,其特征在于,包括:获取当前执行顺序单元,用于获取目标...

【专利技术属性】
技术研发人员:吴玉平陈岚郭叶
申请(专利权)人:中国科学院微电子研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1