[发明专利]异构多核环境下基于程序行为在线分析的负载均衡方法无效
| 申请号: | 201110147099.4 | 申请日: | 2011-06-02 |
| 公开(公告)号: | CN102184125A | 公开(公告)日: | 2011-09-14 |
| 发明(设计)人: | 徐远超;杜霖;张志敏;潘巍;孙卫真;张聪霞 | 申请(专利权)人: | 首都师范大学 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F15/16 |
| 代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
| 地址: | 100037 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明公开了一种异构多核环境下基于程序行为在线分析的负载均衡方法,该方法包括以下四个方面:兼容现有调度域模型的异构多核环境、任务特征的动态监测、逻辑CPU负载计算以及异构和程序行为感知的负载均衡策略。本发明与现有操作系统调度策略完全兼容,算法在真实软硬件平台上测试,简洁而高效,适宜推广使用。 | ||
| 搜索关键词: | 多核 环境 基于 程序 行为 在线 分析 负载 均衡 方法 | ||
【主权项】:
一种异构多核环境下基于程序行为在线分析的负载均衡方法,其特征在于:该方法具体如下:(一)兼容现有调度域模型的异构多核环境现有的负载均衡方法是在一个调度域内的调度组之间进行的,这充分考虑了存储层次对迁移开销的影响,通常的原则是:先逻辑CPU,后物理core,最后是物理CPU;所述的异构多核环境是针对逻辑CPU而言的,即如果处理器支持同时多线程,则将各逻辑CPU设定为不同频率;如果不支持同时超线程,则将各物理核设定为不同频率;具体实现方法是在内核中定义NR_CPUS个元素的数组amp_factor,每个元素存储对应CPU的频率因子和标志位;其中频率因子是CPU频率的比例系数,用于CPU的负载计算;标志位用于任务迁移时确定应向该CPU优先迁移哪种特性的任务;每个任务的IPC值存储在task_struct结构新增的IPC变量中,任务迁移时,首先判断目标逻辑CPU是快核还是慢核,如果是快核,则迁移允许被迁移的IPC最大的任务,如果是慢核,则迁移允许被迁移的IPC最小的任务;(二)任务特征的动态监控任务的特征识别是为了对任务进行分类,而任务的类别以及目标核的快慢又是需要考虑的两个新的要素,即如果目标核为快核,则优先迁移cpu‑bound程序,如果目标核为慢核,则优先迁移memory‑bound任务或者I/O‑bound任务;这里具体使用“每个时钟周期的指令数,即IPC”来界定一个任务是cpu‑bound还是memory‑bound任务;由于现代微处理器提供的硬件性能计数器数量有限,每个任务必须分时使用这些计数器来获取IPC;需做以下修改或补充:1)在内核中增加vperfctr结构的初始化方法,将计数事件设置为“Retired Instructions”,在任务创建时调用;2)对于Intel T5550处理器,原驱动程序中使用kmalloc()函数为vperfctr结构开辟内存空间,开销太大,现改用SLAB高速缓存;对于64位AMD Opteron 2350处理器,则不需要修改;3)将部分声明为static的函数改为全局函数;4)在进程描述符中加入成员变量“IPC”,并在每次任务切换时更新上一个任务的IPC值,该值由事件″Retired Instructions″的计数值与程序运行的时钟数共同确定;5)调度是针对未来的程序段进行的,但未来程序段的IPC只能通过现在和历史的IPC进行预测;具体的预测方法为:将任务IPC的历史值和当前值分别乘以不同的权重,再累加相加,得到任务IPC的预测值,公式如(1)所示:a*before(IPC)+(1‑a)*current(IPC)(1)式(1)中,a为IPC历史值的权重,(1‑a)为IPC当前值的权重;(三)逻辑CPU负载计算在异构多核环境下,每个逻辑CPU的负载不能仍为其上运行队列任务负载的总和,还应考虑到每个逻辑CPU频率的差异,则计算逻辑CPU的负载按照如下方式计算:当任务迁入逻辑CPU运行队列时,运行队列的负载等于原负载加上迁入任务的负载乘以本地CPU的频率因子;当任务迁出逻辑CPU运行队列时,运行队列的负载等于原负载减去迁出任务的负载乘以本地CPU的频率因子;(四)异构和程序行为感知的负载均衡策略在负载均衡时,将cpu‑bound类型的任务迁移到高频率的CPU上运行,将memory‑bound类型的任务迁移到低频率的CPU上运行,频率介于二者之间的CPU按照原有任务迁移规则迁移任务;为了不破坏原有调度器的公平性、及时性和实时性,对原有调度器的任务迁移顺序和规则只进行较小程度的修改:具体为:原有调度器是从某一优先级链表尾部往头部遍历选择允许迁移的任务,现在的规则为,选择某一优先级链表IPC最大或最小的任务,然后选择该优先级链表中IPC次大或次小的任务,以此类推,直到需要迁移的任务负载满足要求。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110147099.4/,转载请声明来源钻瓜专利网。





