[发明专利]一种用于异构众核系统下的应用程序线程数动态调整方法有效
申请号: | 201510090555.4 | 申请日: | 2015-02-27 |
公开(公告)号: | CN104657219B | 公开(公告)日: | 2017-10-20 |
发明(设计)人: | 董小社;巨涛;朱正东;李亮;白秀秀;吴树森;魏晓林 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 陆万寿 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 异构众核 系统 应用程序 线程 动态 调整 方法 | ||
技术领域
本发明属于计算机系统结构领域,涉及一种并行应用程序线程数动态调整方法,尤其涉及一种用于异构众核系统下的应用程序线程数动态调整方法。
背景技术
随着多核、众核技术的迅速发展,异构系统已经成为高性能计算领域一种重要的发展趋势,如何在充分利用异构系统高计算能力提升程序性能的同时,降低系统的能耗是异构系统需要解决的一个关键问题。在主处理器+协处理器架构的新型异构众核系统下,主处理器主要负责处理复杂的逻辑控制任务,协处理器负责处理计算密度高、逻辑分支简单的大规模数据并行任务,主处理器和协处理器协同的计算任务的不同部分,为具体的应用程序提供高效的计算平台。在具体运行程序时,如何在主处理器和协处理器端设置线程数,对程序性能、异构系统整体能耗都将产生重要的影响。
异构众核系统下,主处理器一般采用通用的片上多核处理器(CMP),因处理器核数有限,通常在CMP上将线程数设置为具体的处理器核数,就能达到较好的加速效果。协处理器通常采用新型众核处理器(如GPU和MIC),由于处理器核数众多(通常几十、上百个核),同时处理核内部又引入了同时多线程(SMT)技术,这使得影响因素更加复杂。如果设置的线程数过多,会因线程间争用共享资源导致计算性能下降,同时由于启用众多的处理核会造成过高的能源消耗;设置的线程数过少,则因异构系统处理核资源得不到充分利用,影响计算性能的提升。又因主处理器和协处理器具有不同的硬件架构,如何根据分配到的任务特点,结合硬件架构特征合理的设置线程数,将任务映射到具体的处理核上,对充分利用不同处理器的硬件资源、高效发挥异构众核系统的计算能力及提高异构众核系统整体效能具有重要意义。
已有的针对多核及众核环境下,确定多线程应用程序最佳线程数的研究工作,总体上可以分为根据经验值静态设置、迭代探测、预测三种实现方法。由于受所处理数据及具体运行平台的变化等因素影响,根据经验值静态设置的方法通常不能正确的反映程序具体运行时的特性,准确性和性能较低;迭代探测的方法通过在程序运行过程中不断的测试对比不同的线程数对性能的影响,最终找到近似最优的线程数,然后以此为标准进行线程映射,但该方法会引入较高的额外开销,不能反映程序动态变化的特性;预测的方法介于前两者之间,结合一定的模型,估计出最优的线程数。
已有的工作主要针对传统的多核及众核环境研究相应的最优线程数,但在由主处理器和协处理器构成的异构众核系统下,协处理器集成了更多数量的处理核,主处理器和协处理器协同的处理计算任务,要根据架构特征,结合应用程序本身的特点及程序在运行过程中运行状态才能设置合理的线程数,从而保证程序计算性能的同时最大程度的降低系统能耗,而已有的在传统的多核及众核环境下确定最佳线程数的方法不能较好的适应新型异构众核系统。
由于存在以上问题,目前还没有一种能够根据异构众核系统架构的特征,结合应用程序在运行过程中阶段性变化的特性,实时对并行应用程序的线程数进行动态调整以较低的开销在提高程序的计算性能同时降低系统能耗的有效方法。
发明内容
本发明的目的在于克服上述现有技术中的问题,提供一种异构众核系统下的用于异构众核系统下的应用程序线程数动态调整方法,该线程数动态调整方法以最优线程数动态预测模型为基础,可以在保证应用程序理想计算性能的同时尽量降低系统的整体能耗。
为了达到上述目的,本发明采用的技术方案包括如下步骤:
1)异构系统主机端主进程将程序循环部分代码分派到异构系统的协处理器上运行,通过系统硬件性能记数器获取程序在不同的线程数运行情况下的IPS1和IPSn的值,其中IPS1为单个线程运行时程序每秒钟所处理的指令数,IPSn为n个线程运行时程序每秒钟所处理的指令数;
2)将收集到的状态信息IPS1和不同线程数情况下的IPSN值返回到CPU主机端;
3)CPU主机端根据以下公式计算多线程运行时相对于单个线程运行时的相对周转时间fn:
公式(1)中TTn和TT1分别表示多线程运行时程序的执行时间和单线程运行时的程序执行时间,SIP为程序总的指令数;
4)根据公式(1)计算得到多组(fn,n)值,利用最小二乘法,通过求解以下方程组:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510090555.4/2.html,转载请声明来源钻瓜专利网。