一種自動(dòng)獲取numa架構(gòu)下系統(tǒng)路由表的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于路由信息獲取技術(shù)領(lǐng)域,尤其設(shè)及一種自動(dòng)獲取NUMA架構(gòu)下系統(tǒng)路 由表的方法及系統(tǒng)。
【背景技術(shù)】
[0002] NUM架構(gòu)系統(tǒng)性能的最優(yōu)化過程是通過軟件調(diào)優(yōu)進(jìn)行的,所有的調(diào)優(yōu)都需要知道 節(jié)點(diǎn)的位置和路由信息。而現(xiàn)在的研究都是在假設(shè)預(yù)先知道系統(tǒng)的拓?fù)浣Y(jié)構(gòu)W及節(jié)點(diǎn)之間 連接情況下進(jìn)行的。
[0003] 在實(shí)際應(yīng)用場(chǎng)景中,并不是所有情況下都能預(yù)先知道系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。特別是在 動(dòng)態(tài)結(jié)構(gòu)中,NUM架構(gòu)下節(jié)點(diǎn)之間的連接關(guān)系是會(huì)不斷改變的,運(yùn)樣的節(jié)點(diǎn)之間的連接關(guān) 系很難預(yù)先知道。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題在于提供一種自動(dòng)獲取NUM架構(gòu)下系統(tǒng)路由表的方 法及系統(tǒng),旨在為NUM架構(gòu)平臺(tái)提供準(zhǔn)確的路由信息。
[0005] 本發(fā)明提供了一種自動(dòng)獲取NUMA架構(gòu)下系統(tǒng)路由表的方法,包括下述步驟:
[0006] 步驟SI, W NUMA節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn)作為源節(jié)點(diǎn)對(duì)其它節(jié)點(diǎn)進(jìn)行訪問所得到的 干擾模式向量組成一個(gè)干擾模式矩陣;其中,每個(gè)干擾模式向量用于表征其對(duì)應(yīng)的源節(jié)點(diǎn) 在訪問目的節(jié)點(diǎn)過程中所經(jīng)過的節(jié)點(diǎn);
[0007] 步驟S2,根據(jù)每個(gè)干擾模式向量計(jì)算其對(duì)應(yīng)的源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)的路由長(zhǎng)度, 所有路由長(zhǎng)度組成一個(gè)路由長(zhǎng)度矩陣;
[0008] 步驟S3,依次提取路由長(zhǎng)度矩陣中路由長(zhǎng)度為l、2'''n-l的元素,并結(jié)合該元素在 干擾模式矩陣中對(duì)應(yīng)的干擾模式向量,得到對(duì)應(yīng)路由長(zhǎng)度的矩陣并合并,即得到NUM架構(gòu) 下的系統(tǒng)路由表。
[0009] 進(jìn)一步地,所述步驟Sl中的干擾模式矩陣采用如下方式得到:依次運(yùn)行節(jié)點(diǎn)0到 節(jié)點(diǎn)〇、1、2……n-1之間的訪存程序,并記錄每一個(gè)源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)過程中經(jīng)過的節(jié) 點(diǎn),得到的一組干擾模式向量組成干擾模式矩陣的第一行;同理,運(yùn)行節(jié)點(diǎn)1到節(jié)點(diǎn)〇、1、 2-n-l之間的訪存程序,并記錄每一個(gè)源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)過程中經(jīng)過的節(jié)點(diǎn),得到的一 組干擾模式向量組成干擾模式矩陣的第二行;采取同樣的方式,直到運(yùn)行節(jié)點(diǎn)n-1到節(jié)點(diǎn) 0、l、2",n-l之間的訪存程序,并記錄每一個(gè)源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)過程中經(jīng)過的節(jié)點(diǎn),得到 的一組干擾模式向量組成干擾模式矩陣的第n行,即得整個(gè)干擾模式矩陣。
[0010] 進(jìn)一步地,所述步驟Sl中,記錄源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)過程中經(jīng)過的節(jié)點(diǎn)的過程具 體為:記錄在源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)的內(nèi)存過程中所引起的帶寬或非核PMU事件變化的節(jié) 點(diǎn)。
[0011] 進(jìn)一步地,所述干擾模式向量可表示為:dv"= (d〇x'y,(V'y,d/'y,…,d。iX'y),其中, X表示源節(jié)點(diǎn),y表示目的節(jié)點(diǎn);當(dāng)X訪問y的過程中,經(jīng)過節(jié)點(diǎn)i,則diX'y = I,否則d iX'y = 0,其中,i = 〇、1......n-1 ;若X訪問y的過程中,不經(jīng)過任何節(jié)點(diǎn),即X = y時(shí),有dv、y = 0 ;所述干擾模式矩陣可表示為:
[0013] 進(jìn)一步地,所述步驟S2中,路由長(zhǎng)度為源節(jié)點(diǎn)X訪問目的節(jié)點(diǎn)y的過程中經(jīng)過的 節(jié)點(diǎn)數(shù)目,所述路由長(zhǎng)度d0、y可表示為:
[0015]所有的do、y組成了路由長(zhǎng)度矩陣D0,所述路由長(zhǎng)度矩陣DO可表示為:
[0017] 進(jìn)一步地,所述步驟S3具體為:提取路由長(zhǎng)度矩陣DO中滿足do,i,Yi= 1的元素, 并在干擾模式矩陣DV中找到該元素的源節(jié)點(diǎn)Xi和目的節(jié)點(diǎn)y 1,即可得路由長(zhǎng)度為1的矩 陣Rl,所述矩陣Rl可表示為:
[0019]提取路由長(zhǎng)度矩陣DO中滿足do"= 2的元素,在干擾模式矩陣DV中找到該元素 的源節(jié)點(diǎn)X2和目的節(jié)點(diǎn)y2,并在矩陣Rl中找到同時(shí)滿足d〇x2,m= 1和dom,y2= 1的中間節(jié) 點(diǎn)m,即可得路由長(zhǎng)度為2的矩陣R2,所述矩陣R2可表示為:
[002。 提取路由長(zhǎng)度矩陣DO中滿足do"= 3的元素,在干擾模式矩陣DV中找到該元素 的源節(jié)點(diǎn)X3和目的節(jié)點(diǎn)y 3,并在矩陣Rl中找到滿足d0A。= 1,同時(shí)在矩陣R2中找到滿足 (10。,,3二2的中間節(jié)點(diǎn)n,通過查詢矩陣R2可知do "3= 2的路由路徑為n - Z - y3,即可 得路由長(zhǎng)度為3的矩陣R3,所述矩陣R3可表示為:
[002引采取同樣的方式,得到所有路由長(zhǎng)度的矩陣化(i = l、2、3'''n-l ;)并合并,即可獲 得NUM架構(gòu)下的系統(tǒng)路由表RT,所述RT可表示為:
[00巧]所述矩陣化中的元素為源節(jié)點(diǎn)Xi訪問目的節(jié)點(diǎn)y 1過程中經(jīng)過的節(jié)點(diǎn),其包括目 的節(jié)點(diǎn)但不包括源節(jié)點(diǎn)X i。
[0026] 本發(fā)明還提供了一種自動(dòng)獲取NUMA架構(gòu)下系統(tǒng)路由表的系統(tǒng),包括:
[0027] 干擾模式矩陣構(gòu)建模塊,用于W NUMA節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn)作為源節(jié)點(diǎn)對(duì)其它節(jié) 點(diǎn)進(jìn)行訪問所得到的干擾模式向量組成一個(gè)干擾模式矩陣;其中,每個(gè)干擾模式向量用于 表征其對(duì)應(yīng)的源節(jié)點(diǎn)在訪問目的節(jié)點(diǎn)過程中經(jīng)過的節(jié)點(diǎn);
[0028] 路由長(zhǎng)度矩陣構(gòu)建模塊,用于根據(jù)每個(gè)干擾模式向量計(jì)算其對(duì)應(yīng)的源節(jié)點(diǎn)訪問目 的節(jié)點(diǎn)的路由長(zhǎng)度,所有路由長(zhǎng)度組成一個(gè)路由長(zhǎng)度矩陣;
[0029] 系統(tǒng)路由表生成模塊,用于依次提取路由長(zhǎng)度矩陣中路由長(zhǎng)度為l、2'''n-l的元 素,并結(jié)合該元素在干擾模式矩陣中對(duì)應(yīng)的干擾模式向量,得到對(duì)應(yīng)路由長(zhǎng)度的矩陣并合 并,即得到NUM架構(gòu)下的系統(tǒng)路由表。
[0030] 進(jìn)一步地,所述干擾模式矩陣構(gòu)建模塊采用如下方式構(gòu)建干擾模式矩陣:依次運(yùn) 行節(jié)點(diǎn)0到節(jié)點(diǎn)0、1、2……n-1之間的訪存程序,并記錄每一個(gè)源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)過程中 經(jīng)過的節(jié)點(diǎn),得到的一組干擾模式向量組成干擾模式矩陣的第一行;同理,運(yùn)行節(jié)點(diǎn)1到節(jié) 點(diǎn)0、l、2",n-l之間的訪存程序,并記錄每一個(gè)源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)過程中經(jīng)過的節(jié)點(diǎn),得 到的一組干擾模式向量組成干擾模式矩陣的第二行;采取同樣的方式,直到運(yùn)行節(jié)點(diǎn)n-1 到節(jié)點(diǎn)0、l、2'''n-l之間的訪存程序,并記錄每一個(gè)源節(jié)點(diǎn)訪問目的節(jié)點(diǎn)過程中經(jīng)過的節(jié) 點(diǎn),得到的一組干擾模式向量組成干擾模式矩陣的第n行,即得整個(gè)干擾模式矩陣;
[0031] 所述干擾模式向量可表示為:dv"= (d〇x'y,diX'y,d/'y,…,d。iX'y),其中,X表示源節(jié) 點(diǎn),y表示目的節(jié)點(diǎn);當(dāng)X訪問y的過程中,經(jīng)過節(jié)點(diǎn)i,則(V'y= 1,否則di^'y= 0,其中,i =0、1......n-1 ;若X訪問y的過程中,不經(jīng)過任何節(jié)點(diǎn),即X = y時(shí),有dVy,y= 0 ;所述干擾 模式矩陣可表示為:
[0032]
[0033] 進(jìn)一步地,所述路由長(zhǎng)度矩陣構(gòu)建模塊中,路由長(zhǎng)度為源節(jié)點(diǎn)X訪問目的節(jié)點(diǎn)y的 過程中經(jīng)過的節(jié)點(diǎn)數(shù)目,所述路由長(zhǎng)度d0、y可表示為:
[0035] 所有的do、y組成了路由長(zhǎng)度矩陣D0,所述路由長(zhǎng)度矩陣DO可表示為:
[0037] 進(jìn)一步地,所述系統(tǒng)路由表生成模塊采用如下方式構(gòu)建系統(tǒng)路由表:提取路由長(zhǎng) 度矩陣DO中滿足d〇xi,yi= 1的元素,并在干擾模式矩陣DV中找到該元素的源節(jié)點(diǎn)X郝目 的節(jié)點(diǎn)Yi,即可得路由長(zhǎng)度為1的矩陣R1,所述矩陣Rl可表示為:
[0039] 提取路由長(zhǎng)度矩陣DO中滿足do"= 2的元素,在干擾模式矩陣DV中找到該元素 的源節(jié)點(diǎn)X2和目的節(jié)點(diǎn)72,并在矩陣Rl中找到同時(shí)滿足d〇x2,m= 1和do m,,2= 1的中間節(jié) 點(diǎn)m,即可得路由長(zhǎng)度為2的矩陣R2,所述矩陣R2可表示為:
[0041] 提取路由長(zhǎng)度矩陣DO中滿足do"= 3的元素,在干擾模式矩陣DV中找到該元素 的源節(jié)點(diǎn)X3和目的節(jié)點(diǎn)y 3,并在矩陣Rl中找到滿足d〇A。= 1,同時(shí)在矩陣R2中找到滿足 (1〇。,,3二2的中間節(jié)點(diǎn)n,通過查詢矩陣R2可知do "3= 2的路由路徑為n - Z - y3,即可 得路由長(zhǎng)度為3的矩陣R3,所述矩陣R3可表示為:
[004引采取同樣的方式,得到所有路由長(zhǎng)度的矩陣化(i = l、2、3'''n-l ;)并合并,即可獲 得NUM架構(gòu)下的系統(tǒng)路由表RT,所述RT可表示為:
[004引所述矩陣化中的元素為源節(jié)點(diǎn)Xi訪問目的節(jié)點(diǎn)y 1過程中經(jīng)過的節(jié)點(diǎn),其包括目 的節(jié)點(diǎn)但不包括源節(jié)點(diǎn)X 1。
[0046] 本發(fā)明與現(xiàn)有技術(shù)相比,有益效果在于:本發(fā)明提供的一種自動(dòng)獲取NUMA架構(gòu)下 系統(tǒng)路由表的方法及系統(tǒng),無(wú)需預(yù)先知道系統(tǒng)的拓?fù)浣Y(jié)構(gòu),就可W獲取到整個(gè)系統(tǒng)中節(jié)點(diǎn) 之間的路由信息;對(duì)于動(dòng)態(tài)改變的節(jié)點(diǎn)之間的路由信息也可W通過本方法