一种基于MIC架构处理器的并行度优化方法与流程

文档序号:17357094发布日期:2019-04-09 21:47阅读:277来源:国知局
一种基于MIC架构处理器的并行度优化方法与流程

本发明涉及处理器架构领域,更具体地,涉及一种基于mic架构处理器的并行度优化方法。



背景技术:

在计算机体系结构中,并行度是指指令并行执行的最大条数。在设计并行程序时,我们可以简单地把并行度认为是在多核/众核处理器上能同时执行的线程数/进程数。现有的并行设计方法在计算效率上任然没有较大的提升,这也造成了现有的并行度设计方法很难有效提升程序的性能。



技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷,提供一种基于mic架构处理器的并行度优化方法。

本发明旨在至少在一定程度上解决上述技术问题。

本发明的目的是指导软件开发人员已较短开发周期,较低开发成本,快速对应用程序的热点进行并行度优化,缩短了程序执行时间,提高了应用程序的整体计算效率。

为解决上述技术问题,本发明的技术方案如下:一种基于mic架构处理器的并行度优化方法,包括以下步骤:

s1:热点判断,确定函数占用的热点;

s2:根据函数占用的热点比例判断是否有移植的可行性;

s3:判断程序是否有并行化的空间;

s4:分析循环迭代体;

s5:选择并行方式。

优选地,所述s1热点判断,确定函数占用的热点是采用自顶向下的方法找到热点。

优选地,所述s2中根据函数占用的热点比例判断是否有移植的可行性的具体步骤为:

s21:查看主函数调用的子函数,确定该子函数的时间占用是否占总运行时间的比例;

s22:如果子函数的运行时间时间占总运行时间的比例高于40%,则该子函数可以并行;

s23:如果可以并行调用,则对其进行并行移植,如果不能并行,则查看该子函数调用的子函数能否被并行调用,直到最底层函数。

优选地,所述s3中判断函数并行化空间具体为:如果程序中有循环,则可并行化。

优选地,所述s4中分析循环迭代体包括:循环迭代次数、代体运行时间、迭代与迭代之间是否有数据依赖。

优选地,所述s5中选取并行方式具体为:如果迭代次数较低,每个迭代代码比较复杂,迭代之间没有或只有很少的数据交换,则选择粗粒度并行;如果并发度高,占用资源相对较少,单线程工作量相对较小,代码段比较独立,与其他部分数据交换少则选择细粒度并行。

优选的,本方法执行在mic架构的处理器上,并且使用的编译器是支持mic架构及其指令集的任意编译器。

与现有技术相比,本发明技术方案的有益效果是:本发明只对较大的热点进行分析,而放弃较小的热点,避免造成移植成本太高,造成的经济上的损失;并且对迭代次数较低,迭代代码比较复杂,迭代之间没有或只有很少的数据交换的代码选择粗粒度并行,对并发度高,占用资源相对较少,单线程工作量相对较小,代码段比较独立与其他部分数据交换少的代码选择细粒度并行,这样可以有效地分配计算资源,从而提高了应用程序的整体计算效率。

附图说明

图1为本发明流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示本发明流程图,其主要步骤包括:

s1:热点判断,确定函数占用的热点;

s2:根据函数占用的热点比例判断是否有移植的可行性;

s3:判断程序是否有并行化的空间;

s4:分析循环迭代体;

s5:选择并行方式。

在具体实施过程中,首先进行热点判断,用自顶向下的方法找到函数占用的热点;查看主函数调用的子函数,分析该子函数的时间占用是否占总运行时间的比例,如果子函数的运行时间时间占总运行时间的比例高于40%,则该子函数可以并行;如果能够并行调用,则对其进行并行移植,如果不能并行,则查看该子函数调用的子函数能否被并行调用,直到最底层函数;实际过程中,只对热点较高的函数进行分析。其次查看代码中是否有循环或者有用pthread的多线程并行,如果有则该程序可以进行并行化,分析循环迭代次数,以及迭代体运行时间是否过长,分析迭代与迭代之间是否有数据依赖。如果迭代次数较低,每个迭代代码比较复杂,迭代之间没有或只有很少的数据交换,则选择粗粒度并行。移植到mic上的程序,其并发度高,占用资源相对较少,单线程工作量相对较小,代码段比较独立,与其他部分数据交换少,则选择细粒度并行。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。



技术特征:

技术总结
本发明提供了一种基于MIC(众核协处理器)架构处理器的并行度优化方法,涉及了并行线程/进程数目、并行层级、并行粒度等方面,具体内容包括:首先对应用程序进行热点并行性分析,根据循环迭代判断并行粒度,如果迭代次数较低,采用MPI级别粗粒度并行;对循环迭代使用封装的并行方案和使用线程库写线程函数方式进行细粒度并行。本发明用于MIC架构处理器平台的并行度优化,指导软件开发人员以较短开发周期,较低开发成本,快速对应用程序的热点进行并行度优化,缩短了程序执行时间,提高了应用程序的整体计算效率。

技术研发人员:王卓薇;陈娟;程良伦
受保护的技术使用者:广东工业大学
技术研发日:2018.11.02
技术公布日:2019.04.09
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1