[发明专利]一种推测多线程调度方法及装置有效
申请号: | 201310140726.0 | 申请日: | 2013-04-22 |
公开(公告)号: | CN104111868B | 公开(公告)日: | 2017-08-11 |
发明(设计)人: | 谭玺;韦竹林 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 纪烈超 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 推测 多线程 调度 方法 装置 | ||
技术领域
本发明涉及多核芯片技术领域,尤其涉及一种推测多线程调度方法及装置。
背景技术
现有典型的多核系统上典型的线程调度算法有先来先服务算法、优先级算法、采样-共生算法等。
先来先服务算法,所有的线程构成一个队列,所有空闲核构成另一个队列,如果线程队列不为空,且空闲核队列也不为空,为线程队列顶部的线程分配空闲核队列顶部的处理器核执行;等到线程执行完毕,将处理器核加入到空闲核队尾;线程放弃处理器执行权时,回到线程队列尾部;若有新的线程进来,则添加到线程队列尾部。这种算法实现简单,但完全没有考虑线程之间以及处理器核之间的差异性,对于NUCA结构效果很差。
优先级算法,在先来先服务基础上做了改进,为每一个线程设置一个优先值,每次从线程队列中选择优先级最高的线程执行。这种算法同样没有考虑处理器核之间的访问cache差异,同时优先级的设置并没有将核的任务分配问题考虑在内。
采样-共生算法,通过线程执行的采样阶段来获取线程的执行信息、访存共享信息等,并基于采样信息为线程分配合适的核来执行。这种算法考虑到了处理器核之间的差异对线程的影响,但一来需要额外的硬件支持来获取线程采样信息,而且需要线程粒度较大并采样时间片轮转调度来执行线程,不适合于推测线程抢占式线程执行方式。
上述算法多基于小规模片上多核系统,有采用纯软件、纯硬件、软硬结合三种实现方式,以后两种为主。由于小规模片上多核系统核数少且核之间在访存方面差异小或者没有差异,片上系统所有核都可以无差别的用于执行推测线程。
然而,基于NUCA(non-uniform cache architecture)的大规模片上多核系统中,核数越来越多,位于片上不同“位置”的核在访问共享的Cache、访问内存以及访问时延相差方面存在明显差异。这样在将串行程序线程化并行执行以加速单个程序执行速度并让多核/众核系统计算资源得到更充分的利用时,传统适应小规模片上多核系统的推测多线程机制应用到基于NUCA的大规模片上系统时就遇到瓶颈,即由于基于小规模(16核以内)片上多核系统的推测多线程机制没有考虑在大规模片上系统上应用推测多线程机制时核之间的访存(访问共享cache)差异对推测线程的线程执行代价、线程提交代价的显著影响,导致推测多线程机制执行效果不好,甚至不如串行执行效果;基于小规模(16核以内)片上多核系统的推测多线程机制没有考虑核的任务分配问题,推测线程可以调度到所有核上运行,在大规模片上系统上应用推测多线程机制时,需要考虑核的任务分配问题。
发明内容
(一)技术问题
本发明要解决的问题是:在大规模片上多核系统中,使用现有的推测多线程机制推测多线程机制执行效果不好,甚至不如串行执行效果,而且没有考虑核的任务分配问题。
(二)技术方案
本发明提供一种推测多线程调度方法,该方法包括:
获取推测线程的访存统计数据,所述访存统计数据包括目标程序中每个潜在并行区域访存落在NUCA中各个并行访问缓存阵列(Cache Bank)的次数和整个目标程序访存落在各个Cache Bank上的次数;
基于上述访存统计数据,根据NUCA系统中共享Cache的结构特点和每个cache bank的时延参数,计算每个推测线程的数据重心位置,所述数据重心位置为推测线程访问各个Cache Bank所经过的最大链路数;
根据每个推测线程的数据重心位置计算每个核到各个推测线程数据重心位置的距离,按照距离大小对所有核进行排序,并将推测线程调度到当前可用的距离所述数据重心位置最小的核中。
可选的,所述获取推测线程的访存统计数据的步骤具体包括:
根据推测线程派生规则,确定潜在推测并行区域,所述潜在并行区域是指按照推测线程机制派生规则派生的一个推测线程的程序段;
统计目标程序中每个潜在并行区域访存落在NUCA中各个Cache Bank的次数和整个目标程序访存落在各个Cache Bank上的次数;
所述计算每个推测线程的数据重心位置具体包括:
如果一个潜在推测并行区域最终成为一个推测线程,则直接基于该潜在推测并行区域的访存统计计算数据重心;如果几个潜在推测并行区域派生为一个推测线程,则先将这几个潜在推测并行区域的访存统计数据汇总,然后根据汇总的访存统计计算推测线程的数据重心。
可选的,使用动态剖析工具获取推测线程的访存统计数据。
可选的,所述动态剖析工具为Profiling工具。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310140726.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种管理型智能通信网关装置
- 下一篇:半导体结构、电极结构及其形成方法