本發(fā)明屬于處理器技術(shù)領(lǐng)域,特別是涉及一種基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置。
背景技術(shù):
處理器性能評(píng)估的方法有很多種,究其根本來講,處理器的性能是通過其對(duì)數(shù)據(jù)模型的計(jì)算能力來表現(xiàn),而處理器性能的發(fā)揮依賴于緩存及內(nèi)存對(duì)數(shù)據(jù)的傳輸能力。
利用現(xiàn)有的numa技術(shù)(non-uniformmemoryaccess,非統(tǒng)一內(nèi)存訪問機(jī)制),系統(tǒng)所有內(nèi)存被分為若干個(gè)塊,同時(shí)系統(tǒng)擁有多條內(nèi)存總線,處理器通過每個(gè)內(nèi)存總線與一塊內(nèi)存相連構(gòu)成一個(gè)組,這樣numa系統(tǒng)被分為若干個(gè)組,每個(gè)組被稱為一個(gè)節(jié)點(diǎn)(node),處于該節(jié)點(diǎn)中的內(nèi)存被稱為本地內(nèi)存(localmemory),處于其它節(jié)點(diǎn)中的內(nèi)存對(duì)于該組而言被稱為遠(yuǎn)程內(nèi)存(foreignmemory)?,F(xiàn)有的cpu性能處理模型是測(cè)試環(huán)境下運(yùn)行多個(gè)測(cè)試線程,每個(gè)測(cè)試線程遍歷所有的內(nèi)存,然而這種測(cè)試方法存在一定的缺陷,表現(xiàn)在當(dāng)處理器訪問遠(yuǎn)端內(nèi)存的數(shù)據(jù)時(shí),數(shù)據(jù)傳輸速度會(huì)降低,影響cpu性能的發(fā)揮。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供了一種基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置,能夠避免訪問遠(yuǎn)端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
本發(fā)明提供的一種基于numa架構(gòu)的cpu性能優(yōu)化方法,包括:
獲取cpu的性能參數(shù)和指導(dǎo)值;
獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
根據(jù)所述線程的數(shù)量、每個(gè)線程的計(jì)算量以及所述cpu的性能參數(shù)和指導(dǎo)值,評(píng)估cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度;
根據(jù)所述cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度,將每個(gè)節(jié)點(diǎn)的本地內(nèi)存分割為預(yù)設(shè)數(shù)量的本地內(nèi)存塊,每個(gè)所述本地內(nèi)存塊對(duì)應(yīng)所述節(jié)點(diǎn)中的一個(gè)內(nèi)存控制器;
將所述線程綁定到每個(gè)節(jié)點(diǎn)相應(yīng)的處理器核心上,利用對(duì)應(yīng)的所述本地內(nèi)存塊執(zhí)行計(jì)算任務(wù)。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化方法中,
所述評(píng)估cpu的性能對(duì)緩存及內(nèi)存的依賴程度包括:
根據(jù)所述線程的數(shù)量和所述每個(gè)線程的計(jì)算量計(jì)算總數(shù)據(jù)量;
對(duì)比所述總數(shù)據(jù)量和所述cpu的指導(dǎo)值,評(píng)估所述cpu的性能對(duì)緩存及內(nèi)存的依賴程度。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化方法中,
每個(gè)所述內(nèi)存控制器對(duì)應(yīng)一個(gè)或多個(gè)所述處理器核心。
本發(fā)明提供的一種基于numa架構(gòu)的cpu性能優(yōu)化裝置,包括:
第一獲取單元,用于獲取cpu的性能參數(shù)和指導(dǎo)值;
第二獲取單元,用于獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
評(píng)估單元,用于根據(jù)所述線程的數(shù)量、每個(gè)線程的計(jì)算量以及所述cpu的性能參數(shù)和指導(dǎo)值,評(píng)估cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度;
分割單元,用于根據(jù)所述cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度,將每個(gè)節(jié)點(diǎn)的本地內(nèi)存分割為預(yù)設(shè)數(shù)量的本地內(nèi)存塊,每個(gè)所述本地內(nèi)存塊對(duì)應(yīng)所述節(jié)點(diǎn)中的一個(gè)內(nèi)存控制器;
執(zhí)行單元,用于將所述線程綁定到每個(gè)節(jié)點(diǎn)相應(yīng)的處理器核心上,利用對(duì)應(yīng)的所述本地內(nèi)存塊執(zhí)行計(jì)算任務(wù)。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化裝置中,
所述評(píng)估單元具體用于根據(jù)所述線程的數(shù)量和所述每個(gè)線程的計(jì)算量計(jì)算總數(shù)據(jù)量,對(duì)比所述總數(shù)據(jù)量和所述cpu的指導(dǎo)值,評(píng)估所述cpu的性能對(duì)緩存及內(nèi)存的依賴程度。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化裝置中,
每個(gè)所述內(nèi)存控制器對(duì)應(yīng)一個(gè)或多個(gè)所述處理器核心。
通過上述描述可知,本發(fā)明提供的上述基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置,由于該方法包括獲取cpu的性能參數(shù)和指導(dǎo)值;獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;根據(jù)所述線程的數(shù)量、每個(gè)線程的計(jì)算量以及所述cpu的性能參數(shù)和指導(dǎo)值,評(píng)估cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度;根據(jù)所述cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度,將每個(gè)節(jié)點(diǎn)的本地內(nèi)存分割為預(yù)設(shè)數(shù)量的本地內(nèi)存塊,每個(gè)所述本地內(nèi)存塊對(duì)應(yīng)所述節(jié)點(diǎn)中的一個(gè)內(nèi)存控制器;將所述線程綁定到每個(gè)節(jié)點(diǎn)相應(yīng)的處理器核心上,利用對(duì)應(yīng)的所述本地內(nèi)存塊執(zhí)行計(jì)算任務(wù),因此能夠避免訪問遠(yuǎn)端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請(qǐng)實(shí)施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法的示意圖;
圖2為本申請(qǐng)實(shí)施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置的示意圖;
圖3為本申請(qǐng)的numa架構(gòu)的示意圖。
具體實(shí)施方式
本發(fā)明的核心思想在于提供一種基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置,能夠避免訪問遠(yuǎn)端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請(qǐng)實(shí)施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法如圖1所示,圖1為本申請(qǐng)實(shí)施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法的示意圖,該方法包括如下步驟:
s1:獲取cpu的性能參數(shù)和指導(dǎo)值;
s2:獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
s3:根據(jù)所述線程的數(shù)量、每個(gè)線程的計(jì)算量以及所述cpu的性能參數(shù)和指導(dǎo)值,評(píng)估cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度;
s4:根據(jù)所述cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度,將每個(gè)節(jié)點(diǎn)的本地內(nèi)存分割為預(yù)設(shè)數(shù)量的本地內(nèi)存塊,每個(gè)所述本地內(nèi)存塊對(duì)應(yīng)所述節(jié)點(diǎn)中的一個(gè)內(nèi)存控制器;
s5:將所述線程綁定到每個(gè)節(jié)點(diǎn)相應(yīng)的處理器核心上,利用對(duì)應(yīng)的所述本地內(nèi)存塊執(zhí)行計(jì)算任務(wù)。
也就是說,根據(jù)每個(gè)內(nèi)存控制器對(duì)應(yīng)的線程所需要的內(nèi)存大小來分配給其對(duì)應(yīng)大小的本地內(nèi)存塊,這樣,處理器核心在處理數(shù)據(jù)時(shí),就只需要調(diào)用分配好的本地內(nèi)存塊,避免調(diào)用遠(yuǎn)端內(nèi)存,從而提高數(shù)據(jù)處理速度。
通過上述描述可知,本申請(qǐng)實(shí)施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法,由于包括獲取cpu的性能參數(shù)和指導(dǎo)值;獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;根據(jù)所述線程的數(shù)量、每個(gè)線程的計(jì)算量以及所述cpu的性能參數(shù)和指導(dǎo)值,評(píng)估cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度;根據(jù)所述cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度,將每個(gè)節(jié)點(diǎn)的本地內(nèi)存分割為預(yù)設(shè)數(shù)量的本地內(nèi)存塊,每個(gè)所述本地內(nèi)存塊對(duì)應(yīng)所述節(jié)點(diǎn)中的一個(gè)內(nèi)存控制器;將所述線程綁定到每個(gè)節(jié)點(diǎn)相應(yīng)的處理器核心上,利用對(duì)應(yīng)的所述本地內(nèi)存塊執(zhí)行計(jì)算任務(wù),因此能夠避免訪問遠(yuǎn)端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
本申請(qǐng)實(shí)施例提供的第二種基于numa架構(gòu)的cpu性能優(yōu)化方法,是在上述第一種基于numa架構(gòu)的cpu性能優(yōu)化方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述評(píng)估cpu的性能對(duì)緩存及內(nèi)存的依賴程度包括:
根據(jù)所述線程的數(shù)量和所述每個(gè)線程的計(jì)算量計(jì)算總數(shù)據(jù)量;
對(duì)比所述總數(shù)據(jù)量和所述cpu的指導(dǎo)值,評(píng)估所述cpu的性能對(duì)緩存及內(nèi)存的依賴程度。
需要說明的是,為了避免遠(yuǎn)程內(nèi)存的使用,只利用本地內(nèi)存處理任務(wù),那么就必須事先計(jì)算需要多少內(nèi)存,再分配相應(yīng)大小的本地內(nèi)存塊給每個(gè)線程,這樣就能夠提高數(shù)據(jù)處理速度。
本申請(qǐng)實(shí)施例提供的第三種基于numa架構(gòu)的cpu性能優(yōu)化方法,是在上述第二種基于numa架構(gòu)的cpu性能優(yōu)化方法的基礎(chǔ)上,還包括如下技術(shù)特征:
每個(gè)所述內(nèi)存控制器對(duì)應(yīng)一個(gè)或多個(gè)所述處理器核心。
具體可以參考圖3,圖3為本申請(qǐng)的numa架構(gòu)的示意圖,其中處理器2中包括多個(gè)處理器核心3,每個(gè)內(nèi)存控制器4對(duì)應(yīng)了兩個(gè)處理器核心3,每個(gè)處理器核心3對(duì)應(yīng)一個(gè)線程1,而每個(gè)內(nèi)存控制器4對(duì)應(yīng)一個(gè)本地內(nèi)存塊5,當(dāng)然這僅僅是舉例,還可以將內(nèi)存控制器對(duì)應(yīng)到一個(gè)或者多于兩個(gè)處理器核心,此處并不限制。
本申請(qǐng)實(shí)施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置如圖2所示,圖2為本申請(qǐng)實(shí)施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置的示意圖,該裝置包括:
第一獲取單元201,用于獲取cpu的性能參數(shù)和指導(dǎo)值;
第二獲取單元202,用于獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
評(píng)估單元203,用于根據(jù)所述線程的數(shù)量、每個(gè)線程的計(jì)算量以及所述cpu的性能參數(shù)和指導(dǎo)值,評(píng)估cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度;
分割單元204,用于根據(jù)所述cpu的負(fù)載大小及其性能對(duì)緩存及內(nèi)存的依賴程度,將每個(gè)節(jié)點(diǎn)的本地內(nèi)存分割為預(yù)設(shè)數(shù)量的本地內(nèi)存塊,每個(gè)所述本地內(nèi)存塊對(duì)應(yīng)所述節(jié)點(diǎn)中的一個(gè)內(nèi)存控制器;
執(zhí)行單元205,用于將所述線程綁定到每個(gè)節(jié)點(diǎn)相應(yīng)的處理器核心上,利用對(duì)應(yīng)的所述本地內(nèi)存塊執(zhí)行計(jì)算任務(wù)。
也就是說,根據(jù)每個(gè)內(nèi)存控制器對(duì)應(yīng)的線程所需要的內(nèi)存大小來分配給其對(duì)應(yīng)大小的本地內(nèi)存塊,這樣,處理器核心在處理數(shù)據(jù)時(shí),就只需要調(diào)用分配好的本地內(nèi)存塊,避免調(diào)用遠(yuǎn)端內(nèi)存,從而提高數(shù)據(jù)處理速度。
本申請(qǐng)實(shí)施例提供的第二基于numa架構(gòu)的cpu性能優(yōu)化裝置,是在上述第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
所述評(píng)估單元具體用于根據(jù)所述線程的數(shù)量和所述每個(gè)線程的計(jì)算量計(jì)算總數(shù)據(jù)量,對(duì)比所述總數(shù)據(jù)量和所述cpu的指導(dǎo)值,評(píng)估所述cpu的性能對(duì)緩存及內(nèi)存的依賴程度。
需要說明的是,為了避免遠(yuǎn)程內(nèi)存的使用,只利用本地內(nèi)存處理任務(wù),那么就必須事先計(jì)算需要多少內(nèi)存,再分配相應(yīng)大小的本地內(nèi)存塊給每個(gè)線程,這樣就能夠提高數(shù)據(jù)處理速度。
本申請(qǐng)實(shí)施例提供的第三基于numa架構(gòu)的cpu性能優(yōu)化裝置,是在上述第二種基于numa架構(gòu)的cpu性能優(yōu)化裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
每個(gè)所述內(nèi)存控制器對(duì)應(yīng)一個(gè)或多個(gè)所述處理器核心。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。