【技术实现步骤摘要】
一种推测多线程调度方法及装置
本专利技术涉及多核芯片
,尤其涉及一种推测多线程调度方法及装置。
技术介绍
现有典型的多核系统上典型的线程调度算法有先来先服务算法、优先级算法、采 样-共生算法等。 先来先服务算法,所有的线程构成一个队列,所有空闲核构成另一个队列,如果线 程队列不为空,且空闲核队列也不为空,为线程队列顶部的线程分配空闲核队列顶部的处 理器核执行;等到线程执行完毕,将处理器核加入到空闲核队尾;线程放弃处理器执行权 时,回到线程队列尾部;若有新的线程进来,则添加到线程队列尾部。这种算法实现简单,但 完全没有考虑线程之间以及处理器核之间的差异性,对于NUCA结构效果很差。 优先级算法,在先来先服务基础上做了改进,为每一个线程设置一个优先值,每次 从线程队列中选择优先级最高的线程执行。这种算法同样没有考虑处理器核之间的访问 cache差异,同时优先级的设置并没有将核的任务分配问题考虑在内。 采样-共生算法,通过线程执行的采样阶段来获取线程的执行信息、访存共享信 息等,并基于采样信息为线程分配合适的核来执行。这 ...
【技术保护点】
一种推测多线程调度方法,其特征在于,该方法包括:获取推测线程的访存统计数据,所述访存统计数据包括目标程序中每个潜在并行区域访存落在NUCA中各个并行访问缓存阵列的次数和整个目标程序访存落在各个并行访问缓存阵列上的次数;基于上述访存统计数据,根据NUCA系统中共享缓存的结构特点和每个并行访问缓存阵列的时延参数,计算每个推测线程的数据重心位置,所述数据重心位置为推测线程访问各个并行访问缓存阵列所经过的最大链路数;根据每个推测线程的数据重心位置计算每个核到各个推测线程数据重心位置的距离,按照距离大小对所有核进行排序,并将推测线程调度到当前可用的距离所述数据重心位置最小的核中。
【技术特征摘要】
1. 一种推测多线程调度方法,其特征在于,该方法包括: 获取推测线程的访存统计数据,所述访存统计数据包括目标程序中每个潜在并行区域 访存落在NUCA中各个并行访问缓存阵列的次数和整个目标程序访存落在各个并行访问缓 存阵列上的次数; 基于上述访存统计数据,根据NUCA系统中共享缓存的结构特点和每个并行访问缓存 阵列的时延参数,计算每个推测线程的数据重心位置,所述数据重心位置为推测线程访问 各个并行访问缓存阵列所经过的最大链路数; 根据每个推测线程的数据重心位置计算每个核到各个推测线程数据重心位置的距离, 按照距离大小对所有核进行排序,并将推测线程调度到当前可用的距离所述数据重心位置 最小的核中。2. 如权利要求1所述的方法,其特征还在于,所述获取推测线程的访存统计数据的步 骤具体包括: 根据推测线程派生规则,确定潜在推测并行区域,所述潜在并行区域是指按照推测线 程机制派生规则派生的一个推测线程的程序段; 统计目标程序中每个潜在并行区域访存落在NUCA中各个并行访问缓存阵列的次数和 整个目标程序访存落在各个并行访问缓存阵列上的次数; 所述计算每个推测线程的数据重心位置具体包括: 如果一个潜在推测并行区域最终成为一个推测线程,则直接基于该潜在推测并行区域 的访存统计计算数据重心;如果几个潜在推测并行区域派生为一个推测线程,则先将这几 个潜在推测并行区域的访存统计数据汇总,然后根据汇总的访存统计计算推测线程的数据 重心。3. 如权利要求1所述的方法,其特征还在于:使用动态剖析工具获取推测线程的访存 统计数据。4. 如权利要求3所述的方法,其特征还在于:所述动态剖析工具为Profiling工具。5. 如权利要求1所述的方法,其特征还在于,利用下述公式计算每个推测线程的数据 重心位置:Dist(k;i) = llink*(abs(kx-ix)+abs(ky-i y)) 其中,Max {}表示取最大值函数,η为cache bank数,⑶G为数据重心,即0到n-1之间 的整数,MA(k)为推测线程对第k个并行访问缓存阵列的访问次数,llink为相邻并行访问缓 存阵列之间的链路时延,Dist (lu)为第k个并行访问缓存阵列和第i个并行访问缓存阵列 之间的链路数,abs ()表示绝对值函数,kx,ky,ix,iy分别为第k个并行访问缓存阵列和第 i个并行访问缓存阵列在片上的x_y坐标值。6. 如权利要求2所述的方法,其特征还在于,所述计算每个推测线程的数据重心位置 的步骤具体包括: 如果一个潜在推测并行区域最终成为一个推测线程,则直接基于该潜在推测并行区域 的访存统计数据计算数据重心; 如果几个潜在推测并行区域派生为一个推测线程,则先将这几个潜在推测并行区域的 访存统计数据汇总,然后根据汇总的访存统计数据计算推测线程的数据重心; 生成推测线程号-数据重心表。7. 如权利要求1所述的方法,其特征还在于,所述每个核到各个推测线程数据重心位 置的距离为每个核到各个推测线程数据重心位置相隔的链路数。8. 如权利要求1所述的方法,其特征还在于,所述可用的核为片上系统中当前可用于 推测线程执行的核。9. 一种推测多线程调度装置,其特征在于,该装置包括: 获取单元,用于获取推测线程的访存统计数据,所述访存统计数据包括目标程序中每 个潜在并行区域访存落在NUCA中各个并行访问缓存阵列的次数和整个目标程序访存落在 各个并行访问缓存阵列上的次数; 数据重心位置计算单元,用于基于上述访存统计数据,根据NUCA系统中共享缓存的结 构特点和每个并行访问缓存阵列的时延参数,计算每个推测线程的数据重心位置,所述数 据重心位置为推测线程访问各个并行访问缓存阵列所经过的最大链路数; 推测线程调度单元,用于根据每个推测线程的数据重心位置计算每个核到各个推测线 程数据重心位置的距离,按照距离大小对所有核进行排序,并将推测线程调度到当前可...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。