本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種預(yù)測核間性能干擾的方法及裝置。
背景技術(shù):
云計(jì)算以多核處理器提供的強(qiáng)大計(jì)算能力為基礎(chǔ),將互聯(lián)網(wǎng)的軟硬件資源和信息按需提供給計(jì)算機(jī)和其他設(shè)備。由于,云計(jì)算強(qiáng)大的計(jì)算能力是由數(shù)量眾多的片上多核處理器組成的,可以承載來自不同用戶的、需求各異的應(yīng)用程序,使得各種需求不同的應(yīng)用程序在共享資源的同時(shí),相互之間存在嚴(yán)重的且不可預(yù)知的核間性能干擾。
通常,為了保證高服務(wù)質(zhì)量(英文:Quality of Service,縮寫:QoS)的優(yōu)先級(jí)程序的性能不被其他程序干擾,會(huì)禁止高QoS優(yōu)先級(jí)程序與其他程序共同運(yùn)行。雖然,這樣能夠保證高QoS優(yōu)先級(jí)程序的性能不被干擾,但是,由于禁止了其他程序的運(yùn)行,使得云計(jì)算環(huán)境中的資源利用率低下。為了解決資源利用率低的問題,在禁止程序共同運(yùn)行之前,需要對程序遭受的核間性能干擾進(jìn)行預(yù)測,使得遭受的性能干擾較低的高QoS程序允許與其他程序同時(shí)運(yùn)行,從而提高資源利用率。所以,預(yù)測程序遭受的核間性能干擾成為提高資源利用率的首要問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種預(yù)測核間性能干擾的方法及裝置,提供了一種用以測量程序遭受的核間性能干擾的參數(shù)的模型。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
第一方面,本發(fā)明實(shí)施例提供一種預(yù)測核間性能干擾的方法,應(yīng)用于多核處理器,包括:
分別獲取程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,以及每個(gè)程序在每組中的主處理器上的性能干擾函數(shù)的參數(shù);其中,每組中處理器的架構(gòu)相同;所述程序的性能干擾函數(shù)的參數(shù)用以確定所述程 序的性能干擾函數(shù),所述程序的性能干擾函數(shù)用以表示:程序集中多個(gè)與所述程序共同運(yùn)行的程序的行為特征相互作用時(shí)所述程序遭受的性能干擾;
根據(jù)所述程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,構(gòu)建特征預(yù)測模型;其中,所述特征預(yù)測模型用于表示:程序在主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上運(yùn)行時(shí)的行為特征之間的關(guān)系;
根據(jù)所述程序集中每個(gè)程序在主處理器上的行為特征、主處理器自身特征以及性能干擾函數(shù)的參數(shù),構(gòu)建性能干擾函數(shù)預(yù)測模型,其中,所述性能干擾函數(shù)預(yù)測模型用于:根據(jù)程序在處理器上的行為特征和處理器自身特征預(yù)測程序在處理器上的性能干擾函數(shù)的參數(shù)。
在第一方面的第一種可能實(shí)現(xiàn)的方式中,結(jié)合第一方面,所述獲取程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征包括:
通過剖析(profiling)方式獲取程序集中的每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征。
在第一方面的第二種可能實(shí)現(xiàn)的方式中,結(jié)合第一方面或第一方面的第一種可能實(shí)現(xiàn)的方式,所述根據(jù)程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,構(gòu)建特征預(yù)測模型包括:
通過機(jī)器學(xué)習(xí)方式分析每個(gè)程序在所述主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上的行為特征之間的關(guān)聯(lián)性;
根據(jù)所述關(guān)聯(lián)性構(gòu)建所述特征預(yù)測模型。
在第一方面的第三種可能實(shí)現(xiàn)的方式中,結(jié)合第一方面至第一方面的第二種可能實(shí)現(xiàn)的方式中的任一種方式,所述性能干擾函數(shù)預(yù)測模型為:神經(jīng)網(wǎng)絡(luò)模型。
在第一方面的第四種可能實(shí)現(xiàn)的方式中,結(jié)合第一方面的第三種可能實(shí)現(xiàn)的方式,所述根據(jù)所述程序集中每個(gè)程序在主處理器上的行為特征以及性能干擾函數(shù)的參數(shù),構(gòu)建性能干擾函數(shù)預(yù)測模型包括:
根據(jù)所述訓(xùn)練集中每個(gè)程序在主處理器上的行為特征、主處理器自身的特征以及性能干擾函數(shù)的參數(shù),建立初始神經(jīng)網(wǎng)絡(luò)模型;其中,所述初始神經(jīng)網(wǎng)絡(luò)模型包含輸入層以及輸出層;所述輸入層與所述輸出層之間包 含中間層,所述輸入層與所述中間層之間通過連接權(quán)值連接,所述中間層與所述輸出層之間通過連接權(quán)值連接,所述輸入層的輸入元為程序在主處理器上的行為特征和主處理器自身特征,所述輸出層的輸出元為性能干擾函數(shù)的參數(shù);
將所述程序集作為所述初始神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練程序集,利用所述訓(xùn)練程序集迭代訓(xùn)練所述初始神經(jīng)網(wǎng)絡(luò)模型,獲得穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型;其中,所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型為連接權(quán)值不隨迭代次數(shù)改變或改變小于預(yù)設(shè)閾值的神經(jīng)網(wǎng)絡(luò)模型;或者為預(yù)測誤差不隨迭代次數(shù)改變或改變小于閾值的神經(jīng)網(wǎng)絡(luò)模型;
將所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型作為所述性能干擾函數(shù)預(yù)測模型。
在第一方面的第五種可能實(shí)現(xiàn)的方式中,結(jié)合第一方面至第一方面的第四種可能實(shí)現(xiàn)的方式中的任一種方式,所述方法還包括:
獲取第一程序在目標(biāo)處理器所在組內(nèi)的主處理器上運(yùn)行時(shí)的第一行為特征;
將所述第一行為特征輸入所述特征預(yù)測模型,獲取第一程序在所述目標(biāo)處理器上運(yùn)行時(shí)的第二行為特征;
將所述第二行為特征和所述目標(biāo)處理器自身特征輸入所述性能干擾函數(shù)預(yù)測模型,獲取所述第一程序在所述目標(biāo)處理器上的性能干擾函數(shù)的參數(shù)。
在第一方面的第六種可能實(shí)現(xiàn)的方式中,結(jié)合第一方面的第五種可能實(shí)現(xiàn)的方式,所述方法還包括:
將第一處理器加入第一組處理器中;
獲得第一特征預(yù)測模型;其中,所述第一特征預(yù)測模型用于表示:程序在所述第一處理器上運(yùn)行的行為特征與程序在所述第一組的主處理器上運(yùn)行時(shí)的行為特征之間的關(guān)系;
將第二程序在所述第一組的主處理器上的運(yùn)行時(shí)的行為特征輸入所述第一特征預(yù)測模型,獲取第二程序在所述第一處理器上運(yùn)行時(shí)的第三行為特征;
將所述第三行為特征和所述第一處理器自身特征輸入所述性能干擾函數(shù)預(yù)測模型,獲取第二程序在所述第一處理器上的性能干擾函數(shù)的參 數(shù)。
在第一方面的第七種可能實(shí)現(xiàn)的方式中,結(jié)合第一方面至第一方面的第六種可能實(shí)現(xiàn)的方式中的任一種方式,所述共享資源包括:共享緩存、共享領(lǐng)取器、共享帶寬和共享輸入輸出設(shè)備;
所述行為特征包括:程序?qū)蚕砭彺娴男袨樘卣?、程序?qū)蚕眍I(lǐng)取器的行為特征、程序?qū)蚕韼挼男袨樘卣饕约皩蚕磔斎胼敵鲈O(shè)備的行為特征。
第二方面,本發(fā)明實(shí)施例提供一種預(yù)測核間性能干擾的裝置,包括:
獲取單元,用于分別獲取程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,以及每個(gè)程序在每組中的主處理器上的性能干擾函數(shù)的參數(shù);其中,每組中處理器的架構(gòu)相同;所述程序的性能干擾函數(shù)的參數(shù)用以確定所述程序的性能干擾函數(shù),所述程序的性能干擾函數(shù)用以表示:程序集中多個(gè)與所述程序共同運(yùn)行的程序的行為特征相互作用時(shí)所述程序遭受的性能干擾;
特征預(yù)測模型構(gòu)建單元,用于根據(jù)所述程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,構(gòu)建特征預(yù)測模型;其中,所述特征預(yù)測模型用于表示:程序在主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上運(yùn)行時(shí)的行為特征之間的關(guān)系;
性能干擾函數(shù)預(yù)測模型構(gòu)建單元,用于根據(jù)所述程序集中每個(gè)程序在主處理器上的行為特征、主處理器自身特征以及性能干擾函數(shù)的參數(shù),構(gòu)建性能干擾函數(shù)預(yù)測模型,其中,所述性能干擾函數(shù)預(yù)測模型用于:根據(jù)程序在處理器上的行為特征和處理器自身特征預(yù)測程序在處理器上的性能干擾函數(shù)的參數(shù)。
在第二方面的第一種可能實(shí)現(xiàn)的方式中,結(jié)合第二方面,所述獲取單元,具體用于:
通過剖析(profiling)方式獲取程序集中的每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征。
在第二方面的第二種可能實(shí)現(xiàn)的方式中,結(jié)合第二方面或第二方面的第一種可能實(shí)現(xiàn)的方式,所述特征預(yù)測模型構(gòu)建單元,具體用于:
通過機(jī)器學(xué)習(xí)方式分析每個(gè)程序在所述主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上的行為特征之間 的關(guān)聯(lián)性;
根據(jù)所述關(guān)聯(lián)性構(gòu)建所述特征預(yù)測模型。
在第二方面的第三種可能實(shí)現(xiàn)的方式中,結(jié)合第二方面至第二方面的第二種可能實(shí)現(xiàn)的方式中的任一種方式,所述性能干擾函數(shù)預(yù)測模型為:神經(jīng)網(wǎng)絡(luò)模型。
在第二方面的第四種可能實(shí)現(xiàn)的方式中,結(jié)合第二方面的第三種可能實(shí)現(xiàn)的方式,所述性能干擾函數(shù)預(yù)測模型構(gòu)建單元,具體用于:
根據(jù)所述訓(xùn)練集中每個(gè)程序在主處理器上的行為特征、主處理器自身的特征以及性能干擾函數(shù)的參數(shù),建立初始神經(jīng)網(wǎng)絡(luò)模型;其中,所述初始神經(jīng)網(wǎng)絡(luò)模型包含輸入層以及輸出層;所述輸入層與所述輸出層之間包含中間層,所述輸入層與所述中間層之間通過連接權(quán)值連接,所述中間層與所述輸出層之間通過連接權(quán)值連接,所述輸入層的輸入元為程序在主處理器上的行為特征和主處理器自身特征,所述輸出層的輸出元為性能干擾函數(shù)的參數(shù);
將所述程序集作為所述初始神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練程序集,利用所述訓(xùn)練程序集迭代訓(xùn)練所述初始神經(jīng)網(wǎng)絡(luò)模型,獲得穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型;其中,所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型為連接權(quán)值不隨迭代次數(shù)改變或改變小于預(yù)設(shè)閾值的神經(jīng)網(wǎng)絡(luò)模型;或者為預(yù)測誤差不隨迭代次數(shù)改變或改變小于閾值的神經(jīng)網(wǎng)絡(luò)模型;
將所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型作為所述性能干擾函數(shù)預(yù)測模型。
在第二方面的第五種可能實(shí)現(xiàn)的方式中,結(jié)合第二方面至第二方面的第四種可能實(shí)現(xiàn)的方式中的任一種方式,所述共享資源包括:共享緩存、共享領(lǐng)取器、共享帶寬和共享輸入輸出設(shè)備;
所述行為特征包括:程序?qū)蚕砭彺娴男袨樘卣?、程序?qū)蚕眍I(lǐng)取器的行為特征、程序?qū)蚕韼挼男袨樘卣饕约皩蚕磔斎胼敵鲈O(shè)備的行為特征。
由上可知,本發(fā)明實(shí)施例提供一種預(yù)測核間性能干擾的方法及裝置,將異構(gòu)處理器按照架構(gòu)進(jìn)行分組之后,構(gòu)建了特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型,進(jìn)而可以很方便地實(shí)現(xiàn)了根據(jù)已有處理器上的行為特征和性能干擾函數(shù)的參數(shù)來獲得程序在其它處理器上的行為特征和性能干擾函 數(shù)的參數(shù),大大降低了獲得核間性能干擾的復(fù)雜度。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種預(yù)測核間性能干擾的方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種預(yù)測核間性能干擾的裝置20的結(jié)構(gòu)圖;
圖3為本發(fā)明實(shí)施例提供的一種預(yù)測核間性能干擾的裝置30的結(jié)構(gòu)圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
需要說明的是,在執(zhí)行本發(fā)明提供的方法之前,需要確定一個(gè)合適的程序集,其中,該合適的程序集需要對整體的輸入程序有很強(qiáng)的代表性,所以在確定的時(shí)候需要遵循一定的原則,首先,程序集要有廣泛性,即程序集中程序的行為特征所覆蓋的范圍要廣泛,需要覆蓋到程序特征向量的所有方面,具體來說,就是指程序集中的程序應(yīng)當(dāng)涵蓋計(jì)算密集型、訪存密集型等不同的類型;其次,程序集要有針對性,即指程序集中的程序要根據(jù)輸入程序的行為特征不同而做出相應(yīng)的調(diào)整,如,若輸入的應(yīng)用程序是以在線服務(wù)的程序居多,那么程序集中的程序也要以在線服務(wù)的程序?yàn)橹鳌?/p>
此外,本發(fā)明的精確性和實(shí)驗(yàn)數(shù)據(jù)的規(guī)模相關(guān),程序集的規(guī)模直接影響構(gòu)建的特征預(yù)測模型以及性能干擾預(yù)測模型的準(zhǔn)確度,程序集規(guī)模越大,特征預(yù)測模型以及性能干擾預(yù)測模型的準(zhǔn)確度就越高。但是,由于程 序集數(shù)量比較大,進(jìn)行程序剖析的時(shí)間也越長,因此,可以根據(jù)通過調(diào)整程序集的規(guī)模,從而調(diào)整特征預(yù)測模型和性能干擾預(yù)測模型的準(zhǔn)確度和剖析時(shí)間之間的平衡。
實(shí)施例一
圖1示出了本發(fā)明實(shí)施例提供的一種預(yù)測性能干擾的方法的流程圖,應(yīng)用于多核處理器,如圖1所示,所述方法可以包括:
101、分別獲取程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,以及每個(gè)程序在每組中的主處理器上的性能干擾函數(shù)的參數(shù);其中,每組中處理器的架構(gòu)相同;所述程序的性能干擾函數(shù)的參數(shù)用以確定所述程序的性能干擾函數(shù),所述程序的性能干擾函數(shù)用以表示:程序集中多個(gè)與所述程序共同運(yùn)行的程序的行為特征相互作用時(shí)所述程序遭受的性能干擾。
雖然,在多核處理器組成的計(jì)算環(huán)境中,各處理器之間存在異構(gòu)性,如:相同的基于X86的處理器之間的型號(hào)不同,每個(gè)型號(hào)對應(yīng)的架構(gòu)不同,但是,研究表明:同架構(gòu)的處理器之間的差異較小,而不同架構(gòu)的處理器之間差異則比較大;例如,同為Nehalem架構(gòu)的處理器比較相似,而Nehalem架構(gòu)的處理器和Sandy Bridge架構(gòu)的處理器差距就比較大。鑒于此,本發(fā)明實(shí)施例中,可以將所有處理器按照架構(gòu)的異同進(jìn)行分組,使得相同架構(gòu)的處理器處于同一組,然后,再根據(jù)同架構(gòu)的處理器之間的相近性,尋找相同架構(gòu)的處理器間程序的行為特征和遭受的核間性能干擾之間的相關(guān)性,如此,將需要處理的眾多型號(hào)處理器之間的異構(gòu)降低到了幾種架構(gòu)之間的異構(gòu),大大降低了運(yùn)算復(fù)雜度。
例如,云計(jì)算環(huán)境中包含8個(gè)型號(hào)不同的處理器,處理器1~處理器5均為來自Intel的基于Nehalem微架構(gòu)的處理器,處理器7~處理器10均為來自Intel的基于Sandy Bridge架構(gòu)的處理器,則可以將這10個(gè)處理器分為(處理器1,處理器2,處理器3,處理器4,處理器5)和(處理器6、處理器7、處理器8)兩組。
其中,主處理器可以為每組中的任一處理器,也可以為組內(nèi)處理能力最強(qiáng)的處理器,具體為哪個(gè)處理器,本發(fā)明實(shí)施例對比不進(jìn)行限定。例如,可以選擇型號(hào)為E5506的處理器作為Nehalem架構(gòu)分組中的主處理器。
所述行為特征可以稱為程序在處理器上運(yùn)行時(shí)對共享資源的消耗,也 可以稱為程序在處理器上運(yùn)行時(shí)對共享資源的壓力;所述共享資源包括但不限于:共享緩存、共享領(lǐng)取器、共享帶寬和共享輸入輸出設(shè)備;相應(yīng)的,程序的行為特征可以包括:程序?qū)蚕砭彺娴男袨樘卣?、程序?qū)蚕眍I(lǐng)取器的行為特征、程序?qū)蚕韼挼男袨樘卣饕约皩蚕磔斎胼敵鲈O(shè)備的行為特征等多個(gè)子行為特征;其中,程序?qū)蚕砭彺娴男袨樘卣骺梢杂贸绦蚓彺婷新?、單位時(shí)間內(nèi)的緩存缺少次數(shù)或每百萬條指令內(nèi)的緩存缺少次數(shù)來表示;對共享領(lǐng)取器的行為特征可以用單位時(shí)間內(nèi)的領(lǐng)取次數(shù)或每百萬條指令內(nèi)的領(lǐng)取次數(shù)來表示;對共享帶寬的行為特征可以用程序運(yùn)行時(shí)使用的帶寬流量來表示;對共享輸入輸出設(shè)備的行為特征可以用程序使用其輸入輸出讀寫請求的次數(shù)、每次讀寫請求的字節(jié)數(shù)來表示。通常,將包含多個(gè)子行為特征的行為特征以向量的形式表示,如,程序A運(yùn)行時(shí)的行為特征可以為:PA=(PA1,PA2,PA3…PAK),其中,k為共享資源的數(shù)目,PA為程序A運(yùn)行時(shí)的特征向量,PAi為程序A在共享資源i的行為特征。
所述性能干擾函數(shù)可以表示為程序共同運(yùn)行時(shí)對共享資源的總壓力的分段函數(shù):PDA=fA(Aggregate(P1),Aggregate(P2),..,Aggregate(Pk))=fA(Aggregate(PA,Pco-runners),PDA代表程序A遭受的核間性能干擾,函數(shù)fA是對應(yīng)程序A的分段函數(shù),其自變量的數(shù)目為共享資源的數(shù)目k,Aggregate(Pi)(i=1,2..,k)是共同運(yùn)行的所有程序?qū)Y源i的聚集的總壓力,是函數(shù)fA的自變量。
對于所有程序?qū)?yīng)的函數(shù)f,具有如下性質(zhì):在同一處理器上,所有程序?qū)?yīng)的函數(shù)f的形式相同,程序?qū)?yīng)的函數(shù)參數(shù)可以為程序集中多個(gè)共同運(yùn)行的程序的行為特征相互作用時(shí)所述共同運(yùn)行的程序各自性能的下降率,由于不同程序遭受的干擾不盡相同,所以,各程序?qū)?yīng)的性能干擾函數(shù)的參數(shù)也是不同的,比如在某一處理器上,所有程序?qū)?yīng)的函數(shù)形式都是線性函數(shù),即自變量為Aggregate(Pi)(i=1…k)的線性函數(shù),但是不同的程序的函數(shù)參數(shù)不同,如程序A對應(yīng)函數(shù)fA=2*Aggregate(P1)+3*Aggregate(P2)+CA,而程序B為fB=4*Aggregate(P1)+5*Aggregate(P2)+CB,兩個(gè)函數(shù)都為線性函數(shù),但A,B對應(yīng)的函數(shù)的參數(shù)不同。
優(yōu)選的,可以通過剖析(profiling)方式獲取程序集中的每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征;也可以通過編譯分析的方式獲取程序集 中的每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征。
102、根據(jù)所述程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,構(gòu)建特征預(yù)測模型;其中,所述特征預(yù)測模型用于表示:程序在主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上運(yùn)行時(shí)的行為特征之間的關(guān)系。
優(yōu)選的,特征預(yù)測模型可以包含:緩存壓力預(yù)測子模型、領(lǐng)取器壓力預(yù)測子模型、帶寬壓力預(yù)測子模型以及輸入輸出設(shè)備壓力預(yù)測子模型等多個(gè)子模型。
示例性的,所述根據(jù)程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,構(gòu)建特征預(yù)測模型可以包括:
通過機(jī)器學(xué)習(xí)方式分析每個(gè)程序在所述主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上的行為特征之間的關(guān)聯(lián)性;
根據(jù)所述關(guān)聯(lián)性構(gòu)建所述特征預(yù)測模型。
例如,共享資源包含:共享緩存、共享帶寬2個(gè)資源,分組后組1(處理器1,處理器2,處理器3,處理器4,處理器5)中的主處理器為處理器3,組2(處理器6、處理器7、處理器8)中的主處理器為處理器7,程序集中僅包含兩個(gè)高QoS優(yōu)先級(jí)程序:程序A和程序B,用Pmni表示:程序m在處理器n上運(yùn)行時(shí)對共享資源i的行為特征;則程序A在每個(gè)處理器上的行為特征,以及程序B在每個(gè)處理器上的行為特征為:(PA11,PA12),(PA21,PA22),(PA31,PA32),(PA41,PA42),(PA51,PA52),(PA61,PA62),(PA71,PA72),(PA81,PA82)和(PB11,PB12),(PB21,PB22),(PB31,PB32),(PB41,PB42),(PB51,PB52),(PB61,PB62),(PB71,PB72),(PB81,PB82),則可以通過機(jī)器學(xué)習(xí)方式統(tǒng)計(jì)出如下所述的:任一程序(如程序A)在任一主處理器(如處理器3)上的行為特征與處理器在同架構(gòu)的其他處理器上的行為特征之間的關(guān)系:
對于同架構(gòu)的處理器,程序在不同處理器上執(zhí)行中共享緩存的總數(shù)量L2LinesIn是固定不變的,即對于架構(gòu)相同的處理器3和j,L2LinesInA3=L2LinesInAj,另CacheA3代表程序A在處理器3上對共享緩存的行為特征,CacheAj代表程序A在同架構(gòu)的其他任一處理器j上對共享緩存的行為特征,則CacheA3=L2LinesInA3/TA3=L2LinesInAj/a3j*TAj=CacheAj/ a3j,即CacheAj=CacheA3*a3j,其中,TA3為程序A在處理器3上的執(zhí)行時(shí)間,TAj為程序A在處理器j上的執(zhí)行時(shí)間,a3j為程序在任一個(gè)處理器上的執(zhí)行時(shí)間與程序在主處理器3上的執(zhí)行時(shí)間的比值;
在同一處理器上,確定程序?qū)蚕韼挼男袨樘卣骱蛯蚕砭彺娴男袨樘卣髦g存在相關(guān)性,即BwAi=hi(L2LinesInAi,CacheSizei),BwAi代表程序在處理器i上對共享帶寬的行為特征,CacheSizei是處理器i上所有程序共享緩存的總大小;將獲得的程序集中每個(gè)程序在處理器i上對共享帶寬及共享緩存的行為特征,代入BwAi=hi(L2LinesInAi,CacheSizei)中,可以通過機(jī)器學(xué)習(xí)獲得處理器i對應(yīng)的hi值,進(jìn)而可以獲得任一處理器上帶寬壓力預(yù)測子模型;
從而可知,構(gòu)建出的特征預(yù)測模型包括:
緩存壓力預(yù)測子模型:CacheAj=CacheA3*a3j;
帶寬壓力預(yù)測子模型:BwAi=hi(L2LinesInAi,CacheSizei)。
經(jīng)過步驟103的建模之后,便可以在后期進(jìn)行行為特征測量時(shí),僅需要獲取程序在主處理器上對共享緩存的行為特征,就可以根據(jù)緩存壓力預(yù)測子模型獲取程序在其他任一處理器上對共享緩存的行為特征,進(jìn)而并根據(jù)帶寬壓力預(yù)測子模型獲取程序在該處理器上對共享帶寬的行為特征,使得計(jì)算復(fù)雜度大大降低。
103、根據(jù)所述程序集中每個(gè)程序在主處理器上的行為特征、主處理器自身特征以及性能干擾函數(shù)的參數(shù),構(gòu)建性能干擾函數(shù)預(yù)測模型,其中,所述性能干擾函數(shù)預(yù)測模型用于:根據(jù)程序在處理器上的行為特征和處理器自身特征預(yù)測程序在處理器上的性能干擾函數(shù)的參數(shù)。
其中,處理器自身特征可以包括處理器的緩存大小、頻率大小、內(nèi)存帶寬大小等,這些特征可以通過查閱處理器廠商的公開的技術(shù)手冊得到或者借助已經(jīng)公開的軟件實(shí)現(xiàn)得到。
優(yōu)選的,所述性能干擾函數(shù)預(yù)測模型可以為:神經(jīng)網(wǎng)絡(luò)模型。
示例性的,所述根據(jù)所述程序集中每個(gè)程序在主處理器上的行為特征、主處理器自身特征以及性能干擾函數(shù)的參數(shù),構(gòu)建性能干擾函數(shù)預(yù)測模型可以包括:
根據(jù)所述訓(xùn)練集中每個(gè)程序在主處理器上的行為特征、主處理器自身 的特征以及性能干擾函數(shù)的參數(shù),建立初始神經(jīng)網(wǎng)絡(luò)模型;其中,所述初始神經(jīng)網(wǎng)絡(luò)模型包含輸入層以及輸出層;所述輸入層與所述輸出層之間包含中間層,所述輸入層與所述中間層之間通過連接權(quán)值連接,所述中間層與所述輸出層之間通過連接權(quán)值連接,所述輸入層的輸入元為程序在主處理器上的行為特征和主處理器自身特征,所述輸出層的輸出元為性能干擾函數(shù)的參數(shù);
將所述程序集作為所述初始神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練程序集,利用所述訓(xùn)練程序集迭代訓(xùn)練所述初始神經(jīng)網(wǎng)絡(luò)模型,獲得穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型;其中,所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型為連接權(quán)值不隨迭代次數(shù)改變或改變小于預(yù)設(shè)閾值的神經(jīng)網(wǎng)絡(luò)模型;或者為預(yù)測誤差不隨迭代次數(shù)改變或改變小于閾值的神經(jīng)網(wǎng)絡(luò)模型;
將所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型作為所述性能干擾函數(shù)預(yù)測模型。
需要說明的是,上述步驟103和104的順序不分先后,可以同時(shí)進(jìn)行,也可以先103再104,還可以先104再103,本發(fā)明實(shí)施例對比不進(jìn)行限制。
進(jìn)一步的,本發(fā)明實(shí)施例中,在構(gòu)建特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型之后,便可以根據(jù)特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型對任一程序在任一處理器上的性能干擾進(jìn)行分析,具體如下:
獲取第一程序在目標(biāo)處理器所在組內(nèi)的主處理器上運(yùn)行時(shí)的第一行為特征;
將所述第一行為特征輸入所述特征預(yù)測模型,獲取第一程序在所述目標(biāo)處理器上運(yùn)行時(shí)的第二行為特征;
將所述第二行為特征和所述目標(biāo)處理器自身特征輸入所述性能干擾函數(shù)預(yù)測模型,獲取所述第一程序在所述目標(biāo)處理器上的性能干擾函數(shù)的參數(shù)。
進(jìn)一步的,本發(fā)明實(shí)施例中,在構(gòu)建特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型之后,便可以根據(jù)該性能干擾函數(shù)及重構(gòu)的特征預(yù)測模型對任一程序在任一新添加的處理器上的性能干擾進(jìn)行分析,具體如下:
將第一處理器加入第一組處理器中;
獲得第一特征預(yù)測模型;其中,所述第一特征預(yù)測模型用于表示:程 序在所述第一處理器上運(yùn)行的行為特征與程序在所述第一組的主處理器上運(yùn)行時(shí)的行為特征之間的關(guān)系;
將第二程序在所述第一組的主處理器上的運(yùn)行時(shí)的行為特征輸入所述第一特征預(yù)測模型,獲取第二程序在所述第一處理器上運(yùn)行時(shí)的第三行為特征;
將所述第三行為特征和所述第一處理器自身特征輸入所述性能干擾函數(shù)預(yù)測模型,獲取第二程序在所述第一處理器上的性能干擾函數(shù)的參數(shù)。
由上可知,本發(fā)明實(shí)施例提供一種預(yù)測核間性能干擾的方法,將異構(gòu)處理器按照架構(gòu)進(jìn)行分組之后,構(gòu)建了特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型,進(jìn)而可以很方便地實(shí)現(xiàn)了根據(jù)已有處理器上的行為特征和性能干擾函數(shù)的參數(shù)來獲得程序在其它處理器上的行為特征和性能干擾函數(shù)的參數(shù),大大降低了獲得核間性能干擾的復(fù)雜度。
實(shí)施例二
圖2示出了本發(fā)明實(shí)施例提供的一種預(yù)測性能干擾的裝置20的結(jié)構(gòu)圖,用于執(zhí)行實(shí)施例一所述的方法,如圖2所示,可以包括:
獲取單元201,用于分別獲取程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,以及每個(gè)程序在每組中的主處理器上的性能干擾函數(shù)的參數(shù);其中,每組中處理器的架構(gòu)相同;所述程序的性能干擾函數(shù)的參數(shù)用以確定所述程序的性能干擾函數(shù),所述程序的性能干擾函數(shù)用以表示:程序集中多個(gè)與所述程序共同運(yùn)行的程序的行為特征相互作用時(shí)所述程序遭受的性能干擾。
特征預(yù)測模型構(gòu)建單元202,用于根據(jù)所述程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,構(gòu)建特征預(yù)測模型;其中,所述特征預(yù)測模型用于表示:程序在主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上運(yùn)行時(shí)的行為特征之間的關(guān)系;
性能干擾函數(shù)預(yù)測模型構(gòu)建單元203,用于根據(jù)所述程序集中每個(gè)程序在主處理器上的行為特征、主處理器自身特征以及性能干擾函數(shù)的參數(shù),構(gòu)建性能干擾函數(shù)預(yù)測模型,其中,所述性能干擾函數(shù)預(yù)測模型用于:根據(jù)程序在處理器上的行為特征和處理器自身特征預(yù)測程序在處理器上的性能干擾函數(shù)的參數(shù)。
雖然,在多核處理器組成的計(jì)算環(huán)境中,各處理器之間存在異構(gòu)性,如:相同的基于X86的處理器之間的型號(hào)不同,每個(gè)型號(hào)對應(yīng)的架構(gòu)不同,但是,研究表明:同架構(gòu)的處理器之間的差異較小,而不同架構(gòu)的處理器之間差異則比較大;例如,同為Nehalem架構(gòu)的處理器比較相似,而Nehalem架構(gòu)的處理器和Sandy Bridge架構(gòu)的處理器差距就比較大。鑒于此,本發(fā)明實(shí)施例中,可以將所有處理器按照架構(gòu)的異同進(jìn)行分組,使得相同架構(gòu)的處理器處于同一組,然后,再根據(jù)同架構(gòu)的處理器之間的相近性,尋找相同架構(gòu)的處理器間程序的行為特征和遭受的核間性能干擾之間的相關(guān)性,如此,將需要處理的眾多型號(hào)處理器之間的異構(gòu)降低到了幾種架構(gòu)之間的異構(gòu),大大降低了運(yùn)算復(fù)雜度。
例如,云計(jì)算環(huán)境中包含8個(gè)型號(hào)不同的處理器,處理器1~處理器5均為來自Intel的基于Nehalem微架構(gòu)的處理器,處理器7~處理器10均為來自Intel的基于Sandy Bridge架構(gòu)的處理器,則可以將這10個(gè)處理器分為(處理器1,處理器2,處理器3,處理器4,處理器5)和(處理器6、處理器7、處理器8)兩組。
其中,主處理器可以為每組中的任一處理器,也可以為組內(nèi)處理能力最強(qiáng)的處理器,具體為哪個(gè)處理器,本發(fā)明實(shí)施例對比不進(jìn)行限定。例如,可以選擇型號(hào)為E5506的處理器作為Nehalem架構(gòu)分組中的主處理器。
所述行為特征可以稱為程序在處理器上運(yùn)行時(shí)對共享資源的消耗,也可以稱為程序在處理器上運(yùn)行時(shí)對共享資源的壓力;所述共享資源包括但不限于:共享緩存、共享領(lǐng)取器、共享帶寬和共享輸入輸出設(shè)備;相應(yīng)的,程序的行為特征可以包括:程序?qū)蚕砭彺娴男袨樘卣鳌⒊绦驅(qū)蚕眍I(lǐng)取器的行為特征、程序?qū)蚕韼挼男袨樘卣饕约皩蚕磔斎胼敵鲈O(shè)備的行為特征等多個(gè)子行為特征;其中,程序?qū)蚕砭彺娴男袨樘卣骺梢杂贸绦蚓彺婷新?、單位時(shí)間內(nèi)的緩存缺少次數(shù)或每百萬條指令內(nèi)的緩存缺少次數(shù)來表示;對共享領(lǐng)取器的行為特征可以用單位時(shí)間內(nèi)的領(lǐng)取次數(shù)或每百萬條指令內(nèi)的領(lǐng)取次數(shù)來表示;對共享帶寬的行為特征可以用程序運(yùn)行時(shí)使用的帶寬流量來表示;對共享輸入輸出設(shè)備的行為特征可以用程序使用其輸入輸出讀寫請求的次數(shù)、每次讀寫請求的字節(jié)數(shù)來表示。通常,將包含多個(gè)子行為特征的行為特征以向量的形式表示,如,程序A運(yùn)行時(shí)的行 為特征可以為:PA=(PA1,PA2,PA3…PAK),其中,k為共享資源的數(shù)目,PA為程序A運(yùn)行時(shí)的特征向量,PAi為程序A在共享資源i的行為特征。
所述性能干擾函數(shù)可以表示為程序共同運(yùn)行時(shí)對共享資源的總壓力的分段函數(shù):PDA=fA(Aggregate(P1),Aggregate(P2),..,Aggregate(Pk))=fA(Aggregate(PA,Pco-runners),PDA代表程序A遭受的核間性能干擾,函數(shù)fA是對應(yīng)程序A的分段函數(shù),其自變量的數(shù)目為共享資源的數(shù)目k,Aggregate(Pi)(i=1,2..,k)是共同運(yùn)行的所有程序?qū)Y源i的聚集的總壓力,是函數(shù)fA的自變量。
優(yōu)選的,特征預(yù)測模型可以包含:緩存壓力預(yù)測子模型、領(lǐng)取器壓力預(yù)測子模型、帶寬壓力預(yù)測子模型以及輸入輸出設(shè)備壓力預(yù)測子模型等多個(gè)子模型。
示例性的,所述獲取單元201,具體用于:
通過profiling方式獲取程序集中的每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征。
示例性的,所述特征預(yù)測模型構(gòu)建單元202,具體用于:
通過機(jī)器學(xué)習(xí)方式分析每個(gè)程序在所述主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上的行為特征之間的關(guān)聯(lián)性;
根據(jù)所述關(guān)聯(lián)性構(gòu)建所述特征預(yù)測模型。
優(yōu)選的,本發(fā)明實(shí)施例中,所述性能干擾函數(shù)預(yù)測模型可以為神經(jīng)網(wǎng)絡(luò)模型。
示例性的,所述性能干擾函數(shù)預(yù)測模型構(gòu)建單元203,具體用于:
根據(jù)所述訓(xùn)練集中每個(gè)程序在主處理器上的行為特征、主處理器自身的特征以及性能干擾函數(shù)的參數(shù),建立初始神經(jīng)網(wǎng)絡(luò)模型;其中,所述初始神經(jīng)網(wǎng)絡(luò)模型包含輸入層以及輸出層;所述輸入層與所述輸出層之間包含中間層,所述輸入層與所述中間層之間通過連接權(quán)值連接,所述中間層與所述輸出層之間通過連接權(quán)值連接,所述輸入層的輸入元為程序在主處理器上的行為特征和主處理器自身特征,所述輸出層的輸出元為性能干擾函數(shù)的參數(shù);
將所述程序集作為所述初始神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練程序集,利用所述訓(xùn) 練程序集迭代訓(xùn)練所述初始神經(jīng)網(wǎng)絡(luò)模型,獲得穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型;其中,所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型為連接權(quán)值不隨迭代次數(shù)改變或改變小于預(yù)設(shè)閾值的神經(jīng)網(wǎng)絡(luò)模型;或者為預(yù)測誤差不隨迭代次數(shù)改變或改變小于閾值的神經(jīng)網(wǎng)絡(luò)模型;
將所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型作為所述性能干擾函數(shù)預(yù)測模型。
如此,在構(gòu)建特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型之后,便可以根據(jù)特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型對任一程序在任一處理器上的性能干擾進(jìn)行分析;或者根據(jù)該性能干擾函數(shù)及重構(gòu)的特征預(yù)測模型對任一程序在任一新添加的處理器上的性能干擾進(jìn)行分析。
由上可知,本發(fā)明實(shí)施例提供一種預(yù)測核間性能干擾的裝置,將異構(gòu)處理器按照架構(gòu)進(jìn)行分組之后,構(gòu)建了特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型,進(jìn)而可以很方便地實(shí)現(xiàn)了根據(jù)已有處理器上的行為特征和性能干擾函數(shù)的參數(shù)來獲得程序在其它處理器上的行為特征和性能干擾函數(shù)的參數(shù),大大降低了獲得核間性能干擾的復(fù)雜度。
實(shí)施例三
圖3示出了本發(fā)明實(shí)施例提供的一種預(yù)測性能干擾的裝置30的結(jié)構(gòu)圖,用于執(zhí)行實(shí)施例一所述的方法,如圖3所示,可以包括:通信單元301,處理器302、存儲(chǔ)器303、至少一個(gè)通信總線304,用于實(shí)現(xiàn)這些裝置之間的連接和相互通信;
通信單元301,用于與外部網(wǎng)元之間進(jìn)行數(shù)據(jù)傳輸。
處理器302可能是一個(gè)中央處理器(central processing unit,簡稱為CPU)。
存儲(chǔ)器303,可以是易失性存儲(chǔ)器(volatile memory),例如隨機(jī)存取存儲(chǔ)器(random-access memory,RAM);或者非易失性存儲(chǔ)器(non-volatile memory),例如只讀存儲(chǔ)器(read-only memory,ROM),快閃存儲(chǔ)器(flash memory),硬盤(hard disk drive,HDD)或固態(tài)硬盤(solid-state drive,SSD);或者上述種類的存儲(chǔ)器的組合,并向處理器302提供指令和數(shù)據(jù)。
處理器302,用于分別獲取程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,以及每個(gè)程序在每組中的主處理器上的性能干擾函數(shù)的參 數(shù);其中,每組中處理器的架構(gòu)相同;所述程序的性能干擾函數(shù)的參數(shù)用以確定所述程序的性能干擾函數(shù),所述程序的性能干擾函數(shù)用以表示:程序集中多個(gè)與所述程序共同運(yùn)行的程序的行為特征相互作用時(shí)所述程序遭受的性能干擾;
根據(jù)所述程序集中每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征,構(gòu)建特征預(yù)測模型;其中,所述特征預(yù)測模型用于表示:程序在主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上運(yùn)行時(shí)的行為特征之間的關(guān)系;
根據(jù)所述程序集中每個(gè)程序在主處理器上的行為特征、主處理器自身特征以及性能干擾函數(shù)的參數(shù),構(gòu)建性能干擾函數(shù)預(yù)測模型,其中,所述性能干擾函數(shù)預(yù)測模型用于:根據(jù)程序在處理器上的行為特征和處理器自身特征預(yù)測程序在處理器上的性能干擾函數(shù)的參數(shù)。
雖然,在多核處理器組成的計(jì)算環(huán)境中,各處理器之間存在異構(gòu)性,如:相同的基于X86的處理器之間的型號(hào)不同,每個(gè)型號(hào)對應(yīng)的架構(gòu)不同,但是,研究表明:同架構(gòu)的處理器之間的差異較小,而不同架構(gòu)的處理器之間差異則比較大;例如,同為Nehalem架構(gòu)的處理器比較相似,而Nehalem架構(gòu)的處理器和Sandy Bridge架構(gòu)的處理器差距就比較大。鑒于此,本發(fā)明實(shí)施例中,可以將所有處理器按照架構(gòu)的異同進(jìn)行分組,使得相同架構(gòu)的處理器處于同一組,然后,再根據(jù)同架構(gòu)的處理器之間的相近性,尋找相同架構(gòu)的處理器間程序的行為特征和遭受的核間性能干擾之間的相關(guān)性,如此,將需要處理的眾多型號(hào)處理器之間的異構(gòu)降低到了幾種架構(gòu)之間的異構(gòu),大大降低了運(yùn)算復(fù)雜度。
例如,云計(jì)算環(huán)境中包含8個(gè)型號(hào)不同的處理器,處理器1~處理器5均為來自Intel的基于Nehalem微架構(gòu)的處理器,處理器7~處理器10均為來自Intel的基于Sandy Bridge架構(gòu)的處理器,則可以將這10個(gè)處理器分為(處理器1,處理器2,處理器3,處理器4,處理器5)和(處理器6、處理器7、處理器8)兩組。
其中,主處理器可以為每組中的任一處理器,也可以為組內(nèi)處理能力最強(qiáng)的處理器,具體為哪個(gè)處理器,本發(fā)明實(shí)施例對比不進(jìn)行限定。例如,可以選擇型號(hào)為E5506的處理器作為Nehalem架構(gòu)分組中的主處理器。
所述行為特征可以稱為程序在處理器上運(yùn)行時(shí)對共享資源的消耗,也 可以稱為程序在處理器上運(yùn)行時(shí)對共享資源的壓力;所述共享資源包括但不限于:共享緩存、共享領(lǐng)取器、共享帶寬和共享輸入輸出設(shè)備;相應(yīng)的,程序的行為特征可以包括:程序?qū)蚕砭彺娴男袨樘卣?、程序?qū)蚕眍I(lǐng)取器的行為特征、程序?qū)蚕韼挼男袨樘卣饕约皩蚕磔斎胼敵鲈O(shè)備的行為特征等多個(gè)子行為特征;其中,程序?qū)蚕砭彺娴男袨樘卣骺梢杂贸绦蚓彺婷新?、單位時(shí)間內(nèi)的緩存缺少次數(shù)或每百萬條指令內(nèi)的緩存缺少次數(shù)來表示;對共享領(lǐng)取器的行為特征可以用單位時(shí)間內(nèi)的領(lǐng)取次數(shù)或每百萬條指令內(nèi)的領(lǐng)取次數(shù)來表示;對共享帶寬的行為特征可以用程序運(yùn)行時(shí)使用的帶寬流量來表示;對共享輸入輸出設(shè)備的行為特征可以用程序使用其輸入輸出讀寫請求的次數(shù)、每次讀寫請求的字節(jié)數(shù)來表示。通常,將包含多個(gè)子行為特征的行為特征以向量的形式表示,如,程序A運(yùn)行時(shí)的行為特征可以為:PA=(PA1,PA2,PA3…PAK),其中,k為共享資源的數(shù)目,PA為程序A運(yùn)行時(shí)的特征向量,PAi為程序A在共享資源i的行為特征。
所述性能干擾函數(shù)可以表示為程序共同運(yùn)行時(shí)對共享資源的總壓力的分段函數(shù):PDA=fA(Aggregate(P1),Aggregate(P2),..,Aggregate(Pk))=fA(Aggregate(PA,Pco-runners),PDA代表程序A遭受的核間性能干擾,函數(shù)fA是對應(yīng)程序A的分段函數(shù),其自變量的數(shù)目為共享資源的數(shù)目k,Aggregate(Pi)(i=1,2..,k)是共同運(yùn)行的所有程序?qū)Y源i的聚集的總壓力,是函數(shù)fA的自變量。
優(yōu)選的,特征預(yù)測模型可以包含:緩存壓力預(yù)測子模型、領(lǐng)取器壓力預(yù)測子模型、帶寬壓力預(yù)測子模型以及輸入輸出設(shè)備壓力預(yù)測子模型等多個(gè)子模型。
示例性的,所述處理器302,具體用于:
通過profiling方式獲取程序集中的每個(gè)程序在每個(gè)處理器上運(yùn)行時(shí)的行為特征。
示例性的,所述處理器302,具體用于:
通過機(jī)器學(xué)習(xí)方式分析每個(gè)程序在所述主處理器上運(yùn)行時(shí)的行為特征與所述程序在所述主處理器所在組內(nèi)的其他處理器上的行為特征之間的關(guān)聯(lián)性;
根據(jù)所述關(guān)聯(lián)性構(gòu)建所述特征預(yù)測模型。
優(yōu)選的,本發(fā)明實(shí)施例中,所述性能干擾函數(shù)預(yù)測模型可以為神經(jīng)網(wǎng)絡(luò)模型。
示例性的,所述處理器302,具體用于:
根據(jù)所述訓(xùn)練集中每個(gè)程序在主處理器上的行為特征、主處理器自身的特征以及性能干擾函數(shù)的參數(shù),建立初始神經(jīng)網(wǎng)絡(luò)模型;其中,所述初始神經(jīng)網(wǎng)絡(luò)模型包含輸入層以及輸出層;所述輸入層與所述輸出層之間包含中間層,所述輸入層與所述中間層之間通過連接權(quán)值連接,所述中間層與所述輸出層之間通過連接權(quán)值連接,所述輸入層的輸入元為程序在主處理器上的行為特征和主處理器自身特征,所述輸出層的輸出元為性能干擾函數(shù)的參數(shù);
將所述程序集作為所述初始神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練程序集,利用所述訓(xùn)練程序集迭代訓(xùn)練所述初始神經(jīng)網(wǎng)絡(luò)模型,獲得穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型;其中,所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型為連接權(quán)值不隨迭代次數(shù)改變或改變小于預(yù)設(shè)閾值的神經(jīng)網(wǎng)絡(luò)模型;或者為預(yù)測誤差不隨迭代次數(shù)改變或改變小于閾值的神經(jīng)網(wǎng)絡(luò)模型;
將所述穩(wěn)定的神經(jīng)網(wǎng)絡(luò)模型作為所述性能干擾函數(shù)預(yù)測模型。
如此,在構(gòu)建特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型之后,便可以根據(jù)特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型對任一程序在任一處理器上的性能干擾進(jìn)行分析;或者根據(jù)該性能干擾函數(shù)及重構(gòu)的特征預(yù)測模型對任一程序在任一新添加的處理器上的性能干擾進(jìn)行分析。
由上可知,本發(fā)明實(shí)施例提供一種預(yù)測核間性能干擾的裝置,將異構(gòu)處理器按照架構(gòu)進(jìn)行分組之后,構(gòu)建了特征預(yù)測模型和性能干擾函數(shù)預(yù)測模型,進(jìn)而可以很方便地實(shí)現(xiàn)了根據(jù)已有處理器上的行為特征和性能干擾函數(shù)的參數(shù)來獲得程序在其它處理器上的行為特征和性能干擾函數(shù)的參數(shù),大大降低了獲得核間性能干擾的復(fù)雜度。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的單元和系統(tǒng)的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),設(shè)備和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的設(shè)備實(shí)施例僅僅 是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理包括,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory,簡稱ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,簡稱RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件(例如處理器)來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器、隨機(jī)存儲(chǔ)器、磁盤或光盤等。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。