[发明专利]多核平台下串行程序运行时的自动并行化加速方法有效
申请号: | 201010264074.8 | 申请日: | 2010-08-27 |
公开(公告)号: | CN101916185A | 公开(公告)日: | 2010-12-15 |
发明(设计)人: | 过敏意;杨蓝麒;李阳;陈鹏宇;杨晓鹏;王稳寅;沈耀 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王锡麟;王桂忠 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多核 平台 串行 程序 运行 自动 并行 加速 方法 | ||
技术领域
本发明涉及的是一种计算机技术领域的方法,具体是一种多核平台下串行程序运行时的自动并行化加速方法。
背景技术
二十一世纪以来,随着芯片功耗的不断提升和芯片复杂度的不断提升,通过提升频率等方法来提高单核处理器的性能变得非常困难。单芯片多处理器(Chip Multiprocessor,即CMP)技术成为了新的发展热点。最近几年,使用CMP技术的处理器已经占据了大部分市场,从大型商用机型,到普通桌面机,再到嵌入式系统,无论高端低端,CMP都成为了各领域处理器结构的必然选择。
然而CMP的使用并不是应用驱动的,它的出现主要是为了有效地利用新制造工艺带来的更多的晶体管。由于功耗和验证难度的限制,已经难以通过设计更复杂的单核来提升处理器的性能。与此同时传统的图灵机串行程序模型和串行地址空间结构并没有发生本质改变,原有的大量程序和许多新增的程序依然遵循传统的设计方法,导致串行化的程序并不能很好的利用现在可并行执行的物理结构以提高性能。
现有技术中采用传统的并行程序设计方法重写现有的程序,该方法好像非常简单,但是事实上并不可行。常用的并行化库和编译指令主要有OpenMP(共享存储并行设计的库)和MPI(消息传递并行编程环境)。它们一方面难于掌握:并行程序的设计与调试都比串行程序要困难很多;另一方面也不是特别适用于多核环境。由于编写单个并行程序代价就很高,要想把现有的各种应用程序都重写,实际上是不可能的。
经对现有文献检索发现,中国专利申请号为:200510026587.4,名称为:用户指导的程序半自动并行化方法,该技术提出了一种使用较为简单的模型开发并行化程序,能减小开发并行程序的复杂度。但是,其使用范围有限而且仍然需要大量精力进行重新开发,不能很好地解决大量现有的串行程序的问题。
另外一种方法是对串行程序进行自动分析翻译,生成并行化程序,即线程级推测(ThreadLevel Speculation,即TLS)技术。使用该技术可以使用相应的自动并行化工具,通过对原有串行程序的源代码、中间代码或者二进制代码的分析,自动划分线程,并生成并行化代码。该方法虽然可以不用重写程序,但还是需要对原有的代码进行重新编译,这就要求用户有能力进行代码重新编译或者要求用户更换为已经重新编译的程序,这一要求在一般情况下是不成立的。同时,使用推测技术,虽然在一定程度上提高了并行度,但同时也增加了硬件设计的复杂度,并且在推测级数较多时推测成功率很低。
发明内容
本发明的目的在于克服现有技术的上述不足,提供一种多核平台下串行程序运行时的自动并行化加速方法。本发明新增可共享读取的程序计数器寄存器组,并在操作系统中建立自动并行加速线程,选择一个线程作为加速的对象,然后实时地分析此线程将要执行到的指令代码,并对其中执行循环的指令代码进行修改,达到使被加速线程自动并行执行的目的。
本发明是通过以下技术方案实现的,本发明包括以下步骤:
第一步,建立一个共享读取的程序计数寄存器组SPC,该寄存器组中寄存器的个数与CPU核的数目相同,每个寄存器分别与对应的CPU核相连以实时地储存该CPU核的程序计数器值。
所述的共享读取是:每个CPU核实时读取寄存器组中每个寄存器存储的其它CPU核的程序计数器值。
第二步,当存在空闲的CPU核时,进行加速对象选择处理,得到自动并行加速线程的加速对象为线程P。
所述的加速对象选择处理,是:当正在运行且未被加速的用户线程中存在CPU占用率最高的线程时,则选择该线程作为自动并行加速线程的加速对象;否则,时间t后,再次选择正在运行且未被加速的用户线程中CPU占用率最高的线程作为自动并行加速线程的加速对象,直至得到自动并行加速线程的加速对象。
第三步,当线程P存在已分析指令集合Sp时,载入该集合Sp;否则,为线程P新建一个集合Sp,对线程P所在的CPU核进行读取处理,得到线程P所在的CPU核当前正在读取的指令Ic,并由Ic追踪线程P下一条将要执行指令的地址,将追踪分析的指令代码和跳转关系加入集合Sp中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010264074.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:通信装置
- 下一篇:移动通信终端和控制多径干扰去除装置的起动的方法