程序性能干擾模型的確定方法及設(shè)備的制作方法
【專(zhuān)利摘要】本申請(qǐng)公開(kāi)了一種程序性能干擾模型的確定方法,從已確定好的樣本程序集合中選取程序組成多個(gè)子集合,獲取各個(gè)子集合中各個(gè)程序在運(yùn)行時(shí)受到的性能干擾值,及各個(gè)子集合中所有程序?qū)蚕碣Y源的總占用率,將所有子集合劃分為多個(gè)分析單元;對(duì)不同分析單元中包含的每一個(gè)樣本程序的性能干擾值及所述該樣本程序所在的子集合所對(duì)應(yīng)的總占有率做回歸分析,獲取目標(biāo)函數(shù)模型;并依據(jù)目標(biāo)函數(shù)模型獲取目標(biāo)程序?qū)?yīng)的性能干擾模型。本發(fā)明實(shí)施例提供的方法,為多核處理器上的每一個(gè)程序提供性能干擾模型,對(duì)程序運(yùn)行在多核處理器中受到的性能干擾進(jìn)行量化,避免了相互干擾較為大的程序運(yùn)行在同一多核處理器中,確保了程序在多核處理器中運(yùn)行時(shí)的最優(yōu)性能。
【專(zhuān)利說(shuō)明】程序性能干擾模型的確定方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及多核處理器領(lǐng)域,特別是涉及一種程序性能干擾模型的確定方法及設(shè) 備。
【背景技術(shù)】
[0002] 隨著科技的發(fā)展,人們對(duì)CPU性能的需求越來(lái)越強(qiáng)烈,但是由于頻率提升帶來(lái)的 功耗提升也越來(lái)越嚴(yán)重,所以使得片上多核處理器架構(gòu)的應(yīng)用越來(lái)越廣泛。
[0003] 片上多核處理器架構(gòu)是指在一個(gè)處理器芯片中集成多個(gè)處理器核心,以實(shí)現(xiàn)功耗 和性能的良好結(jié)合。
[0004] 在研發(fā)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn),在片上多核處理器架構(gòu)中,處理器中的各個(gè) 處理器核心不是完全獨(dú)立的,需要共享各種不同的處理器資源,這使得各個(gè)計(jì)算內(nèi)核在運(yùn) 行程序的過(guò)程中,會(huì)造成不同程序之間的性能干擾。如,某一優(yōu)先級(jí)較高的程序在運(yùn)行過(guò)程 中需要用到多核處理器中的一共享資源時(shí),其它程序同時(shí)也在使用該共享資源,這將會(huì)使 得優(yōu)先級(jí)較高的程序性能受到影響。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明實(shí)施例的目的在于提供程序性能干擾模型的確定方法及設(shè)備, 以解決上述問(wèn)題。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:
[0007] 根據(jù)本實(shí)施例的第一方面,提供一種程序性能干擾模型的確定方法,所述方法應(yīng) 用于多核處理器,包括:
[0008] 確定樣本程序集合,所述樣本程序集合中包括多個(gè)用于樣本訓(xùn)練的樣本程序;
[0009] 依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣本程序集合中提取多個(gè)子集合,所述多個(gè)子集合 的并集為所述樣本程序集合;
[0010] 獲取各個(gè)子集合中每一個(gè)樣本程序在所述多核處理器中運(yùn)行時(shí)受到的性能干擾 值,及每個(gè)子集合中的所有樣本程序?qū)λ龆嗪颂幚砥髦泄蚕碣Y源的總占有率;
[0011] 將所有子集合劃分為多個(gè)分析單元,每個(gè)分析單元中包括多個(gè)子集合;
[0012] 依據(jù)預(yù)設(shè)的函數(shù)庫(kù)中多個(gè)函數(shù)模型,對(duì)不同分析單元中包含的每一個(gè)樣本程序的 性能干擾值及該性能干擾值所對(duì)應(yīng)的總占有率做回歸分析,在所述多個(gè)函數(shù)模型中獲取目 標(biāo)函數(shù)模型;
[0013] 依據(jù)所述目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?yīng)的性能干擾模型,所述目標(biāo)程序?yàn)檫\(yùn) 行在多核處理器中的任意一個(gè)程序。
[0014] 結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述確定樣本程序集合包括:
[0015] 確定多核處理器所對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)中各個(gè)應(yīng)用程序的特征向量;所述特征 向量表示應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí),對(duì)所述多核處理器中各個(gè)共享資源的占有 率;
[0016] 將占有率在同一預(yù)設(shè)占有率區(qū)間中的應(yīng)用程序歸類(lèi)至同一特征組中;
[0017] 在各個(gè)特征組中隨機(jī)選取一個(gè)應(yīng)用程序作為樣本程序,組成樣本程序集合。
[0018] 結(jié)合第一方面在第二種可能的實(shí)現(xiàn)方式中,所述依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣 本程序集合中提取多個(gè)子集合包括 :
[0019] 分別將所述樣本程序集合中的每一個(gè)樣本程序作為目標(biāo)樣本程序;
[0020] 在所述樣本程序集合中提取Q個(gè)包含所述目標(biāo)樣本程序的不同子集合,每個(gè)子集 合中共包含N個(gè)樣本程序;
[0021] 其中:
[0022] N為多核處理器中集的處理器核心的個(gè)數(shù);
[0023] 2 < Q < ,Q取整數(shù),M為樣本程序集合中樣本程序的數(shù)目。
[0024] 結(jié)合第一方面的第二種實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述將所有子集 合劃分為多個(gè)分析單元包括:
[0025] 確定所有獲取的總占有率對(duì)應(yīng)的占有率區(qū)間,并依據(jù)預(yù)設(shè)的劃分規(guī)則,對(duì)所述占 有率區(qū)間進(jìn)行劃分,得到多個(gè)占有率子區(qū)間;
[0026] 將每個(gè)子集合分配至其對(duì)應(yīng)的總占有率所屬的占有率子區(qū)間中,每個(gè)占有率子區(qū) 間中所有子集合為一個(gè)分析單元。
[0027] 結(jié)合第一方面,在第四種可能的實(shí)現(xiàn)方式中,所述依據(jù)目標(biāo)函數(shù)模型,確定目標(biāo)程 序?qū)?yīng)的性能干擾模型包括 :
[0028] 獲取所述目標(biāo)程序在多核處理器中運(yùn)行時(shí)受到的性能干擾值,及當(dāng)前多核處理器 中運(yùn)行的所有程序?qū)蚕碣Y源的總占有率;
[0029] 將所述性能干擾值及所述總占有率代入所述目標(biāo)函數(shù)模型中,獲得所述目標(biāo)函數(shù) 模型中各個(gè)變量的系數(shù);
[0030] 依據(jù)所述各個(gè)變量的系數(shù),確定所述目標(biāo)程序?qū)?yīng)的性能干擾模型。
[0031] 根據(jù)本實(shí)施例的第二方面,提供一種程序性能干擾模型的確定設(shè)備,所述設(shè)備應(yīng) 用于多核處理器,包括:
[0032] 第一確定單元,用于確定樣本程序集合,所述樣本程序集合中包括多個(gè)用于樣本 訓(xùn)練的樣本程序;
[0033] 提取單元,用于依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣本程序集合中提取多個(gè)子集合,所 述多個(gè)子集合的并集為所述樣本程序集合;
[0034] 獲取單元,用于獲取各個(gè)子集合中每一個(gè)樣本程序在所述多核處理器中運(yùn)行時(shí)受 到的性能干擾值,及每個(gè)子集合中的所有樣本程序?qū)λ龆嗪颂幚砥髦泄蚕碣Y源的總占有 率;
[0035] 劃分單元,用于將所有子集合劃分為多個(gè)分析單元,每個(gè)分析單元中包括多個(gè)子 集合;
[0036] 分析單元,用于依據(jù)預(yù)設(shè)的函數(shù)庫(kù)中多個(gè)函數(shù)模型,對(duì)不同分析單元中包含的每 一個(gè)樣本程序的性能干擾值及該性能干擾值所對(duì)應(yīng)的總占有率做回歸分析,在所述多個(gè)函 數(shù)模型中獲取目標(biāo)函數(shù)模型;
[0037] 第二確定單元,用于依據(jù)所述目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?yīng)的性能干擾模型, 所述目標(biāo)程序?yàn)檫\(yùn)行在多核處理器中的任意一個(gè)程序。
[0038] 結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一確定單元包括:
[0039] 第一確定子單元,用于確定多核處理器所對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)中各個(gè)應(yīng)用程序 的特征向量;所述特征向量表示應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí),對(duì)所述多核處理器 中各個(gè)共享資源的占有率;
[0040] 歸類(lèi)子單元,用于將占有率在同一預(yù)設(shè)占有率區(qū)間中的應(yīng)用程序歸類(lèi)至同一特征 組中;
[0041] 選取子單元,用于在各個(gè)特征組中隨機(jī)選取一個(gè)應(yīng)用程序作為樣本程序,組成樣 本程序集合。
[0042] 結(jié)合第二方面的第一種實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述劃分單元包 括:
[0043] 劃分子單元,用于確定所有獲取的總占有率對(duì)應(yīng)的占有率區(qū)間,并依據(jù)預(yù)設(shè)的劃 分規(guī)則,對(duì)所述占有率區(qū)間進(jìn)行劃分,得到多個(gè)占有率子區(qū)間;
[0044] 分配子單元,用于將每個(gè)子集合分配至其對(duì)應(yīng)的總占有率所屬的占有率子區(qū)間 中,每個(gè)占有率子區(qū)間中所有子集合為一個(gè)分析單元。
[0045] 結(jié)合第二方面,在第三種可能的實(shí)現(xiàn)方式中,所述第二確定單元包括:
[0046] 獲取子單元,用于獲取所述目標(biāo)程序在多核處理器中運(yùn)行時(shí)受到的性能干擾值, 及當(dāng)前多核處理器中運(yùn)行的所有程序?qū)蚕碣Y源的總占有率;
[0047] 代入子單元,用于將所述性能干擾值及所述總占有率代入所述目標(biāo)函數(shù)模型中, 獲得所述目標(biāo)函數(shù)模型中各個(gè)變量的系數(shù);
[0048] 第二確定子單元,用于依據(jù)所述各個(gè)變量的系數(shù),確定所述目標(biāo)程序?qū)?yīng)的性能 干擾值。
[0049] 由以上本申請(qǐng)實(shí)施例提供的技術(shù)方案可見(jiàn),本發(fā)明實(shí)施例中,通過(guò)選取不同樣本 程序組成多個(gè)子集合,獲取每一個(gè)子集合中的每一個(gè)樣本在多核處理器中運(yùn)行時(shí)受到的性 能干擾值,及每個(gè)子集合中的所有樣本程序?qū)蚕碣Y源的總占用率。將所有子集合劃分為 多個(gè)分析單元,依據(jù)預(yù)設(shè)的函數(shù)庫(kù)中多個(gè)函數(shù)模型,對(duì)不同分析單元中包含的每一個(gè)樣本 程序的性能干擾值及所述該樣本程序所在子集合所對(duì)應(yīng)的的總占有率做回歸分析得到每 一個(gè)樣本程序?qū)?yīng)的函數(shù)模型,在得到的所有樣本程序?qū)?yīng)的函數(shù)模型中獲取目標(biāo)函數(shù)模 型。依據(jù)所述目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?yīng)的性能干擾模型。
[0050] 本發(fā)明實(shí)施例提供的性能干擾模型,最終確定的性能干擾模型是通過(guò)對(duì)程序受到 的性能干擾值及該程序所在子集合對(duì)共享資源的總占用率進(jìn)行回歸分析得到的,該性能模 型體現(xiàn)了程序受到的性能干擾值與共享資源受到的總占有率之間的對(duì)應(yīng)關(guān)系。依據(jù)本發(fā)明 實(shí)施例提供的性能干擾模型,對(duì)于多核處理器中共同運(yùn)行的各個(gè)程序,只要確定多核處理 器中各個(gè)共享資源當(dāng)前受到的來(lái)自各個(gè)程序的總壓力,即可確定各個(gè)程序受到的性能干擾 值。
[0051] 本發(fā)明實(shí)施例提供的性能干擾模型對(duì)程序受到的性能干擾值的確定過(guò)程,不受運(yùn) 行在多核處理器上程序的數(shù)據(jù)限制,只要確定當(dāng)前多核處理器中各個(gè)共享資源受到的來(lái)個(gè) 各個(gè)程序的總占有率,即可確定每一個(gè)程序的性能干擾值,為共同運(yùn)行的各個(gè)程序提供了 參考標(biāo)準(zhǔn),在具體的運(yùn)行過(guò)程中,可以依據(jù)各個(gè)程序受到的性能干擾值對(duì)程序進(jìn)行調(diào)度,提 升了多核處理器的資源利用率,也保證了各個(gè)程序性能的正常運(yùn)行。
[0052] 綜上,本發(fā)明實(shí)施例提供的程序性能干擾模型的確定方法,能夠?yàn)檫\(yùn)行在多核處 理器上的每一個(gè)程序提供一性能干擾模型,對(duì)每一個(gè)程序運(yùn)行在多核處理器中所受到來(lái)自 其它程序的性能干擾進(jìn)行量化,為避免相互干擾較為強(qiáng)烈的程序運(yùn)行在同一多核處理器中 提供了調(diào)度依據(jù),確保了程序在多核處理器中運(yùn)行時(shí)的最優(yōu)性能。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0053] 為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)中記載 的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 這些附圖獲得其他的附圖。
[0054] 圖1為本發(fā)明實(shí)施例提供的程序性能干擾模型確定方法的方法流程圖;
[0055] 圖2為本發(fā)明實(shí)施例提供的程序性能干擾模型確定方法的一具體方法流程圖;
[0056] 圖3為本發(fā)明實(shí)施例提供的程序性能干擾模型確定方法的一具體方法流程圖;
[0057] 圖4為本發(fā)明實(shí)施例提供的程序性能干擾模型確定方法的一具體方法流程圖;
[0058] 圖5為本發(fā)明實(shí)施例提供的程序性能干擾模型確定設(shè)備的結(jié)構(gòu)示意圖;
[0059] 圖6為本發(fā)明實(shí)施例提供的程序性能干擾模型確定設(shè)備的一詳細(xì)結(jié)構(gòu)示意圖;
[0060] 圖7為本發(fā)明實(shí)施例提供的一種多核處理器的結(jié)構(gòu)示意圖;
[0061] 圖8為本發(fā)明實(shí)施例提供的又一種多核處理器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0062] 為了使本【技術(shù)領(lǐng)域】的人員更好地理解本申請(qǐng)方案。下面將結(jié)合本申請(qǐng)實(shí)施例中的 附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是 本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
[0063] 隨著計(jì)算機(jī)用戶(hù)對(duì)CPU性能提升的需求越來(lái)越強(qiáng)烈,片上多核架構(gòu)得到了廣泛的 應(yīng)用,片上多核架構(gòu)是指在一個(gè)處理器芯片中集成多個(gè)處理器核心。片上多核架構(gòu)中,多核 處理器中的各個(gè)處理器核心不是完全獨(dú)立的,各個(gè)處理器核心之間會(huì)共享各種不同的處理 器資源,如處理器的最后一級(jí)緩存、內(nèi)存控制器等。這種資源共享可能會(huì)對(duì)同時(shí)運(yùn)行在同一 個(gè)多核處理器上的各個(gè)程序的性能產(chǎn)生嚴(yán)重的影響。
[0064] 同時(shí)運(yùn)行在多核處理器上的各個(gè)程序?qū)ν还蚕碣Y源都會(huì)產(chǎn)生的一定的競(jìng)爭(zhēng)占 用,因此各個(gè)程序共同運(yùn)行在多核處理器中時(shí),可能存在某些程序?qū)蚕碣Y源的競(jìng)爭(zhēng)能力 較強(qiáng),占用了較多的共享資源,導(dǎo)致其它程序不能有效的利用共享資源,受到較大的性能干 擾。如高Qos (quality of service)優(yōu)先級(jí)程序與較低優(yōu)先級(jí)程序共同運(yùn)行時(shí),兩者長(zhǎng)時(shí) 間競(jìng)爭(zhēng)共享資源,會(huì)使得高Q〇s優(yōu)先級(jí)程序不能得到優(yōu)先運(yùn)行,降低了程序性能。
[0065] 同時(shí),針對(duì)上述問(wèn)題,現(xiàn)有的多核處理器程序調(diào)度中,為了保證高Qos優(yōu)先級(jí)程序 的性能,通常會(huì)禁止高Qos優(yōu)先級(jí)程序與其它程序共同運(yùn)行,這又導(dǎo)致了較低的硬件資源 利用率,使得多核處理器失去了多核的意義。
[0066] 因此,為了解決上述問(wèn)題,發(fā)明人經(jīng)過(guò)多次實(shí)際的研發(fā)運(yùn)用,發(fā)現(xiàn)運(yùn)行在多核處理 器中的任意一個(gè)程序所受到的性能干擾值與多核處理器中共享資源上受到的總的占用率 之間存在一定的函數(shù)映射關(guān)系。
[0067] 本發(fā)明實(shí)施例提供了一種程序性能干擾模型的確定方法,該方法分為兩個(gè)實(shí)現(xiàn)階 段,基于程序的運(yùn)行時(shí)特征提出任意一個(gè)程序遭受的核間性能干擾模型可以由多核處理器 中各個(gè)共享資源上受到的總壓力的分段函數(shù)來(lái)表示;為運(yùn)行在多核處理器中的每一個(gè)程序 提供一具體的性能干擾模型,使得任意一程序與其它程序共同運(yùn)行在多核處理器中時(shí)所受 到來(lái)自其它程序的性能干擾得以量化,可以避免相互之間干擾較大的程序共同運(yùn)行在同一 多核處理器中,同時(shí)也為可以共同運(yùn)行的各個(gè)程序之間的相互調(diào)度提供了指示,提升了多 核處理器的資源利用率。
[0068] 本發(fā)明實(shí)施例中,程序的運(yùn)行時(shí)特征,是指程序在運(yùn)行過(guò)程中在多核處理器的各 個(gè)共享資源上的行為特征;所述行為特征可以視為程序?qū)蚕碣Y源的壓力,本發(fā)明實(shí)施例 中采用程序?qū)蚕碣Y源的占用率來(lái)表示所述壓力。在現(xiàn)有的片上多核架構(gòu)中,多核處理器 中的共享資源包括共享緩存、共享的數(shù)據(jù)預(yù)取器、共享的內(nèi)存帶寬等。
[0069] 本發(fā)明實(shí)施例中,任意一個(gè)程序遭受的核間性能干擾模型可以表示為程序運(yùn)行時(shí) 對(duì)共享資源上的總壓力的分段函數(shù),其代表公式為:
[0070] PDA=fA (Aggregate (?:), Aggregate (P2), --? Aggregate (Pj), --? Aggregate (Pk)), 其中:
[0071] PDA表示任意一程序A遭受的來(lái)自與其共同運(yùn)行其它程序的核間性能干擾,f A是 對(duì)程序A的分段函數(shù),其自變量的數(shù)目為多核處理器中共享資源的數(shù)目k,Aggregate (PJ (i=l,2, 3,…k)是共同運(yùn)行的所有程序?qū)Y源i聚集的總占用率,是函數(shù)fA的自變量。
[0072] 本發(fā)明實(shí)施例介紹的性能干擾模型確定方法即用來(lái)確定PDA的過(guò)程,其具體實(shí)現(xiàn) 如下:
[0073] 圖1為本發(fā)明實(shí)施例提供的一種性能干擾模型確定方法的方法流程圖,本發(fā)明實(shí) 施例提供的性能干擾模型的確定方法的執(zhí)行主體可以為任意一種多核處理器,所述多核處 理器中集成有多個(gè)處理器核心。如圖1所示,該方法包括 :
[0074] 步驟S101 :確定樣本程序集合,所述樣本程序集合中包括多個(gè)用于樣本訓(xùn)練的樣 本程序;
[0075] 為了保證本發(fā)明實(shí)施例中性能干擾模型確定方法最終確定的性能干擾模型適用 于所有可以運(yùn)行在多核處理器中的應(yīng)用程序,本發(fā)明實(shí)施例首先確定可以運(yùn)行在多核處理 器中的樣本訓(xùn)練程序集合。
[0076] 所述確定的過(guò)程,具體如本發(fā)明實(shí)施例提供的圖2所示,包括:
[0077] 步驟S201 :確定多核處理器所對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)中各個(gè)應(yīng)用程序的特征向 量;所述特征向量表示各個(gè)應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí),對(duì)所述多核處理器中各 個(gè)共孚資源的占有率;
[0078] 在多核處理器所對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)中包含大量的應(yīng)用程序,這些應(yīng)用程序可 以覆蓋所有多核處理器所能運(yùn)行的程序類(lèi)型。
[0079] 將所述應(yīng)用程序數(shù)據(jù)庫(kù)中的每一個(gè)應(yīng)用程序單獨(dú)在多核處理器中進(jìn)行運(yùn)行,獲得 各個(gè)應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí)對(duì)各個(gè)共享資源的特征向量。所述特征向量可以 表示各個(gè)應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí),對(duì)所述多核處理器中各個(gè)共享資源的占有 率。
[0080] 在本發(fā)明實(shí)施例中,我們需要量化程序?qū)蚕碣Y源的占用率,例如:程序?qū)蚕砭?存的使用可以使用程序每秒從共享緩存移動(dòng)到私有緩存的數(shù)據(jù)來(lái)表示;程序?qū)?nèi)存帶寬的 使用可以每秒從內(nèi)存中加載進(jìn)入緩存中的數(shù)據(jù)來(lái)表示。
[0081] 本發(fā)明實(shí)施例中使用程序單獨(dú)運(yùn)行在多核處理器上的特征向量來(lái)表示程序?qū)?享資源的占用率,一個(gè)程序的特征向量是指程序在不同的共享資源上的占用率,表示為 P A=〈PA1,PA2. . . . PAi. . . PAk>,其中,k為多核處理器中共享資源的數(shù)目,PAi代表程序A在共享 資源i上的占用率。
[0082] 步驟S202 :將占有率在同一預(yù)設(shè)占有率區(qū)間中的應(yīng)用程序歸類(lèi)至同一特征組中;
[0083] 本發(fā)明實(shí)施例中,定義一個(gè)k維的特征空間,其中k為多核處理器中共享資源的個(gè) 數(shù)。將各個(gè)應(yīng)用程序依據(jù)其特征向量映射至該k維的特征空間中。
[0084] 具體實(shí)現(xiàn)可以是:對(duì)于多核處理器中的任一共享資源Ri,將該共享資源Ri對(duì)應(yīng)的 特征區(qū)間分為N個(gè)子區(qū)間,則對(duì)于整個(gè)k維的特征空間,被分割為N1*N2*?*Nk特征組,特 征向量落在同一個(gè)特征組內(nèi)的所有應(yīng)用程序的行為特征相似。
[0085] 其中,共享資源的特征區(qū)間為共享資源的運(yùn)行能力,如共享緩存的特征區(qū)間為共 享緩存所能緩存的數(shù)據(jù)量區(qū)間,內(nèi)存帶寬的特征區(qū)間為內(nèi)存帶寬的內(nèi)存的大小。
[0086] 對(duì)于樣本程序集合中的任意兩個(gè)程序A和B,如果A每秒從共享緩存移動(dòng)到私有 緩存的數(shù)據(jù)為〇. 5, B每秒從共享緩存移動(dòng)到私有緩存的數(shù)據(jù)為0. 4,,共享緩存的整體特 征區(qū)間為〇. 1?1. 〇,對(duì)共享緩存的特征區(qū)間進(jìn)行劃分,分為3個(gè)子區(qū)間,分別為0. 1? 0. 3, 0. 3?0. 6,0. 6?1. 0,則A,B落在0. 3?0. 6對(duì)應(yīng)的區(qū)間內(nèi),則認(rèn)為程序A和B特征 相似,程序A和B即為一個(gè)特征組中的程序。
[0087] 上述以單個(gè)共享資源的特征區(qū)間為例,本發(fā)明實(shí)施例中,還可以設(shè)定多個(gè)共享資 源的特征區(qū)間,如分別對(duì)共享緩存和內(nèi)存帶寬的特征區(qū)間進(jìn)行劃分,將同時(shí)落在共享緩存 和內(nèi)存帶寬的子區(qū)間中的程序,作為特征相似的程序。
[0088] 步驟S203 :在各個(gè)特征組中隨機(jī)選取一個(gè)應(yīng)用程序作為樣本程序,組成樣本程序 集合。
[0089] 本發(fā)明實(shí)施例中,選取的樣本訓(xùn)練程序集合中包含的所有程序,體現(xiàn)了能夠運(yùn)行 在多核處理器中所有程序的行為特征,覆蓋范圍廣,為后續(xù)步驟中獲得精確的干擾模型提 供了豐富的樣本。
[0090] 步驟S102 :依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣本程序集合中提取多個(gè)子集合,所述 子集合的并集為所述樣本程序集合;
[0091] 為了獲取豐富的訓(xùn)練程序數(shù)據(jù),本發(fā)明實(shí)施例中,在所述樣本訓(xùn)練程序集合中依 據(jù)預(yù)設(shè)的選取規(guī)則,選取訓(xùn)練程序組成多個(gè)子集合。
[0092] 本發(fā)明實(shí)施例中,提取多個(gè)子集合的具體過(guò)程為:
[0093] 分別將所述樣本程序集合中的每一個(gè)樣本程序作為目標(biāo)樣本程序;
[0094] 在所述樣本程序集合中提取Q個(gè)包含所述目標(biāo)樣本程序的不同子集合,每個(gè)子集 合中共包含N個(gè)樣本程序;
[0095] 其中:
[0096] N為多核處理器中集的處理器核心的個(gè)數(shù);
[0097] 1 < Q < ct:,Q取整數(shù),M為樣本程序集合中樣本程序的數(shù)目。
[0098] 本發(fā)明實(shí)施例中,在樣本程序集合中提取多個(gè)子集合,所述子集合中包含的所有 程序需要能夠覆蓋所述樣本程序集合中的所有程序,且所述樣本程序集合中的任意一個(gè)程 序需要出現(xiàn)在所述多個(gè)子集合中的至少Q(mào)個(gè)子集合中,本發(fā)明實(shí)施例中優(yōu)選的選擇任意一 個(gè)程序至少出現(xiàn)在Q個(gè)子集合中。
[0099] 假設(shè)一樣本程序集合<a,b,c,d,e>;多核處理器中包括3個(gè)核心,則每次需要選取 3個(gè)程序,設(shè)定Q的值為3,則優(yōu)選的一種選取方案可以為:
[0100] <a, b, c>, <a, c, d>, <a, d, e>,
[0101] <b, c, d>, <b, c, e>, <b, d, e>,
[0102] 上述的多個(gè)子集合中,程序a,b,c,d,e,均已經(jīng)出現(xiàn)3次,上述6個(gè)子集合,即可滿(mǎn) 足選取要求。
[0103] 本發(fā)明實(shí)施例中<a,b,c>可以分別算作程序a,b,c出現(xiàn)一次的子集合。
[0104] 上述實(shí)例中,Q的取值的最大范圍可以為1?6。
[0105] 本發(fā)明實(shí)施例中,Q的取值是根據(jù)多核處理器的核心數(shù)、處理能力、處理速率,各個(gè) 訓(xùn)練程序之間的干擾區(qū)間以及指定的函數(shù)形式所確定的一個(gè)常數(shù)。
[0106] 步驟S103 :獲取各個(gè)子集合中每一個(gè)樣本程序在所述多核處理器中運(yùn)行時(shí)受到 的性能干擾值,及每個(gè)子集合中的所有樣本程序?qū)λ龆嗪颂幚砥髦泄蚕碣Y源的總占有 率;
[0107] 本發(fā)明實(shí)施例中,在選擇了足夠的子集合后,獲取各個(gè)子集合中各個(gè)訓(xùn)練程序在 多核處理器中運(yùn)行時(shí)受到的性能干擾值的過(guò)程,即在所述多核處理器中連續(xù)運(yùn)行各個(gè)子 集合中的各個(gè)訓(xùn)練程序,直至每一個(gè)訓(xùn)練程序完成至少一次的來(lái)自其它訓(xùn)練程序的干擾執(zhí) 行;
[0108] 在運(yùn)行過(guò)程中獲得每個(gè)訓(xùn)練程序在其所在的子集合中,與其它訓(xùn)練程序共同運(yùn)行 時(shí)受到的性能干擾值。
[0109] 本發(fā)明實(shí)施例中,在連續(xù)運(yùn)行各個(gè)子集合中的各個(gè)訓(xùn)練程序時(shí),實(shí)時(shí)統(tǒng)計(jì)每一個(gè) 訓(xùn)練程序遭受的核間性能干擾。
[0110] 本發(fā)明實(shí)施例中,為了獲取多核處理器中各個(gè)訓(xùn)練程序的抽象函數(shù)模型,設(shè)定針 對(duì)該抽象函數(shù)模型的函數(shù)類(lèi)型集合、聚集模式集合和分段條件集合,針對(duì)樣本訓(xùn)練程序集 合中的每一個(gè)訓(xùn)練程序,使用函數(shù)類(lèi)型集合中每一個(gè)函數(shù)類(lèi)型和不同的聚集分段條件處理 過(guò)的訓(xùn)練集數(shù)據(jù)進(jìn)行回歸分析,最后得到適合所有訓(xùn)練程序的平均擬合效果最好的函數(shù)類(lèi) 型和聚集分段條件,并將該函數(shù)類(lèi)型作為該多核處理器上的抽象函數(shù)類(lèi)型,并將對(duì)應(yīng)的聚 集分段條件作為該多核處理器上的聚集模式和分段條件。
[0111] 在獲取每個(gè)子集合中的所有樣本程序?qū)λ龆嗪颂幚砥髦泄蚕碣Y源的總占用率 的過(guò)程中,需要對(duì)每一個(gè)樣本程序?qū)蚕碣Y源的占用率進(jìn)行聚集。
[0112] 聚集(Aggregation)是指對(duì)每個(gè)子集合上對(duì)樣本程序同一共享資源的占有率進(jìn)行 聚集。
[0113] 本申請(qǐng)實(shí)施例中,聚集的過(guò)程包括預(yù)處理及根據(jù)不同模式進(jìn)行聚集兩個(gè)過(guò)程。
[0114] 首先,預(yù)處理是指對(duì)每個(gè)子集合當(dāng)中的訓(xùn)練程序的特征向量進(jìn)行處理,將每個(gè)訓(xùn) 練程序?qū)?yīng)的原有特征向量值映射為一個(gè)新值。
[0115] 常見(jiàn)的預(yù)處理類(lèi)型有exp (指數(shù)),log (對(duì)數(shù)),pow(冪函數(shù)),none等,如果預(yù)處 理的類(lèi)型為none,則映射的新值等于原值。
[0116] 假設(shè)某一訓(xùn)練程序A的特征向量為PA=〈PA1,P A2. . PAi. . PAk>,則經(jīng)過(guò)exp預(yù)處理后, 則其對(duì)應(yīng)的特征向量變?yōu)椤磂xp (PA1),exp (PA2) ? ? exp (PAi) ? ? exp (PAk) >。
[0117] 其次,依據(jù)聚集模式集合中的聚集模式,對(duì)每個(gè)子集合中各個(gè)訓(xùn)練程序?qū)Χ嗪颂?理器中同一共享資源的占有率進(jìn)行聚集。
[0118] 本發(fā)明實(shí)施例中,聚集模式集合中的聚集模式可以是add或mul。
[0119] 例如:一個(gè)子集合包含4個(gè)程序A,B,C,D ;PA,PB,Pc,PD分別是其對(duì)應(yīng)的壓力值,假 設(shè)預(yù)處理類(lèi)型為none,則在add模式下的聚集結(jié)果為Aggreate (Pi) =PAi+PBi+PCi+PDi。
[0120] 在 mul 模式下的聚集結(jié)果為 Aggreate (Pi) sPAi^PBi^PCi^Di。
[0121] 本發(fā)明實(shí)施例中,預(yù)處理的類(lèi)型和聚集的模式都由配置文件進(jìn)行指定。
[0122] 對(duì)任意一個(gè)訓(xùn)練程序集中的數(shù)據(jù)點(diǎn),將對(duì)應(yīng)的子集合當(dāng)中的所有程序的特征向 量進(jìn)行聚集,設(shè)訓(xùn)練程序A對(duì)應(yīng)的第j個(gè)子集合聚集后的總壓力為PyiAggregatdPi) j (i=l,2,. .,k),則數(shù)據(jù)點(diǎn)變?yōu)槿缦滦问?lt;A,PA,」,PDA,Wj>。
[0123] 其中:A代表程序A,Pq代表A所在子集合經(jīng)過(guò)聚集后對(duì)共享資源的總占有率,PDa 代表A在子集合中受到的干擾值,Wj代表A所在的子集合。
[0124] 本發(fā)明實(shí)施例中,對(duì)于核間性能干擾的量化,可以使用訓(xùn)練程序執(zhí)行時(shí)間的變化, 也可以使用IPC (Inter-Process Communication,進(jìn)程間通信)的變化,訓(xùn)練程序吞吐率的 變化,程序的QoS變化等變化數(shù)值作為量化標(biāo)準(zhǔn)。
[0125] 對(duì)于訓(xùn)練程序A,從其所在的每一個(gè)子集合中,獲得訓(xùn)練程序A與其它訓(xùn)練程序共 同運(yùn)行時(shí),受到的性能干擾值,將其表示為<A,PD A;W>,其中:
[0126] A代表訓(xùn)練程序A, WA,j代表包含A的第j個(gè)子集合,PDA,Wj代表程序A在包含它的 第j個(gè)子集合當(dāng)中的性能下降,即受到的性能干擾值。
[0127] 本發(fā)明實(shí)施例中,在獲得子集合中每一個(gè)程序的性能干擾值,及每個(gè)子集合中所 有程序?qū)蚕碣Y源聚集的總占有率后,可以獲得性能干擾值與總占有率的對(duì)應(yīng)數(shù)據(jù)點(diǎn),如 一個(gè)子集合<a,b,c>,經(jīng)過(guò)性能干擾運(yùn)行之后,a受到的性能干擾值為Pl,b受到的性能干 擾值P2, c受到的性能干擾值P3,同時(shí)a,b,c對(duì)共享資源聚集的總占用率為F,在可以得到 <P1,F(xiàn)>,<P2, F>,<P3, F>,這些數(shù)據(jù)點(diǎn),對(duì)于其中的程序a,至少存在Q個(gè)這樣的數(shù)據(jù)點(diǎn),將性 能干擾值與總占用率的對(duì)應(yīng)數(shù)據(jù)點(diǎn),作為進(jìn)行回歸分析的訓(xùn)練集數(shù)據(jù)。
[0128] 步驟S104:將所有子集合劃分為多個(gè)分析單元,每個(gè)分析單元中包括多個(gè)子集 合;
[0129] 本發(fā)明實(shí)施例中,在確定多個(gè)訓(xùn)練集數(shù)據(jù)之后,為了更加符合多核處理器的運(yùn)行 條件,對(duì)所有子集合進(jìn)行劃分,具體的劃分過(guò)程如本發(fā)明實(shí)施例圖3所示,包括 :
[0130] 步驟S301 :確定所有獲取的總占有率對(duì)應(yīng)的占有率區(qū)間,并依據(jù)預(yù)設(shè)的劃分規(guī) 貝U,對(duì)所述占有率區(qū)間進(jìn)行劃分,得到多個(gè)占有率子區(qū)間;
[0131] 步驟S302 :將每個(gè)子集合分配至其對(duì)應(yīng)的總占有率所屬的占有率子區(qū)間中,每個(gè) 占有率子區(qū)間中所有子集合作為一個(gè)分析單元。
[0132] 本發(fā)明實(shí)施例中,對(duì)于任意一個(gè)共享資源,其所受到的總占用率具有實(shí)際的含義, 例如,共享帶寬,實(shí)際的多核處理器運(yùn)行平臺(tái)限定了共享帶寬的最大帶寬值,所以對(duì)于一個(gè) 共享資源而言,其對(duì)應(yīng)的占有率區(qū)間依據(jù)其實(shí)際的運(yùn)行能力確定,其對(duì)應(yīng)的占有率區(qū)間為 一個(gè)連續(xù)區(qū)間。
[0133] 假設(shè)從樣本程序集合中劃分出4個(gè)子集合,多核處理器中有3個(gè)共享資源,第一 子集合中,所有程序?qū)Φ谝还蚕碣Y源聚集的總占有率為XI,對(duì)第二共享資源的總占有率為 Y1,對(duì)第三共享資源的總占有率Z1 ;
[0134] 第二子集合中,所有程序?qū)Φ谝还蚕碣Y源聚集的總占有率為X2,對(duì)第二共享資源 的總占有率為Y2,對(duì)第三共享資源的總占有率Z2 ;
[0135] 第三子集合中,所有程序?qū)Φ谝还蚕碣Y源聚集的總占有率為X3,對(duì)第二共享資源 的總占有率為Y3,對(duì)第三共享資源的總占有率Z3 ;
[0136] 第四子集合中,所有程序?qū)Φ谝还蚕碣Y源聚集的總占有率為X4,對(duì)第二共享資源 的總占有率為Y4,對(duì)第三共享資源的總占有率Z4 ;
[0137] 則以第一共享資源為例,各個(gè)集合對(duì)第一共享資源的聚集總占率數(shù)據(jù)包括(XI, X2, X3, X4),假設(shè) X1<X2<X3<X4;
[0138] 如果第一共享資源的占有率區(qū)間為連續(xù)區(qū)間(m,n),m〈Xl,n>X4 ;
[0139] 我們選定分段集合中對(duì)第一共享資源的分段為以q點(diǎn)為分界點(diǎn),X2〈q〈X3,將第一 共享資源的占有率區(qū)間分為(m,q),(q,n),在相應(yīng)的第一集合和第二集合劃分至(m,q)區(qū) 間中,第三集合和第四集合劃分至(q,n)集合中。
[0140] 第一集合與第二集合組成一分析單元,第三集合和第四集合組成一分析單元。
[0141] 步驟S105 :依據(jù)預(yù)設(shè)的函數(shù)庫(kù)中的多個(gè)函數(shù)模型,對(duì)不同分析單元中包含的每一 個(gè)樣本程序的性能干擾值及所述該樣本程序所在的子集合所對(duì)應(yīng)的總占有率做回歸分析 得到每一個(gè)樣本程序?qū)?yīng)的函數(shù)模型,在得到的樣本程序?qū)?yīng)的函數(shù)模型中獲取目標(biāo)函數(shù) 模型;
[0142] 本發(fā)明實(shí)施例中將樣本程序受到的性能干擾值,及該樣本程序所在的子集合所對(duì) 應(yīng)的總占有率劃分至不同的分析單元中,進(jìn)行回歸分析。
[0143] 回歸分析的過(guò)程即,確定兩個(gè)不同的變量之間存在關(guān)系,并獲得了一些兩個(gè)變量 的對(duì)應(yīng)值,在假定一個(gè)函數(shù)形式以后,獲得該函數(shù)所有系數(shù)的過(guò)程。
[0144] 本發(fā)明實(shí)施例中,發(fā)明人經(jīng)過(guò)多次研發(fā)試驗(yàn)之后,確定了程序運(yùn)行過(guò)程中受到的 性能干擾值與共享資源上總的占有率之間存在一定的函數(shù)關(guān)系。發(fā)明人經(jīng)過(guò)選取多個(gè)樣 本程序,并通過(guò)樣本程序提取多個(gè)子集合,獲得各個(gè)子集合中各個(gè)程序的性能干擾值及各 個(gè)子集合對(duì)共享資源聚集的總的占有率,得到如上文中<P1,F(xiàn)>,<P2, F>,<P3, F>,這些數(shù)據(jù) 點(diǎn),作為進(jìn)行回歸分析的訓(xùn)練集數(shù)據(jù)。
[0145] 在預(yù)設(shè)的函數(shù)庫(kù)中依次選擇函數(shù)模型,分別與選取的訓(xùn)練集數(shù)據(jù)進(jìn)行回歸分析, 確定各個(gè)函數(shù)模型的系數(shù),在確定了各個(gè)函數(shù)模型的系數(shù)之后,計(jì)算各個(gè)具體函數(shù)模型相 對(duì)與選取的訓(xùn)練集數(shù)據(jù)之間的擬合優(yōu)度,擬合優(yōu)度是指回歸函數(shù)對(duì)觀(guān)測(cè)值的擬合程度。
[0146] 本發(fā)明實(shí)施例中,對(duì)于任意一樣本程序在各個(gè)分析單元中均進(jìn)行多個(gè)回歸分析, 獲得針對(duì)該程序的擬合程度最好的函數(shù)模型,然后對(duì)所有程序的函數(shù)模型的擬合程序進(jìn)行 平均化,獲得針對(duì)所有程序的函數(shù)模型。
[0147] 由上述過(guò)程可以看出,本發(fā)明實(shí)施例中,在完成對(duì)共享資源所受到總占有率的聚 集之后,依據(jù)聚集在多核處理器中各個(gè)共享資源上總占有率值對(duì)各個(gè)子集合進(jìn)行區(qū)間劃 分,所述劃分過(guò)程的依據(jù)即聚集在每一個(gè)共享資源上的總占有率。
[0148] 本發(fā)明實(shí)施例中,通過(guò)設(shè)定一定的劃分條件,將各個(gè)子集合劃分至不同的區(qū)間中, 例如,多核處理器中某一共享資源的特征分為3個(gè)區(qū)間,根據(jù)每一個(gè)子集合聚集在該共享 資源上的總占有率,將各個(gè)子集合分區(qū)其相對(duì)應(yīng)的區(qū)間中。各個(gè)子集合劃分至不同的區(qū)間 之后,各個(gè)子集合中訓(xùn)練程序受到的特征干擾值沒(méi)有變化,只是這些特征干擾值隨著其所 在子集合的區(qū)間劃分,也相應(yīng)的被劃分至不同的壓力區(qū)間中。本發(fā)明實(shí)施例中對(duì)于子集合 的劃分條件可以由相應(yīng)的配置文件配置完成。
[0149] 本發(fā)明實(shí)施例中,可以在配置文件中指定進(jìn)行回歸分析可以使用的函數(shù)類(lèi)型,例 如:指數(shù)函數(shù)類(lèi)型、多項(xiàng)式函數(shù)類(lèi)型等。
[0150] 假設(shè)共享資源中只考慮共享緩存和共享帶寬的影響,經(jīng)過(guò)回歸分析之后的函數(shù)類(lèi) 型為預(yù)設(shè)函數(shù)集合中的抽象函數(shù)類(lèi)型,聚集為:預(yù)處理none,聚集模式add,分段條件為將 共享帶寬上聚集的總占有率分為3個(gè)子區(qū)間,則任意程序A遭受的性能干擾模型在根據(jù)帶 寬的分段條件確定的子區(qū)間內(nèi)可以表示為 :
[0151] PDA=al*Aggregate (Pcache) +a2*Aggregate (Pbw) +CA,其中 PDA 代表了程序遭受的 性能干擾,Aggregate (Pcache),Aggregate (Pbw)代表了共享緩存和共享帶寬上使用none 的預(yù)處理和add的聚集模式聚集的總壓力,al,a2和CA是對(duì)應(yīng)程序A的函數(shù)的系數(shù)。
[0152] PDA=al*Aggregate (Pcache)+a2*Aggregate (Pbw)+CA,為針對(duì)所有樣本程序的目 標(biāo)函數(shù)模型。
[0153] 步驟S106 :依據(jù)所述目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?yīng)的性能干擾模型,所述目 標(biāo)程序?yàn)檫\(yùn)行在多核處理器中的任意一個(gè)程序。
[0154] 對(duì)于上文所述的步驟S101至S105,屬于本發(fā)明實(shí)施例提供的性能干擾模型確定 方法中的第一實(shí)現(xiàn)階段,其主要獲得針對(duì)各個(gè)訓(xùn)練程序的目標(biāo)函數(shù)模型,該目標(biāo)函數(shù)模型 的形式確定,但是針對(duì)不同的程序,該擬合函數(shù)中各個(gè)自變量的系數(shù)是不確定的。
[0155] 因此為了獲得各個(gè)樣本程序的性能干擾模型,還需要執(zhí)行本發(fā)明實(shí)施例提供的性 能干擾模型確定方法中的第二實(shí)現(xiàn)階段,確定不同程序?qū)?yīng)目標(biāo)函數(shù)模型的系數(shù)。
[0156] 步驟S106即為本發(fā)明實(shí)施例中確定性能干擾模型的第二實(shí)現(xiàn)階段。其具體實(shí)現(xiàn) 如本發(fā)明實(shí)施例圖4所示,包括:
[0157] 步驟S401 :獲取所述目標(biāo)程序在多核處理器中運(yùn)行時(shí)受到的性能干擾值,及當(dāng)前 多核處理器中運(yùn)行的所有程序?qū)蚕碣Y源的總占用率;
[0158] 步驟S402 :將所述目標(biāo)程序的性能干擾值及當(dāng)前多核處理器中運(yùn)行的所有程序 對(duì)共享資源的總占有率代入所述目標(biāo)函數(shù)模型中,獲得所述目標(biāo)函數(shù)模型中各個(gè)變量的系 數(shù);
[0159] 步驟S403 :依據(jù)所述各個(gè)變量的系數(shù),確定所述目標(biāo)程序?qū)?yīng)的性能干擾模型。
[0160] 由上文可知,本發(fā)明實(shí)施例提供的第二實(shí)現(xiàn)階段即在相應(yīng)的多核處理器平臺(tái)上根 據(jù)抽象函數(shù)模型實(shí)例化任意一個(gè)程序A所對(duì)應(yīng)整體最優(yōu)擬合函數(shù)的系數(shù)。即上文舉例中的 al,a2, CA〇
[0161] 對(duì)于運(yùn)行在多核處理器中的任意一個(gè)程序A,首先確定A是否屬于步驟S101中的 樣本程序集合,如果屬于,則在獲取目標(biāo)函數(shù)模型的過(guò)程中,已經(jīng)確定了程序A對(duì)應(yīng)的具體 函數(shù)模型,直接調(diào)用獲取即可。
[0162] 如果程序A不在樣本程序集合當(dāng)中,則需要執(zhí)行步驟S401?S403,為程序A確定 不同的子集合,獲取A在各個(gè)子集合中的性能干擾值,及各個(gè)子集合對(duì)共享資源的總占有 率,獲得程序A的訓(xùn)練集數(shù)據(jù),將各個(gè)訓(xùn)練集數(shù)據(jù)代入目標(biāo)函數(shù)模型中,確定目標(biāo)函數(shù)模型 的系數(shù),得到程序A對(duì)應(yīng)的性能干擾模型。
[0163] 本發(fā)明實(shí)施例中獲取的性能干擾值,可以為程序A在不同的子集合當(dāng)中的性能變 化,該性能變化同樣可以是執(zhí)行時(shí)間,IPC或者QoS。
[0164] 本發(fā)明實(shí)施例中,在第二階段執(zhí)行過(guò)程中,由于對(duì)程序A選取的子集合數(shù)目較少, 該過(guò)程可以在常數(shù)時(shí)間內(nèi)完成。
[0165] 本發(fā)明實(shí)施例提供的程序性能干擾模型的確定方法,能夠?yàn)檫\(yùn)行在多核處理器上 的每一個(gè)程序提供一性能干擾模型,對(duì)每一個(gè)程序運(yùn)行在多核處理器中所受到來(lái)自其它程 序的性能干擾進(jìn)行量化,為避免相互干擾較為強(qiáng)烈的程序運(yùn)行在同一多核處理器中提供了 調(diào)度依據(jù)。確保了程序在多核處理器中運(yùn)行時(shí)的最優(yōu)性能。
[0166] 例如:當(dāng)某一優(yōu)先級(jí)較高的程序在多核處理器中運(yùn)行時(shí),可以依據(jù)該程序所對(duì)應(yīng) 的性能干擾模型確定哪些程序與該程序共同運(yùn)行時(shí)對(duì)該程序的性能干擾較大,避免這些程 序與該程序一同運(yùn)行。可以調(diào)度一些對(duì)該程序性能干擾較小的程序一同運(yùn)行,從而也提升 了多核處理器的資源利用率。
[0167] 更加具體的,多功能手機(jī)中設(shè)置有多核處理器,用戶(hù)點(diǎn)開(kāi)多個(gè)程序后,程序會(huì)在手 機(jī)后臺(tái)繼續(xù)運(yùn)行,當(dāng)用戶(hù)啟動(dòng)某一程序時(shí),應(yīng)用本發(fā)明實(shí)施例提供并確定的性能干擾模型, 可以為用戶(hù)提示后臺(tái)運(yùn)行的哪些程序與當(dāng)前需要啟動(dòng)的程序一同運(yùn)行,會(huì)對(duì)當(dāng)前需要啟動(dòng) 的程序造成較大的性能干擾。用戶(hù)可以在后臺(tái)關(guān)閉相關(guān)程序,以保證需要啟動(dòng)的程序正常 啟動(dòng),運(yùn)行過(guò)程中的性能穩(wěn)定。
[0168] 與上述方法相對(duì)應(yīng),為上述方法的實(shí)現(xiàn)提供一具體的實(shí)現(xiàn)平臺(tái),本發(fā)明實(shí)施例還 提供了一種程序性能干擾模型的確定設(shè)備,該確定設(shè)備可以應(yīng)用在任意多核處理器中,其 結(jié)構(gòu)示意圖如圖5所示,包括:
[0169] 第一確定單兀501,用于確定樣本程序集合,所述樣本程序集合中包括多個(gè)用于樣 本訓(xùn)練的樣本程序;
[0170] 提取單元502,用于依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣本程序集合中提取多個(gè)子集 合,所述多個(gè)子集合的并集為所述樣本程序集合;
[0171] 獲取單元503,用于獲取各個(gè)子集合中每一個(gè)樣本程序在所述多核處理器中運(yùn)行 時(shí)受到的性能干擾值,及每個(gè)子集合中的所有樣本程序?qū)λ龆嗪颂幚砥髦泄蚕碣Y源的總 占有率;
[0172] 劃分單元504,用于將所有子集合劃分為多個(gè)分析單元,每個(gè)分析單元中包括多個(gè) 子集合;
[0173] 分析單元505,用于依據(jù)預(yù)設(shè)的函數(shù)庫(kù)中多個(gè)函數(shù)模型,對(duì)不同分析單元中包含的 每一個(gè)樣本程序的性能干擾值及所述該樣本程序所在的子集合所對(duì)應(yīng)的總占有率做回歸 分析得到每一個(gè)樣本程序?qū)?yīng)的函數(shù)模型,在得到的所有樣本程序?qū)?yīng)的函數(shù)模型中獲取 目標(biāo)函數(shù)模型;
[0174] 第二確定單元506,用于依據(jù)所述目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?yīng)的性能干擾模 型,所述目標(biāo)程序?yàn)檫\(yùn)行在多核處理器中的任意一個(gè)程序。
[0175] 圖6為本發(fā)明實(shí)施例提供的程序性能干擾模型確定設(shè)備的一詳細(xì)結(jié)構(gòu)示意圖,在 圖5所示結(jié)構(gòu)的基礎(chǔ)上,對(duì)圖5中設(shè)備的結(jié)構(gòu)進(jìn)行詳細(xì)描述 :
[0176] 所述第一確定單元501包括:
[0177] 第一確定子單元507,用于確定多核處理器所對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)中各個(gè)應(yīng)用 程序的特征向量;所述特征向量表示應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí),對(duì)所述多核處 理器中各個(gè)共享資源的占有率;
[0178] 歸類(lèi)子單元508,用于將占有率在同一預(yù)設(shè)占有率區(qū)間中的應(yīng)用程序歸類(lèi)至同一 特征組中;
[0179] 選取子單元509,用于在各個(gè)特征組中隨機(jī)選取一個(gè)應(yīng)用程序作為樣本程序,組成 樣本程序集合。
[0180] 所述劃分單元504包括:
[0181] 劃分子單元510,用于確定所有獲取的總占有率對(duì)應(yīng)的占有率區(qū)間,并依據(jù)預(yù)設(shè)的 劃分規(guī)則,對(duì)所述占有率區(qū)間進(jìn)行劃分,得到多個(gè)占有率子區(qū)間;
[0182] 分配子單元511,用于將每個(gè)子集合分配至其對(duì)應(yīng)的總占有率所屬的占有率子區(qū) 間中,每個(gè)占有率子區(qū)間中所有子集合為一個(gè)分析單元。
[0183] 所述第二確定單元506包括:
[0184] 獲取子單元512,用于獲取所述目標(biāo)程序在多核處理器中運(yùn)行時(shí)受到的性能干擾 值,及當(dāng)前多核處理器中運(yùn)行的所有程序?qū)蚕碣Y源的總占有率;
[0185] 代入子單元513,用于將所述目標(biāo)程序的性能干擾值及當(dāng)前多核處理器中運(yùn)行的 所有程序?qū)蚕碣Y源的總占有率代入所述目標(biāo)函數(shù)模型中,獲得所述目標(biāo)函數(shù)模型中各個(gè) 變量的系數(shù);
[0186] 第二確定子單元514,用于依據(jù)所述各個(gè)變量的系數(shù),確定所述目標(biāo)程序?qū)?yīng)的性 能干擾值。
[0187] 本發(fā)明實(shí)施例提供的程序性能干擾模型的確定設(shè)備,可以針對(duì)運(yùn)行在多核處理器 中的各個(gè)程序,為每一個(gè)程序確定其所對(duì)應(yīng)的性能干擾模型,使得任意一程序與其它程序 共同運(yùn)行在多核處理器中時(shí)所受到的來(lái)自其它程序的性能干擾得以量化,可以避免相互之 間干擾較大的程序共同運(yùn)行在同一多核處理器中,同時(shí)也為可以共同運(yùn)行的各個(gè)程序之間 的相互調(diào)度提供了指示,提供了多核處理器的資源利用率。
[0188] 本發(fā)明實(shí)施例還提供了一種多核處理器,其結(jié)構(gòu)示意圖如本發(fā)明實(shí)施例圖7所 示,多核處理器601中設(shè)置有程序性能干擾模型的確定設(shè)備602.
[0189] 所述確定設(shè)備602包括第一確定單元,提取單元,獲取單元,劃分單元,分析單元, 第二確定單元。所述第一確定單元,提取單元,獲取單元,劃分單元,分析單元,第二確定單 元的結(jié)構(gòu)與功能具體可參見(jiàn)上述圖6及圖7所述的實(shí)施例,在此不再贅述。
[0190] 圖8為本發(fā)明實(shí)施例提供的又一種多核處理器的結(jié)構(gòu)示意圖,本發(fā)明具體實(shí)施例 并不對(duì)該多核處理器的具體實(shí)現(xiàn)做限定。如圖8所示,該多核處理器701可以包括:
[0191] CPU702,通信接口(Communications Interface) 706,存儲(chǔ)器(memory) 703,通信總 線(xiàn) 705。
[0192] CPU702,通信接口 706,存儲(chǔ)器703通過(guò)通信總線(xiàn)705完成相互間的通信。
[0193] 通信接口 706,用于與網(wǎng)元通信,比如網(wǎng)絡(luò)服務(wù)器等網(wǎng)元。
[0194] CPU702,用于執(zhí)行程序704,具體可以執(zhí)行上述圖1至圖5所示的方法實(shí)施例中的 相關(guān)步驟。
[0195] 具體地,程序704可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。
[0196] 存儲(chǔ)器703,用于存放程序704。存儲(chǔ)器703可能包含高速RAM存儲(chǔ)器,也可能還 包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。程序704具體可 以包括:
[0197] 第一確定單元,提取單元,獲取單元,劃分單元,分析單元,第二確定單元,所述第 一確定單元,提取單元,獲取單元,劃分單元,分析單元,第二確定單元的結(jié)構(gòu)與功能具體可 參見(jiàn)上述圖6及圖7所述的實(shí)施例,在此不再贅述。
[0198] 所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的設(shè)備 和模塊的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程描述,在此不再贅述。
[0199] 本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò) 程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序 在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者 光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0200] 在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過(guò)其 它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅 僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié) 合或者可以集成到另一個(gè)設(shè)備中,或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論 的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些通信接口,裝置或模塊的間接耦 合或通信連接,可以是電性,機(jī)械或其它的形式。
[0201] 所述作為分離部件說(shuō)明的模塊可以是或者也可以不是物理上分開(kāi)的,作為模塊顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè) 網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部,模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的 目的。
[0202] 另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理模塊中,也可以 是各個(gè)模塊單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。
[0203] 最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制; 盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其 依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征 進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技 術(shù)方案的范圍。
【權(quán)利要求】
1. 一種程序性能干擾模型的確定方法,其特征在于,所述方法應(yīng)用于多核處理器,包 括: 確定樣本程序集合,所述樣本程序集合中包括多個(gè)用于樣本訓(xùn)練的樣本程序; 依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣本程序集合中提取多個(gè)子集合,所述多個(gè)子集合的并 集為所述樣本程序集合; 獲取各個(gè)子集合中每一個(gè)樣本程序在所述多核處理器中運(yùn)行時(shí)受到的性能干擾值,及 每個(gè)子集合中的所有樣本程序?qū)λ龆嗪颂幚砥髦泄蚕碣Y源的總占有率; 將所有子集合劃分為多個(gè)分析單元,每個(gè)分析單元中包括多個(gè)子集合; 依據(jù)預(yù)設(shè)的函數(shù)庫(kù)中多個(gè)函數(shù)模型,對(duì)不同分析單元中包含的每一個(gè)樣本程序的性能 干擾值及所述該樣本程序所在的子集合所對(duì)應(yīng)的總占有率做回歸分析得到每一個(gè)樣本程 序?qū)?yīng)的函數(shù)模型,在得到的所有樣本程序?qū)?yīng)的函數(shù)模型中獲取目標(biāo)函數(shù)模型; 依據(jù)所述目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?yīng)的性能干擾模型,所述目標(biāo)程序?yàn)檫\(yùn)行在 多核處理器中的任意一個(gè)程序。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定樣本程序集合包括: 確定多核處理器所對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)中各個(gè)應(yīng)用程序的特征向量;所述特征向量 表示應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí),對(duì)所述多核處理器中各個(gè)共享資源的占有率; 將占有率在同一預(yù)設(shè)占有率區(qū)間中的應(yīng)用程序歸類(lèi)至同一特征組中; 在各個(gè)特征組中隨機(jī)選取一個(gè)應(yīng)用程序作為樣本程序,組成樣本程序集合。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣本程 序集合中提取多個(gè)子集合包括: 分別將所述樣本程序集合中的每一個(gè)樣本程序作為目標(biāo)樣本程序; 在所述樣本程序集合中提取Q個(gè)包含所述目標(biāo)樣本程序的不同子集合,每個(gè)子集合中 共包含N個(gè)樣本程序; 其中: N為多核處理器中集的處理器核也的個(gè)數(shù); ,Q取整數(shù),M為樣本程序集合中樣本程序的數(shù)目。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所有子集合劃分為多個(gè)分析單元 包括: 確定所有獲取的總占有率對(duì)應(yīng)的占有率區(qū)間,并依據(jù)預(yù)設(shè)的劃分規(guī)則,對(duì)所述占有率 區(qū)間進(jìn)行劃分,得到多個(gè)占有率子區(qū)間; 將每個(gè)子集合分配至其對(duì)應(yīng)的總占有率所屬的占有率子區(qū)間中,每個(gè)占有率子區(qū)間中 所有子集合為一個(gè)分析單元。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?應(yīng)的性能干擾模型包括: 獲取所述目標(biāo)程序在多核處理器中運(yùn)行時(shí)受到的性能干擾值,及當(dāng)前多核處理器中運(yùn) 行的所有程序?qū)蚕碣Y源的總占有率; 將所述目標(biāo)程序的性能干擾值及當(dāng)前多核處理器中運(yùn)行的所有程序?qū)蚕碣Y源的總 占有率代入所述目標(biāo)函數(shù)模型中,獲得所述目標(biāo)函數(shù)模型中各個(gè)變量的系數(shù); 依據(jù)所述各個(gè)變量的系數(shù),確定所述目標(biāo)程序?qū)?yīng)的性能干擾模型。
6. -種程序性能干擾模型的確定設(shè)備,其特征在于,所述設(shè)備應(yīng)用于多核處理器,包 括: 第一確定單元,用于確定樣本程序集合,所述樣本程序集合中包括多個(gè)用于樣本訓(xùn)練 的樣本程序; 提取單元,用于依據(jù)預(yù)設(shè)的提取規(guī)則,在所述樣本程序集合中提取多個(gè)子集合,所述多 個(gè)子集合的并集為所述樣本程序集合; 獲取單元,用于獲取各個(gè)子集合中每一個(gè)樣本程序在所述多核處理器中運(yùn)行時(shí)受到的 性能干擾值,及每個(gè)子集合中的所有樣本程序?qū)λ龆嗪颂幚砥髦泄蚕碣Y源的總占有率; 劃分單元,用于將所有子集合劃分為多個(gè)分析單元,每個(gè)分析單元中包括多個(gè)子集 合; 分析單元,用于依據(jù)預(yù)設(shè)的函數(shù)庫(kù)中多個(gè)函數(shù)模型,對(duì)不同分析單元中包含的每一個(gè) 樣本程序的性能干擾值及所述該樣本程序所在的子集合所對(duì)應(yīng)的總占有率做回歸分析得 到每一個(gè)樣本程序?qū)?yīng)的函數(shù)模型,在得到的所有樣本程序?qū)?yīng)的函數(shù)模型中獲取目標(biāo)函 數(shù)模型; 第二確定單元,用于依據(jù)所述目標(biāo)函數(shù)模型,確定目標(biāo)程序?qū)?yīng)的性能干擾模型,所述 目標(biāo)程序?yàn)檫\(yùn)行在多核處理器中的任意一個(gè)程序。
7. 根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述第一確定單元包括: 第一確定子單元,用于確定多核處理器所對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)庫(kù)中各個(gè)應(yīng)用程序的特 征向量;所述特征向量表示應(yīng)用程序單獨(dú)運(yùn)行在多核處理器中時(shí),對(duì)所述多核處理器中各 個(gè)共享資源的占有率; 歸類(lèi)子單元,用于將占有率在同一預(yù)設(shè)占有率區(qū)間中的應(yīng)用程序歸類(lèi)至同一特征組 中; 選取子單元,用于在各個(gè)特征組中隨機(jī)選取一個(gè)應(yīng)用程序作為樣本程序,組成樣本程 序集合。
8. 根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述劃分單元包括: 劃分子單元,用于確定所有獲取的總占有率對(duì)應(yīng)的占有率區(qū)間,并依據(jù)預(yù)設(shè)的劃分規(guī) 貝1J,對(duì)所述占有率區(qū)間進(jìn)行劃分,得到多個(gè)占有率子區(qū)間; 分配子單元,用于將每個(gè)子集合分配至其對(duì)應(yīng)的總占有率所屬的占有率子區(qū)間中,每 個(gè)占有率子區(qū)間中所有子集合為一個(gè)分析單元。
9. 根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述第二確定單元包括: 獲取子單元,用于獲取所述目標(biāo)程序在多核處理器中運(yùn)行時(shí)受到的性能干擾值,及當(dāng) 前多核處理器中運(yùn)行的所有程序?qū)蚕碣Y源的總占有率; 代入子單元,用于將所述目標(biāo)程序的性能干擾值及當(dāng)前多核處理器中運(yùn)行的所有程序 對(duì)共享資源的總占有率代入所述目標(biāo)函數(shù)模型中,獲得所述目標(biāo)函數(shù)模型中各個(gè)變量的系 數(shù); 第二確定子單元,用于依據(jù)所述各個(gè)變量的系數(shù),確定所述目標(biāo)程序?qū)?yīng)的性能干擾 值。
【文檔編號(hào)】G06F11/36GK104424101SQ201310410943
【公開(kāi)日】2015年3月18日 申請(qǐng)日期:2013年9月10日 優(yōu)先權(quán)日:2013年9月10日
【發(fā)明者】崔慧敏, 趙家程, 馮曉兵 申請(qǐng)人:華為技術(shù)有限公司, 中國(guó)科學(xué)院計(jì)算技術(shù)研究所