亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法和裝置的制作方法

文檔序號:6354684閱讀:512來源:國知局
專利名稱:多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法和裝置。
背景技術(shù)
隨著計算與存儲技術(shù)的不斷發(fā)展,多個節(jié)點(diǎn)并存的計算系統(tǒng)(可以稱為“多節(jié)點(diǎn)計算系統(tǒng)”)已經(jīng)越來越普及。為了解決多節(jié)點(diǎn)計算系統(tǒng)中的中央處理器(CPU,CentralProcessor Unit)在存取內(nèi)存方面的瓶頸,多節(jié)點(diǎn)計算系統(tǒng)出現(xiàn)了非一致性內(nèi)存訪問(NUMA, Non-Uniform Memory Access)架構(gòu)。在NUMA架構(gòu)下,每個應(yīng)用程序可以運(yùn)行在某一硬件節(jié)點(diǎn)上,該節(jié)點(diǎn)的CPU可以存取本節(jié)點(diǎn)和其他節(jié)點(diǎn)上的內(nèi)存區(qū)域,但在不同節(jié)點(diǎn)上的存取速度與效率不同,這種區(qū)別主要是由于每個節(jié)點(diǎn)上的CPU與不同節(jié)點(diǎn)的內(nèi)存具有不同的“內(nèi)存親和性”。所謂內(nèi)存親和性,是指NUMA架構(gòu)下每個CPU存取該CPU所在節(jié)點(diǎn)或其他節(jié)點(diǎn)上的內(nèi)存的延遲大小。延遲越小,表明內(nèi)存親和性越高?,F(xiàn)有技術(shù)提供的NUMA架構(gòu)考慮了 CPU和內(nèi)存對的親和性問題,S卩,獲取CPU和內(nèi)存(該內(nèi)存不與其他節(jié)點(diǎn)上的CPU共享)之間的總線連接速度和跳數(shù)(hop);然后使用總線連接速度和跳數(shù)作為權(quán)值來計算[cpu, memory, val],這里,cpu, memory表示一對CPU和memory (稱為“CPU和內(nèi)存對”),val指cpu和memory之間的內(nèi)存親和性的值,簡稱“內(nèi)存親和性權(quán)值”,而[cpu,memory, val]就表示cpu和memory構(gòu)成的CPU和內(nèi)存對之間的內(nèi)存親和性權(quán)值為val,不同的[cpu, memory, val]構(gòu)成了 CPU和內(nèi)存對親和性表;當(dāng)一個應(yīng)用程序需要申請內(nèi)存時,首先查詢該CPU和內(nèi)存對親和性表,得到一個內(nèi)存親和性最高的節(jié)點(diǎn),在該節(jié)點(diǎn)上開辟一塊內(nèi)存空間。上述現(xiàn)有技術(shù)提供的NUMA架構(gòu)只是解決了沒有共享內(nèi)存時的內(nèi)存親和性問題,在多個CPU需要共享內(nèi)存時,如何在多個節(jié)點(diǎn)中選擇一個最合適的節(jié)點(diǎn)作為分配共享內(nèi)存的節(jié)點(diǎn),從而最優(yōu)化內(nèi)存總體存取效率,使在NUMA架構(gòu)下的多個節(jié)點(diǎn)存取該共享內(nèi)存時的內(nèi)存親和性最高。然而,現(xiàn)有的NUMA架構(gòu)并沒有相應(yīng)的解決方案。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法和裝置,以將共享內(nèi)存分配到最優(yōu)節(jié)點(diǎn)上,而提高多節(jié)點(diǎn)計算系統(tǒng)的總體存取性能。本發(fā)明實施例提供一種多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法,包括獲取確定各中央處理器CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù);根據(jù)所述參數(shù)計算所述各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和;將其中計算所得內(nèi)存親和性權(quán)值之和最小時的節(jié)點(diǎn)選擇為各CPU的共享內(nèi)存所在節(jié)點(diǎn)。本發(fā)明實施例提供一種多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的裝置,包括
參數(shù)獲取模塊,用于獲取確定各中央處理器CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù);求和模塊,用于根據(jù)所述參數(shù)獲取模塊獲取的參數(shù)計算所述各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和節(jié)點(diǎn)選擇模塊,用于將所述求和模塊計算所得內(nèi)存親和性權(quán)值之和最小時的節(jié)點(diǎn)選擇為各CPU的共享內(nèi)存所在節(jié)點(diǎn)。從上述本發(fā)明實施例可知,本發(fā)明提供的方法不僅考慮到多節(jié)點(diǎn)計算系統(tǒng)下多個CPU需要共享內(nèi)存這一情形,而且根據(jù)確定訪問共享內(nèi)存的各中央處理器CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù),計算出一個使這些內(nèi)存親和性權(quán)值之和最小的節(jié)點(diǎn),并將其選擇為共享內(nèi)存所在節(jié)點(diǎn)。由于訪問共享內(nèi)存的各中央處理器CPU與這一節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和最小,因此,各節(jié)點(diǎn)上的中央處理器CPU訪問這一節(jié)點(diǎn)上的共享內(nèi)存付出的代價最小,在需要訪問共享內(nèi)存的場景下系統(tǒng)的存取效率最 聞,從而提聞了系統(tǒng)的總體存取性能。


