[发明专利]一种NUMA架构下平衡多线程间访存延迟的调度系统及方法有效
申请号: | 201610024295.5 | 申请日: | 2016-01-15 |
公开(公告)号: | CN105700946B | 公开(公告)日: | 2019-03-05 |
发明(设计)人: | 金海;廖小飞;朱亮;曾丹 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 numa 架构 平衡 多线程 间访存 延迟 调度 系统 方法 | ||
1.一种NUMA架构下平衡多线程间访存延迟的调度系统,其特征在于,所述系统包括检测模块、采样模块、分析模块、判断模块和调度模块,其中,
检测模块,用于探测程序是否进入多线程并行执行区域,还用于在探测程序进入多线程并行执行区域后,启动采样模块;
采样模块,用于对多线程程序运行过程中每个线程的访存行为进行采样,并将采样过程中获取的访存信息保存;
分析模块,一方面用于根据所述采样模块获取的访存信息,定期对所述多线程程序中各线程的访存延迟不平衡度进行评估,还用于针对发生不平衡现象的多线程程序进行访存行为分析,此外,所述分析模块还用于根据所述采样模块获取的访存信息进行访存规律分析;
判断模块,用于根据所述访存延迟不平衡度判断是否发生多线程间访存延迟不平衡现象,同时,还用于在访存延迟不平衡现象发生时进一步判断线程访问变量是否仅由一个线程访问、线程访问变量与访问该变量的线程是否处于同一个节点及线程访问变量大小是否小于第二阈值Size,此外,所述判断模块,还用于判断程序多线程并行执行的区域是否结束;
调度模块,用于根据所述分析模块的访存行为分析和访问规律分析,及判断模块的判断结果对远端访存的线程访问变量进行迁移调度至线程所在节点或使用交错存放将其平均分配到各节点上。
2.根据权利要求1所述的系统,其特征在于,所述访存信息包括发起访存行为的线程ID,访存行为的目的地址,完成访存行为所耗费的时钟周期数和访存行为的类型。
3.根据权利要求1或2所述的系统,其特征在于,所述访存延迟不平衡度具体为:
ξT=|DT-Davg|/Davg
其中,ξT为线程T的访存延迟不平衡度,DT为线程T的平均访存延迟,Davg为所有线程的平均访存延迟。
4.根据权利要求1或2所述的系统,其特征在于,所述访存行为分析具体包括:
根据所述采样模块获取的访存信息,估计每个线程访问变量的线程平均访存延迟,并依次将线程平均访存延迟最大的线程访问变量交由判断模块进行处理。
5.根据权利要求1或2所述的系统,其特征在于,所述访问规律分析具体为:观察多线程程序中每个线程访问变量中是否没有被多个线程共同访问的线程访问变量子块。
6.根据权利要求1或2所述的系统,其特征在于,所述采样模块还用于保存采样过程中为线程访问数据分配的内存大小及分配的内存地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610024295.5/1.html,转载请声明来源钻瓜专利网。