[发明专利]一种推测多线程调度方法及装置有效
申请号: | 201310140726.0 | 申请日: | 2013-04-22 |
公开(公告)号: | CN104111868B | 公开(公告)日: | 2017-08-11 |
发明(设计)人: | 谭玺;韦竹林 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 纪烈超 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 推测 多线程 调度 方法 装置 | ||
1.一种推测多线程调度方法,其特征在于,该方法包括:
获取推测线程的访存统计数据,所述访存统计数据包括目标程序中每个潜在并行区域访存落在NUCA中各个并行访问缓存阵列的次数和整个目标程序访存落在各个并行访问缓存阵列上的次数;
基于上述访存统计数据,根据NUCA系统中共享缓存的结构特点和每个并行访问缓存阵列的时延参数,计算每个推测线程的数据重心位置,所述数据重心位置为推测线程访问各个并行访问缓存阵列所经过的最大链路数;
根据每个推测线程的数据重心位置计算每个核到各个推测线程数据重心位置的距离,按照距离大小对所有核进行排序,并将推测线程调度到当前可用的距离所述数据重心位置最小的核中;
其中,利用下述公式计算每个推测线程的数据重心位置:
Dist(k,i)=llink*(abs(kx-ix)+abs(ky-iy))
其中,Max{}表示取最大值函数,n为cache bank数,CDG为数据重心,即0到n-1之间的整数,MA(k)为推测线程对第k个cache bank的访问次数,llink为相邻cache bank之间的链路时延,Dist(k,i)为第k个cache bank和第i个cache bank之间的链路数,kx,ky,ix,iy分别为第k个cache bank和第i个cache bank在片上的x-y坐标值。
2.如权利要求1所述的方法,其特征还在于,所述获取推测线程的访存统计数据的步骤具体包括:
根据推测线程派生规则,确定潜在推测并行区域,所述潜在并行区域是指按照推测线程机制派生规则派生的一个推测线程的程序段;
统计目标程序中每个潜在并行区域访存落在NUCA中各个并行访问缓存阵列的次数和整个目标程序访存落在各个并行访问缓存阵列上的次数;
所述计算每个推测线程的数据重心位置具体包括:
如果一个潜在推测并行区域最终成为一个推测线程,则直接基于该潜在推测并行区域的访存统计计算数据重心;如果几个潜在推测并行区域派生为一个推测线程,则先将这几个潜在推测并行区域的访存统计数据汇总,然后根据汇总的访存统计计算推测线程的数据重心。
3.如权利要求1所述的方法,其特征还在于:使用动态剖析工具获取推测线程的访存统计数据。
4.如权利要求3所述的方法,其特征还在于:所述动态剖析工具为Profiling工具。
5.如权利要求2所述的方法,其特征还在于,所述计算每个推测线程的数据重心位置的步骤具体包括:
如果一个潜在推测并行区域最终成为一个推测线程,则直接基于该潜在推测并行区域的访存统计数据计算数据重心;
如果几个潜在推测并行区域派生为一个推测线程,则先将这几个潜在推测并行区域的访存统计数据汇总,然后根据汇总的访存统计数据计算推测线程的数据重心;
生成推测线程号-数据重心表。
6.如权利要求1所述的方法,其特征还在于,所述每个核到各个推测线程数据重心位置的距离为每个核到各个推测线程数据重心位置相隔的链路数。
7.如权利要求1所述的方法,其特征还在于,所述可用的核为片上系统中当前可用于推测线程执行的核。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310140726.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种管理型智能通信网关装置
- 下一篇:半导体结构、电极结构及其形成方法