一种numa架构下平衡多线程间访存延迟的调度系统及方法_3

文档序号:9921912阅读:来源:国知局
估计的每个线程访问变量的线程平均访存延迟,选取线程平均访存延迟最大的线程访问变量,并将该线程访问变量交由判断模块进行处理;
[0070](6)判断模块判断所述线程访问变量是否仅由一个线程访问,若是,则跳转至步骤
(7),否则跳转至步骤(8)。
[0071](7)判断模块进一步判断所述线程访问变量与访问该变量的线程是否处于同一个节点,若是,则返回步骤(5)分析模块依次选取下一个访存延迟最大的线程访问变量进行访存行为分析,否则,调度模块将该线程访问变量迀移至访问该变量的线程所在节点;
[0072](8)判断模块进一步判断所述线程访问变量大小是否小于第二阈值Size(该值可取所用系统一次访存读取的数据大小),若是,则转入步骤(9),否则转入步骤(10);
[0073](9)将该线程访问变量复制分发到NUMA架构下的各个节点;
[0074](10)分析模块根据所述采样模块获取的访存信息对多线程程序进行访问规律分析,若所述线程访问变量中没有被多个线程共同访问的线程访问变量子块,则转入步骤(10-1),否则转入步骤(10-2);
[0075](10-1)将各线程访问的线程访问变量子块分别存放到各线程所在的节点;
[0076](10-2)通过交错存放将所述线程访问变量平均分配到NAMU架构下的各个节点上,避免访存集中而导致的线程访存延迟不平衡的现象;
[0077](11)判断模块判断程序多线程并行执行的区域是否结束,若否,则返回步骤(3)继续执行;否则调度结束,进一步观察是否仍有访存延迟不平衡的现象。
[0078]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种NUMA架构下平衡多线程间访存延迟的调度系统,其特征在于,所述系统包括检测模块、采样模块、分析模块、判断模块和调度模块,其中, 检测模块,用于探测程序是否进入多线程并行执行区域,还用于在探测程序进入多线程并行执行区域后,启动采样模块; 采样模块,用于对多线程程序运行过程中每个线程的访存行为进行采样,并将采样过程中获取的访存信息保存; 分析模块,一方面用于根据所述采样模块获取的访存信息,定期对所述多线程程序中各线程的访存延迟不平衡度进行评估,还用于针对发生不平衡现象的多线程程序进行访存行为分析,此外,所述分析模块还用于根据所述采样模块获取的访存信息进行访存规律分析; 判断模块,用于根据所述访存延迟不平衡度判断是否发生多线程间访存延迟不平衡现象,同时,还用于在访存延迟不平衡现象发生时进一步判断线程访问变量是否仅由一个线程访问、线程访问变量与访问该变量的线程是否处于同一个节点及线程访问变量大小是否小于第二阈值Size,此外,所述判断模块,还用于判断程序多线程并行执行的区域是否结束; 调度模块,用于根据所述分析模块的访存行为分析和访问规律分析,及判断模块的判断结果对远端访存的线程访问变量进行迀移调度至线程所在节点或使用交错存放将其平均分配到各节点上。2.根据权利要求1所述的系统,其特征在于,所述访存信息包括发起访存行为的线程ID,访存行为的目的地址,完成访存行为所耗费的时钟周期数和访存行为的类型。3.根据权利要求1或2所述的系统,其特征在于,所述访存延迟不平衡度具体为: ξτ= I DT-Davg I /Davg 其中,ξτ为线程T的访存延迟不平衡度,Dt为线程T的平均访存延迟,Davg为所有线程的平均访存延迟。4.根据权利要求1或2所述的系统,其特征在于,所述访存行为分析具体包括: 根据所述采样模块获取的访存信息,估计每个线程访问变量的线程平均访存延迟,并依次将线程平均访存延迟最大的线程访问变量交由判断模块进行处理。5.根据权利要求1或2所述的系统,其特征在于,所述访问规律分析具体为:观察多线程程序中每个线程访问变量中是否没有被多个线程共同访问的线程访问变量子块。6.根据权利要求1或2所述的系统,其特征在于,所述采样模块还用于保存采样过程中为线程访问数据分配的内存大小及分配的内存地址。7.—种基于权利要求1-6任一项的NUMA架构下平衡多线程间访存延迟调度系统的调度方法,其特征在于,包括以下步骤: (1)检测模块检测程序是否进入多线程并行执行区域,一旦发现程序处于多线程并行执行区域,立即启动采样模块; (2)采样模块持续对程序的多线程访存行为进行采样,并将采样获取的访存信息根据线程ID进行分类并保存,根据访存行为的时间顺序为每个线程建立一个访存事件流,并通过分析模块不断更新计算每个线程的平均访存延迟; (3)分析模块定期对各线程的访存延迟不平衡度进行评估; (4)通过判断模块判断各线程的访存延迟不平衡度是否大于第一阈值Threshhold;若是,则跳转至步骤(5),否则,继续执行步骤(3); (5)分析模块对多线程程序进行访存行为分析,根据估计的每个线程访问变量的线程平均访存延迟,选取线程平均访存延迟最大的线程访问变量,并将该线程访问变量交由判断模块进行处理; (6)判断模块判断所述线程访问变量是否仅由一个线程访问,若是,则跳转至步骤(7),否则跳转至步骤(8)。 (7)判断模块进一步判断所述线程访问变量与访问该变量的线程是否处于同一个节点,若是,则返回步骤(5)分析模块依次选取下一个访存延迟最大的线程访问变量进行访存行为分析,否则,调度模块将该线程访问变量迀移至访问该变量的线程所在节点; (8)判断模块进一步判断所述线程访问变量大小是否小于第二阈值Size,若是,则转入步骤(9),否则转入步骤(10); (9)将该线程访问变量复制分发到NUMA架构下的各个节点; (10)分析模块根据所述采样模块获取的访存信息对多线程程序进行访问规律分析,若所述线程访问变量中没有被多个线程共同访问的线程访问变量子块,则转入步骤(10-1),否则转入步骤(10-2); (10-1)将各线程访问的线程访问变量子块分别存放到各线程所在的节点; (10-2)通过交错存放将所述线程访问变量平均分配到NAMU架构下的各个节点上; (11)判断模块判断程序多线程并行执行的区域是否结束,若否,则返回步骤(3)继续执行;否则调度结束。8.根据权利要求7所述的方法,其特征在于,所述访存信息包括发起访存行为的线程ID,访存行为的目的地址,完成访存行为所耗费的时钟周期数和访存行为的类型。9.根据权利要求7或8所述的方法,其特征在于,所述访存延迟不平衡度具体为: ξτ= I DT-Davg I /Davg 其中,ξτ为线程T的访存延迟不平衡度,Dt为线程T的平均访存延迟,Davg为所有线程的平均访存延迟。10.根据权利要求7或8所述的系统,其特征在于,所述采样模块还保存采样过程中为线程访问变量分配的内存大小及分配的内存地址。
【专利摘要】本发明公开了一种NUMA架构下平衡多线程间访存延迟的调度系统及方法,所述系统包括检测模块、采样模块、分析模块、判断模块和调度模块,通过采样保存多线程程序运行过程中每个线程的访存信息,预测分析该多线程程序中各线程的访存延迟是否不平衡,根据分析结果进行合理的调度,对远端访存的线程访问变量进行迁移调度至线程所在节点或使用交错存放将其平均分配到各节点上,从而保证各线程的访存延迟基本相等。本发明通过平衡多线程间访存延迟的方式,优化多线程程序在NUMA架构下的运行性能,本发明通过一种细粒度,有针对性的方式进行实时调度,使多线程程序取得并行区域的性能优化。
【IPC分类】G06F9/48
【公开号】CN105700946
【申请号】CN201610024295
【发明人】金海 , 廖小飞, 朱亮, 曾丹
【申请人】华中科技大学
【公开日】2016年6月22日
【申请日】2016年1月15日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1