一种自动获取numa架构下系统路由表的方法及系统的制作方法_2

文档序号:9633688阅读:来源:国知局
获取NUM架构 系统中节点的最新路由信息;其可为系统调优提供准确的动态信息指导,从而提高系统的 性能。
【附图说明】
[0047] 图1是本发明实施例提供的一种自动获取NUMA架构下系统路由表的方法的示意 图;
[0048] 图2是本发明实施例提供的一种自动获取NUM架构下系统路由表的系统的流程 图。
【具体实施方式】
[0049] 为了使本发明的目的、技术方案及优点更加清楚明白,W下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用W解释本发明,并 不用于限定本发明。
[0050] 本发明提供了一种自动获取NUMA架构下系统路由表的方法,如图1所示,包括下 述步骤:
[0051] 步骤SI, W NUM节点中的每一个节点作为源节点对其它节点进行访问所得到的 干扰模式向量组成一个干扰模式矩阵;其中,每个干扰模式向量用于表征其对应的源节点 在访问目的节点过程中所经过的节点;
[0052] 利用一个简单的访存程序通过读写来起到探针的作用,基准是由程序和其绑定配 置构成的,我们可W将测试基准TB表示如下:
[0053]
[0054] 忧"表示运行的测试程序绑定配置为绑定线程在节点X上,分配内存在节点y上。 绑定是通过Linux中的numa-API完成的,运些函数也在后台设置中使用过,如用sched_ setaffinity(mask)来设置线程的CPU亲和力和numa_alloc_onnode〇给指定的节点分配 内存。
[00巧]在运行两个节点之间的访存程序时,记录源节点访问目的节点过程中经过的节 点,即记录带宽或者非核PMU事件变化的节点;具体地,依次运行节点0到节点0、1、2…… n-1之间的访存程序,并记录每一个源节点访问目的节点过程中经过的节点,得到的一组干 扰模式向量组成干扰模式矩阵的第一行;同理,运行节点1到节点〇、1、2……n-1之间的访 存程序,并记录每一个源节点访问目的节点过程中经过的节点,得到的一组干扰模式向量 组成干扰模式矩阵的第二行;采取同样的方式,直到运行节点n-1到节点0、1、2……n-1之 间的访存程序,并记录每一个源节点访问目的节点过程中经过的节点,得到的一组干扰模 式向量组成干扰模式矩阵的第n行,即得整个干扰模式矩阵。
[0056] 所述干扰模式向量可表示为:dv"= (d〇x'y,diX'y,d/'y,…,d。iX'y),其中,X表示源节 点,y表示目的节点;当X访问y的过程中,经过节点i,则(V'y= 1,否则di^'y= 0,其中,i =0、1......n-1 ;若X访问y的过程中,不经过任何节点,即X = y时,有dVy,y= 0 ;所述干扰 模式矩阵可表示为:
[005引比如,若节点0访问节点I的时候,中间经过节点3,则干扰模式向量可表示为: dV(j,i= (0,1,0,1,0,…,0)。从节点0访问节点0-直到n-1得到的n个干扰模式向 量组成干扰模式矩阵的第一列;后面依次是1-〉0, 1-〉1,…,l-〉n-l组成第二列,一直到 n-1-〉0, n-1-〉l,…,n-1-〉n-l组成第n列;运样就组成了干扰模式矩阵。运个矩阵实质上 是一个=维矩阵,他的每一个元素都是一个干扰模式向量。
[0059] 步骤S2,根据每个干扰模式向量计算其对应的源节点访问目的节点的路由长度, 所有路由长度组成一个路由长度矩阵;
[0060] 所述路由长度为源节点X访问目的节点y的过程中经过的节点数目,其包括目的 节点y但不包括源节点X,所述路由长度d〇x,y可表示为:
[006引其中,d0x,y的值大于等于0小于等于n-1 ;所有的d0x,y组成了路由长度矩阵DO, 所述路由长度矩阵DO可表示为:
[0064] 若源节点0和目的节点1之间的干扰模式向量为:dv〇,i= (0, 1,0, 1,0,…,0),那 么,其路由长度:
[0066] 同样对所有的干扰模式向量进行该操作就可W得到每两个节点之间的路由长度, 所有的路由长度值就构成了路由长度矩阵。
[0067] 步骤S3,依次提取路由长度矩阵中路由长度为l、2'''n-l的元素,并结合该元素在 干扰模式矩阵中对应的干扰模式向量,得到对应路由长度的矩阵并合并,即得到NUM架构 下的系统路由表。
[0068] 所述步骤S3具体为:提取路由长度矩阵DO中满足do,i, Yi= 1的元素,并在干扰模 式矩阵DV中找到该元素的源节点Xi和目的节点y 1,即可得路由长度为1的矩阵R1,所述矩 阵Rl可表示为:
[0070] 若d〇3,5= 1时,矩阵Rl中的在(X,y)元素值设为y,即Rl巧][引=巧},意味着 从节点3访问节点5的路由路径是不需要经过其他中间节点的直接连接。如果我们在DO 矩阵中找到K个do、y= 1,那么在矩阵Rl中有k个元素不为空,矩阵Rl的形式如下:
[007引提取路由长度矩阵DO中满足d0Ay2=2的元素,在干扰模式矩阵DV中找到该元 素的源节点X2和目的节点72,并在矩阵Rl中找到同时满足d0x2,m= 1和dom,,2= 1的中间 节点m,即可得路由长度为2的矩阵R2,所述矩阵R2可表示为:
[0074]比如,若(1〇。,日=2,若找到(1〇。,3=1且(1〇3,日=1,那么32[0][5] = {3,5},矩阵尺2 的形式如下:
[0076] 提取路由长度矩阵DO中满足d〇AY3= 3的元素,在干扰模式矩阵DV中找到该元 素的源节点X3和目的节点y3,并在矩阵Rl中找到满足d〇A。= 1,同时在矩阵R2中找到满 足do",y3= 2的中间节点n,通过查询矩阵R2可知do。,,3二2的路由路径为n-Z-y3,即 可得路由长度为3的矩阵R3,所述矩阵R3可表示为:
[007引比如,若d02,5= 3,且查询到有中间节点0使得do 2,。= 1,do。,5= 2,通过查询R2 路由矩阵,可得到R3巧][引={0, 3, 5}。运样矩阵R3的形式如下:
[0080]可按照上面的思想得到路由长度为4的矩阵R4 ;具体地,可W找满足dx,m= 3且dm,y=1的中间节点m;或满足dx,。=1且d",y=3的n;或满足dx,i= 2且di,y=2的1,再 查询对应的矩阵,找到路由路径,即可得路由长度为4的矩阵R4,具体过程不再寶述。
[00則采取同样的方式,得到所有路由长度的矩阵化(i = l、2、3'''n-l ;)并合并,即可获 得NUM架构下的系统路由表RT,所述RT可表示为:
[0083]所述矩阵化中的元素为源节点Xi访问目的节点y 1过程中经过的节点,其包括目 的节点但不包括源节点X1。
[0084] 关于上述RU R2、R3的例子,继续重复上面的步骤,就可W得到R1,R2, R3,… ,化-1。将运些矩阵并在一起就可W形成最终的路由表RT,形式如下:
[0086] 最终,我们可W通过查找矩阵RT来得到两个节点之间的路由信息。例如,如果想 知道运个NUMA系统中从节点X到节点y的路由信息,查找RT[x] [y] = {n。,rii,化…,y},运 样就可W知道节点X通过节点n。, rii,ri2,…,到达节点y。
[0087] 本发明还提供了一种自动获取NUMA架构下系统路由表的系统,如图2所示,包 括:
[008引干扰模式矩阵构建模块1,用于W NUMA节点中的每一个节点作为源节点对其它节 点进行访问所得到的干扰模式向量组成一个干扰模式矩阵;其中,每个干扰模式向量用于 表征其对应的源节点在访问目的节点过程中经过的节点;
[0089] 路由长度矩阵构建模块2,用于根据每个干扰模式向量计算其对应的源节点访问 目的节点的路由长度,所有路由长度组成一个路由长度矩阵;
[0090] 系统路由表生成模块3,用于依次提取路由长度矩阵中路由长度为l、2'''n-l的元 素,并结合该元素在干扰模式矩阵中对应的干扰模式向量,得到对应路由长度的矩阵并合 并,即得到NUM架构下的系统路由表。
[0091] 在大数据和内存计算的浪潮下,NUM架构能同时满足人们对计算机计算能力和内 存带宽的需要,NUMA架构平台已经成为高性能计算的主要基础设施;包括Intel、AMD W及 国产龙忍的高性能计算设备底层处理器都有采用NUMA架构。而本发明提供的一种自动获 取NUMA架构下系统路由表的方法及系统,能为NUMA架构平台提供准确的路由信息,从而为 通
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1