【技术实现步骤摘要】
本专利技术属于计算机体系结构下的多线程性能优化领域,更具体的,涉及一种NUMA架构下平衡多线程间访存延迟的调度系统及方法。
技术介绍
非一致访存(NUMA)架构是目前流行的商用服务器架构之一,它采用了分布式存储器模式,且其中所有节点的处理器都可以访问全部的物理内存,易于管理,可扩充性好,因此得到了广泛的应用。在NUMA架构中,每个CPU访问的内存可以分为两种:与CPU在同一个节点的内存称为本地内存,访问延迟非常低;与CPU在不同节点上的内存叫做远端内存,对于远端内存的访问,CPU需要通过节点互联的方式进行,所以其访问延迟要比本地内存的访问延迟长。这种访存延迟的不一致性是NUMA架构的最主要特点,但它却给程序的调度和运行带来了困难,如果没有得到合理的线程以及数据分配,那么很有可能导致该程序中所有的访存操作都成为远端访存,从而经历较大的访存延迟,程序运行时间大大延长,使程序的性能大打折扣。当然,这些由于远端访存造成的延迟可以通过系统仔细地将程序的线程和它所用的数据协同调度进一步减少或消除。针对程序在NUMA架构下运行的特殊性,目前已经提出了一些NUMA感知的调度算法。大部分NUMA感知的调度算法仅是针对单个线程,或者针对多个线程时仅单纯地将各个线程独立开来考虑,并没有考虑到多线程并行时的同步问题。对于运行过程中存在线程同步操作的多线程程序,在NUMA架构下运行时需要考虑各个线程 ...
【技术保护点】
一种NUMA架构下平衡多线程间访存延迟的调度系统,其特征在于,所述系统包括检测模块、采样模块、分析模块、判断模块和调度模块,其中,检测模块,用于探测程序是否进入多线程并行执行区域,还用于在探测程序进入多线程并行执行区域后,启动采样模块;采样模块,用于对多线程程序运行过程中每个线程的访存行为进行采样,并将采样过程中获取的访存信息保存;分析模块,一方面用于根据所述采样模块获取的访存信息,定期对所述多线程程序中各线程的访存延迟不平衡度进行评估,还用于针对发生不平衡现象的多线程程序进行访存行为分析,此外,所述分析模块还用于根据所述采样模块获取的访存信息进行访存规律分析;判断模块,用于根据所述访存延迟不平衡度判断是否发生多线程间访存延迟不平衡现象,同时,还用于在访存延迟不平衡现象发生时进一步判断线程访问变量是否仅由一个线程访问、线程访问变量与访问该变量的线程是否处于同一个节点及线程访问变量大小是否小于第二阈值Size,此外,所述判断模块,还用于判断程序多线程并行执行的区域是否结束;调度模块,用于根据所述分析模块的访存行为分析和访问规律分析,及判断模块的判断结果对远端访存的线程访问变量进行迁移调度 ...
【技术特征摘要】
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所述的系统,其特征在于,所述采样模块还用
于保存采样过程中为线程访问数据分配的内存大小及分配的内存地址。
7.一种基于权利要求1-6任一项的NUMA架构下平衡多线程间访存延
迟调度系统的调度方法,其特征在于,包括以下步骤:
(1)检测模块检测程序是否进入多线程并行执行区域,...
【专利技术属性】
技术研发人员:金海,廖小飞,朱亮,曾丹,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。