為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對現(xiàn)有技術(shù)或?qū)嵤├枋鲋兴枰褂玫母綀D作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以如這些附圖獲得其他的附圖。圖I是本發(fā)明一實施例提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法流程示意圖;圖2是本發(fā)明一實施例提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的裝置邏輯結(jié)構(gòu)示意圖;圖3是本發(fā)明另一實施例提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的裝置邏輯結(jié)構(gòu)示意圖;圖4是本發(fā)明另一實施例提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的裝置邏輯結(jié)構(gòu)示意圖;圖5是本發(fā)明另一實施例提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的裝置邏輯結(jié)構(gòu)示意圖;圖6是本發(fā)明另一實施例提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的裝置邏輯結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。以下以NUMA架構(gòu)下的多節(jié)點(diǎn)計算系統(tǒng)為例說明本發(fā)明提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法,本領(lǐng)域技術(shù)人員能夠理解,本發(fā)明實施例提供的方法不僅適用于NUMA架構(gòu)下的多節(jié)點(diǎn)計算系統(tǒng),但凡有多個節(jié)點(diǎn)共享內(nèi)存的場景也可以使用本發(fā)明實施例提供的方法。請參閱附圖1,是本發(fā)明實施例提供的多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法流程示意圖,主要包括步驟S101,獲取確定各中央處理器CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù)。在本發(fā)明實施例中,確定各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù)包括各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值和所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度,而各CPU可以是NUMA架構(gòu)下的多節(jié)點(diǎn)計算系統(tǒng)中某個節(jié)點(diǎn)上的CPU,這些CPU由于某種原因都需要存取某個節(jié)點(diǎn)上的數(shù)據(jù),即訪問該節(jié)點(diǎn)上的共享內(nèi)存。需要說明的是,訪問共享內(nèi)存的CPU也可以認(rèn)為是動用CPU資源去訪問某個共享內(nèi)存,例如,運(yùn)行于某個節(jié) 點(diǎn)的應(yīng)用程序去訪問某個共享內(nèi)存,也就是動用該應(yīng)用程序節(jié)點(diǎn)上的CPU資源去訪問某個共享內(nèi)存;又如,多個進(jìn)程或者進(jìn)程的多個部分都需要訪問某個共享內(nèi)存,不同的進(jìn)程或進(jìn)程的多個部分可能運(yùn)行在不同的節(jié)點(diǎn),當(dāng)這些進(jìn)程啟動并開始訪問某個共享內(nèi)存時,也就是動用了不同進(jìn)程或進(jìn)程的多個部分的節(jié)點(diǎn)上的CPU資源去訪問某個共享內(nèi)存。S102,根據(jù)步驟SlOl獲取的參數(shù)計算各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和。在本發(fā)明實施例中,內(nèi)存親和性權(quán)值的概念與現(xiàn)有技術(shù)的內(nèi)存親和性權(quán)值的概念基本相同,都是指CPU和內(nèi)存對之間的內(nèi)存親和性權(quán)值,例如,若訪問共享內(nèi)存的各中央處
理器CPU用Cpu1, cpu2,......,Cpum表示,則訪問共享內(nèi)存的各中央處理器CPU與任意一個
節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值可以對應(yīng)表示為[Cpu17Iiiemory1, valj , [cpu2, memory2,
val2],......, [cpum, memorym, valj。所不同的是,本發(fā)明實施例的Cpu1、cpu2、......和
Cpum之間的關(guān)系是該m個CPU需要訪問共享內(nèi)存,而現(xiàn)有技術(shù)中沒有考慮到共享內(nèi)存的情
況,即,現(xiàn)有技術(shù)的cpu^cpuy......和??赹這!!!個CPU訪問的是各自需要訪問的內(nèi)存,而
不是共享內(nèi)存。假設(shè)由Node。、Node1和Node23個節(jié)點(diǎn)構(gòu)成的多節(jié)點(diǎn)計算系統(tǒng),中央處理器CPU。、CPUjP CPU2 所在節(jié)點(diǎn)對(NodeciiNodec^(NodeliNodeci)和(Node。,Node2)的內(nèi)存節(jié)點(diǎn)對權(quán)值分別為0、10和20,Nodec^Node1和Node2上的中央處理器CPUciXPU1和CPU2訪問節(jié)點(diǎn)Node。上內(nèi)存的頻度分別為50%、40%和10%,則計算各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值與各CPU訪問節(jié)點(diǎn)上內(nèi)存的頻度的乘積分別是O X 50 %、10 X 40 %和20 X 10 %,這些乘積的和(使用Sum表示)為Sum = 0+4+2 = 6 ;中央處理器CPU。、CPU1和CPU2所在節(jié)點(diǎn)對(Node0,Node1) > (Node1, Node1)和(Node2, Node1)的內(nèi)存節(jié)點(diǎn)對權(quán)值分別為 10、0 和 10, Node0^Node1和Node2上的中央處理器CPU。、CPU1和CPU2訪問節(jié)點(diǎn)Node1上內(nèi)存的頻度分別為30 %、50 %和20%,則計算各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值與各CPU訪問節(jié)點(diǎn)上內(nèi)存的頻度的乘積分別是10 X 30 %、0 X 50 %和10 X 20%,這些乘積的和為Sum = 3+0+2 = 5 ;中央處理器CPU。、CPU1 和 CPU2 所在節(jié)點(diǎn)對(Node。,Node2)、(NodeljNode2)和(Node2, Node2)的內(nèi)存節(jié)點(diǎn)對權(quán)值分別為20、10和0,Node。、Node1和Node2上的中央處理器CPU。、CPU1和CPU2訪問節(jié)點(diǎn)Node2上內(nèi)存的頻度分別為20%、30%和50%,則根據(jù)計算各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值與各CPU訪問節(jié)點(diǎn)上內(nèi)存的頻度的乘積分別是20 X 20%、10 X 30%和O X 50%,這些乘積的和為Sum = 4+3+0 = 7。
S103,將其中計算所得內(nèi)存親和性權(quán)值之和最小時的節(jié)點(diǎn)選擇為各CPU的共享內(nèi)存所在節(jié)點(diǎn)。步驟S102的舉例中,中央處理器CPU。、CPU1和CPU2與節(jié)點(diǎn)Node。上內(nèi)存之間的內(nèi)存親和性權(quán)值之和為6,與節(jié)點(diǎn)Node1上內(nèi)存之間的內(nèi)存親和性權(quán)值之和為5,與節(jié)點(diǎn)Node2上內(nèi)存之間的內(nèi)存親和性權(quán)值之和為7,顯然,中央處理器CPU。、CPU1和CPU2與節(jié)點(diǎn)Nodei上內(nèi)存之間的內(nèi)存親和性權(quán)值之和最小,因此,選擇節(jié)點(diǎn)Node1為共享內(nèi)存所在節(jié)點(diǎn)。從上述本發(fā)明實施例可知,本發(fā)明提供的方法不僅考慮到多節(jié)點(diǎn)計算系統(tǒng)下多個CPU需要共享內(nèi)存這一情形,而且根據(jù)確定各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù),計算出一個使這些內(nèi)存親和性權(quán)值之和最小的節(jié)點(diǎn),并將其選擇為各CPU的共享內(nèi)存所在節(jié)點(diǎn)。由于訪問共享內(nèi)存的各CPU與這一節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和最小,因此,各節(jié)點(diǎn)上的CPU訪問這一節(jié)點(diǎn)上的共享內(nèi)存付出的代價最小,在需 要訪問共享內(nèi)存的場景下系統(tǒng)的存取效率最高,從而提高了系統(tǒng)的總體存取性能。如前所述,確定各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù)之一是各中央處理器CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值。所謂每個節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值是指每個節(jié)點(diǎn)對中一個節(jié)點(diǎn)上的CPU與另一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值。例如,假設(shè)Cpu1所在節(jié)點(diǎn)Node11和IIiemory1所在節(jié)點(diǎn)Node12是一個節(jié)點(diǎn)對(可使用(Node11,Node12)表示),則該節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值使用[Cpu1, Iiiemory1, valj表示,其中,Val1就是節(jié)點(diǎn)Node11上的Cpu1和節(jié)點(diǎn)Node12之間的內(nèi)存親和性權(quán)值。特別地,相對于Cpu1所在節(jié)點(diǎn)Node11和其他節(jié)點(diǎn)(例如,上述實施例的節(jié)點(diǎn)Node12),節(jié)點(diǎn)Node11上的Cpu1和節(jié)點(diǎn)Node11上的內(nèi)存之間的內(nèi)存親和性權(quán)值是最小的,可以認(rèn)為是0,表示一個基準(zhǔn)值。具體實現(xiàn)時,可以在多節(jié)點(diǎn)計算系統(tǒng)的每個節(jié)點(diǎn)中維護(hù)一塊存儲區(qū)域,該存儲區(qū)域存儲著該存儲區(qū)域所在節(jié)點(diǎn)上的CPU訪問該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)上的內(nèi)存的存取延遲值;進(jìn)一步,可以將這一存取延遲值通過量化手段轉(zhuǎn)化為內(nèi)存親和性權(quán)值,以便于計算和存儲。例如,某節(jié)點(diǎn)Node1上的CPU訪問該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)NodeyNode4和Node6上的內(nèi)存的存取延遲值分別為O. 3,0. 5和O. 8,則可以將O. 3,0. 5和O. 8同乘以10,使之轉(zhuǎn)化為整數(shù)形式表示的內(nèi)存親和性權(quán)值3、5和8,從而便于存儲和計算。對于一個節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的非鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值,可以根據(jù)該節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值來獲取。例如,某節(jié)點(diǎn)Node1上的CPU與該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)Node2上內(nèi)存之間的內(nèi)存親和性權(quán)值為3,而節(jié)點(diǎn)Node2上的CPU與節(jié)點(diǎn)Node2的鄰居節(jié)點(diǎn)Node3上內(nèi)存之間的內(nèi)存親和性權(quán)值為5,若節(jié)點(diǎn)Node3是Node1的非鄰居節(jié)點(diǎn),則節(jié)點(diǎn)Node1上的CPU與節(jié)點(diǎn)Node3上內(nèi)存之間的內(nèi)存親和性權(quán)值可以是節(jié)點(diǎn)Node1上的CPU與其鄰居節(jié)點(diǎn)Node2上內(nèi)存之間的內(nèi)存親和性權(quán)值3和節(jié)點(diǎn)Node2上的CPU與節(jié)點(diǎn)Node2的鄰居節(jié)點(diǎn)Node3上內(nèi)存之間的內(nèi)存親和性權(quán)值5兩者的相加,即3+5,結(jié)果為8。當(dāng)每個節(jié)點(diǎn)上的CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值計算出來之
后,可以形成如下表一所示的內(nèi)存親和性權(quán)值表。
權(quán)利要求
1.一種多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法,其特征在于,所述方法包括 獲取確定各中央處理器CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù); 根據(jù)所述參數(shù)計算所述各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和; 將其中計算所得內(nèi)存親和性權(quán)值之和最小時的節(jié)點(diǎn)選擇為各CPU的共享內(nèi)存所在節(jié)點(diǎn)。
2.如權(quán)利要求I所述的方法,其特征在于,所述參數(shù)包括所述各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值和所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度。
3.如權(quán)利要求2所述的方法,其特征在于,所述節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值為所述節(jié)點(diǎn)對中一個節(jié)點(diǎn)上的CPU與所述節(jié)點(diǎn)對中另一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值。
4.如權(quán)利要求2所述的方法,其特征在于,所述獲取所述各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值包括 獲取一個節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值;或者根據(jù)所述獲取的一個節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值,獲取一個節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的非鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值。
5.如權(quán)利要求2所述的方法,其特征在于,所述獲取所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度包括 統(tǒng)計每個節(jié)點(diǎn)對中一個節(jié)點(diǎn)上的CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的次數(shù)以及所述次數(shù)之和; 根據(jù)所述次數(shù)以及所述次數(shù)之和,求取所述次數(shù)與所述次數(shù)之和的比值,所述比值為所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度。
6.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述參數(shù)計算所述各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和包括 計算所述各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值與所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度的乘積; 求取所述乘積之和,所述乘積之和為根據(jù)所述參數(shù)計算出的所述各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和。
7.如權(quán)利要求I所述的方法,其特征在于,所述方法還包括 檢查所述共享內(nèi)存所在節(jié)點(diǎn)上的內(nèi)存是否滿足所述各CPU的訪問,若不能,則按照所述方法重新選擇共享內(nèi)存所在節(jié)點(diǎn)。
8.一種多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的裝置,其特征在于,所述裝置包括 參數(shù)獲取模塊,用于獲取各中央處理器CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù); 求和模塊,用于根據(jù)所述參數(shù)獲取模塊獲取的參數(shù)計算所述各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和; 節(jié)點(diǎn)選擇模塊,用于將所述求和模塊計算所得內(nèi)存親和性權(quán)值之和最小時的節(jié)點(diǎn)選擇為各CPU的共享內(nèi)存所在節(jié)點(diǎn)。
9.如權(quán)利要求8所述的裝置,其特征在于,所述參數(shù)包括各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值和所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度。
10.如權(quán)利要求9所述的裝置,其特征在于,所述節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值為所述節(jié)點(diǎn)對中一個節(jié)點(diǎn)上的CPU與所述節(jié)點(diǎn)對中另一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值。
11.如權(quán)利要求9所述的裝置,其特征在于,所述獲取模塊包括 內(nèi)存親和性權(quán)值第一獲取單元,用于獲取一個節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值;或者 內(nèi)存親和性權(quán)值第二獲取單元,用于根據(jù)所述內(nèi)存親和性權(quán)值第一獲取單元獲取的一個節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值,獲取一個節(jié)點(diǎn)上的CPU與該節(jié)點(diǎn)的非鄰居節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值。
12.如權(quán)利要求9所述的裝置,其特征在于,所述獲取模塊包括 統(tǒng)計單元,用于統(tǒng)計每個節(jié)點(diǎn)對中一個節(jié)點(diǎn)上的CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的次數(shù)以及所述次數(shù)之和; 頻度計算單元,用于根據(jù)所述統(tǒng)計單元統(tǒng)計的次數(shù)以及所述次數(shù)之和,求取所述次數(shù)與所述次數(shù)之和的比值,所述比值為所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度。
13.如權(quán)利要求9所述的裝置,其特征在于,所述求和模塊包括 乘積計算單元,用于計算所述各CPU所在節(jié)點(diǎn)對的內(nèi)存節(jié)點(diǎn)對權(quán)值與所述各CPU訪問所述任意一個節(jié)點(diǎn)上內(nèi)存的頻度的乘積; 權(quán)重求和單元,用于求取所述乘積計算單元計算所得乘積之和,所述乘積之和為根據(jù)所述參數(shù)計算出的所述各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和。
14.如權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 節(jié)點(diǎn)重選擇模塊,用于檢查所述節(jié)點(diǎn)選擇模塊選擇的各CPU的共享內(nèi)存所在節(jié)點(diǎn)上的內(nèi)存是否滿足所述各CPU的訪問,若不能,則觸發(fā)所述參數(shù)獲取模塊、所述求和模塊和所述節(jié)點(diǎn)選擇模塊重新選擇各CPU的共享內(nèi)存所在節(jié)點(diǎn)。
全文摘要
本發(fā)明實施例提供一種多節(jié)點(diǎn)計算系統(tǒng)下選擇共享內(nèi)存所在節(jié)點(diǎn)的方法和裝置,以提高多節(jié)點(diǎn)計算系統(tǒng)的總體存取性能。所述方法包括獲取確定各中央處理器CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和的參數(shù);根據(jù)所述參數(shù)計算各CPU與任意一個節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和;將其中計算所得內(nèi)存親和性權(quán)值之和最小時的節(jié)點(diǎn)選擇為各CPU的共享內(nèi)存所在節(jié)點(diǎn)。由于訪問共享內(nèi)存的各中央處理器CPU與這一節(jié)點(diǎn)上內(nèi)存之間的內(nèi)存親和性權(quán)值之和最小,因此,各節(jié)點(diǎn)上的CPU訪問這一節(jié)點(diǎn)上的共享內(nèi)存付出的代價最小,在需要訪問共享內(nèi)存的場景下系統(tǒng)的存取效率最高,從而提高了系統(tǒng)的總體存取性能。
文檔編號G06F12/08GK102646058SQ20111004147
公開日2012年8月22日 申請日期2011年2月21日 優(yōu)先權(quán)日2011年2月21日
發(fā)明者李俊, 章曉峰 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1