專利名稱:一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,屬于多核計算機訪存性能優(yōu)化技術(shù)領(lǐng)域,可用于提升非規(guī)則數(shù)據(jù)密集應(yīng)用的執(zhí)行性能。
背景技術(shù):
近年來,片上多核處理器技術(shù)廣泛應(yīng)用于超級計算機、云計算等大型高性能計算領(lǐng)域,此類片上多核處理器技術(shù)通常將多個計算內(nèi)核有機集成在一個處理器芯片中,通過綜合利用片上私有緩存、硬件預(yù)取、片上共享資源和多核多線程并行執(zhí)行,來提高應(yīng)用程序的平均性能。然而,對非規(guī)則數(shù)據(jù)密集型應(yīng)用來說,這些非規(guī)則數(shù)據(jù)密集訪存請求,往往來自該應(yīng)用中的非規(guī)則數(shù)據(jù)鏈表和非規(guī)則數(shù)組,由于它們的當(dāng)前訪存請求地址與下一個訪存請求地址往往不具有連續(xù)性,導(dǎo)致上述基于局部性的傳統(tǒng)硬件預(yù)取技術(shù)不會產(chǎn)生明顯的性 能改進效果,這種情況下,基于幫助線程的預(yù)取方法被提出,該方法通過構(gòu)造這類應(yīng)用線程的預(yù)取幫助線程,使預(yù)取幫助線程在空閑核上執(zhí)行,試圖提前訪問這些需要預(yù)取的非規(guī)則數(shù)據(jù),并僅可能讓這些數(shù)據(jù)在被應(yīng)用線程訪問之前就及時推送至片上共享緩存中,以隱藏該應(yīng)用線程的片外訪存延遲,從而達到改進性能的目的。針對這類幫助線程預(yù)取控制的參數(shù)和閾值選取問題,國外學(xué)者在《IEEETransactions on Parallel and Distributed Systems〉〉上 2009 年發(fā)表的〈〈Prefetchingwith Helper Threads for Loosely Coupled Multiprocessor Systems》中,米用了基于PV信號量和同步塊參數(shù)的經(jīng)驗閾值方法,這類方法的致命缺陷是未支持預(yù)取距離參數(shù)的控制機制,嚴重限制了幫助線程的有效應(yīng)用范圍和應(yīng)用場景;為了克服這一缺陷,我們在〈〈2011 International Conference on Parallel Processing Workshops〉〉上 2011 年發(fā)表了 ((Improving Performance of the Irregular Data Intensive Application with SmallComputation Workload for CMPs》,提出了一種基于交織預(yù)取的幫助線程控制策略,采用了基于預(yù)取距離、預(yù)取大小和同步塊大小的三控制參數(shù)和經(jīng)驗閾值,極大地擴展了幫助線程的應(yīng)用范圍和應(yīng)用場景。在以上這類幫助線程預(yù)取控制策略中,由于預(yù)取控制參數(shù)的最佳閾值難以準(zhǔn)確地確定,往往不得不采用經(jīng)驗法,人為指定這些預(yù)取參數(shù)的閾值,這樣容易導(dǎo)致過早或過晚的預(yù)取情況發(fā)生,加劇共享緩存污染,甚至?xí)乐赜绊懶阅芴嵘男Ч?。為了克服傳統(tǒng)經(jīng)驗法的缺陷,減少幫助線程預(yù)取帶來的共享緩存污染,進一步提升幫助線程的預(yù)取性能,本發(fā)明提出了一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取技術(shù),來為它的最佳閾值優(yōu)選提供核心技術(shù)支撐。迄今為止,尚未見到該項技術(shù)的報道。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決幫助線程中預(yù)取距離參數(shù)的閾值邊界選取問題,而提出一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法。本發(fā)明的目的是通過下述技術(shù)方案實現(xiàn)的。
為了便于闡明本發(fā)明方法所涉及的具體步驟,首先給出本發(fā)明方法中涉及的相關(guān)技術(shù)術(shù)語的定義定義I :熱函數(shù)對應(yīng)用程序P中的任一函數(shù)f (P),利用Intel VTune性能分析器分別獲取應(yīng)用程序P的數(shù)據(jù)缺失計數(shù)、應(yīng)用程序P的時鐘周期計數(shù)、函數(shù)f(p)的數(shù)據(jù)缺失計數(shù)、函數(shù)f(P)的時鐘周期計數(shù);如果用函數(shù)f (P)的數(shù)據(jù)缺失計數(shù)除以應(yīng)用程序P的數(shù)據(jù)缺失計數(shù),其結(jié)果不小于ε 1,并且用函數(shù)f(P)的時鐘周期計數(shù)除以應(yīng)用程序P的時鐘周期計數(shù),其結(jié)果不小于ε2,0< ε J < 1,0 < ε2< I,則稱函數(shù)f (P)是一個熱函數(shù);其中,ε ^ ε 2的值選用經(jīng)驗值;這里數(shù)據(jù)缺失和時鐘周期的含義與計算機學(xué)科中的含義相同;定義2 :基于交織預(yù)取的幫助線程 對一個熱函數(shù),若采用了預(yù)取距離、預(yù)取大小和同步塊大小的三控制參數(shù)來構(gòu)建幫助線程的預(yù)取控制策略,那么把采用這種預(yù)取控制策略的幫助線程稱為基于交織預(yù)取的幫助線程;定義3 :預(yù)取距離的閾值邊界一個預(yù)取距離的閾值邊界是指該預(yù)取距離參數(shù)的有效取值范圍,即左邊界值 <預(yù)取距離的閾值<右邊界值;定義4:目標(biāo)多核處理器可使基于交織預(yù)取的幫助線程正常運行的片上多核處理器稱為目標(biāo)多核處理器,它須滿足至少有兩處理核來共享片上總線和一個多路組共享緩存結(jié)構(gòu);一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,基本思想是針對熱函數(shù),高效選取交織預(yù)取幫助線程中預(yù)取距離參數(shù)的閾值邊界,其整體框架設(shè)計流程如圖I所示,其特征在于I)開始按定義I的操作,摘取該應(yīng)用程序的一個熱函數(shù),進入步驟I ;若不存在這樣的熱函數(shù),則轉(zhuǎn)結(jié)束;2)步驟一預(yù)取距離的閾值左邊界選??;3)步驟二 預(yù)取距離的閾值右邊界選?。?)步驟三基于特征2)和特征3)來構(gòu)造預(yù)取距離的閾值邊界;5)結(jié)束退出該方法;步驟一到步驟三的具體實現(xiàn)步驟如下步驟一、預(yù)取距離的閾值左邊界選取其特征在于針對該熱函數(shù)構(gòu)造基于交織預(yù)取的幫助線程,設(shè)置當(dāng)前預(yù)取距離的閾值為0,然后在目標(biāo)多核處理器上展開預(yù)取距離的閾值左邊界逐步修正過程;其具體操作步驟如下第I. I步針對該熱函數(shù),按定義2來構(gòu)造基于交織預(yù)取的幫助線程;第I. 2步取當(dāng)前預(yù)取距離的閾值為0,而預(yù)取大小和同步塊大小的參數(shù)閾值分別采用經(jīng)驗值,讓該基于交織預(yù)取的幫助線程在定義4的目標(biāo)多核處理器上執(zhí)行,如果預(yù)取加速比效果大于1,返回預(yù)取距離的閾值左邊界為0,轉(zhuǎn)第I. 5步;否則,轉(zhuǎn)I. 3步;第I. 3步當(dāng)前預(yù)取距離的閾值加1,預(yù)取大小和同步塊大小的參數(shù)閾值分別采用經(jīng)驗值,讓該基于交織預(yù)取的幫助線程在定義4的目標(biāo)多核處理器上執(zhí)行;
第I. 4步如果預(yù)取加速比效果大于I或當(dāng)前預(yù)取距離的閾值等于該熱函數(shù)循環(huán)總次數(shù),返回預(yù)取距離的閾值左邊界為當(dāng)前預(yù)取距離閾值,轉(zhuǎn)第I. 5步;否則,轉(zhuǎn)第I. 3步;第I. 5步步驟一結(jié)束;經(jīng)過上述步驟的操作,即可得到預(yù)取距離的閾值左邊界;步驟二、預(yù)取距離的閾值右邊界選取其特征在于在步驟一選取預(yù)取距離的閾值左邊界基礎(chǔ)上,在目標(biāo)多核處理器上,采用插樁采樣方法,獲取該熱函數(shù)的訪存地址連續(xù)序列信息,然后將它作為基于目標(biāo)多核處理器的共享緩存模擬結(jié)構(gòu)輸入,通過多路組緩存的估算操作,展開預(yù)取距離的閾值右邊界選取過程;其具體操作步驟如下 第2. I步如果預(yù)取距離的閾值左邊界為0,返回預(yù)取距離的閾值右邊界為0,并且使TagR= 1,轉(zhuǎn)第2. 7步;否則,轉(zhuǎn)第2. 2步;第2. 2步在滿足定義4的目標(biāo)多核處理器上,采用插樁采樣方法,獲取該熱函數(shù)的訪存地址連續(xù)序列信息,該訪存地址連續(xù)序列信息由熱函數(shù)的循環(huán)體計數(shù)值、訪存地址
組成,即記錄1〈循環(huán)體計數(shù)值1,訪存地址1>、記錄2〈循環(huán)體計數(shù)值2,訪存地址2>、......、
〈結(jié)束〉,并設(shè)置當(dāng)前記錄指針為第一條記錄;第2. 3步依據(jù)目標(biāo)多核處理器中共享緩存的路數(shù)和組數(shù),設(shè)置基于M路N組的多核共享緩存模擬結(jié)構(gòu)中的M和N取值,即讓M等于目標(biāo)多核處理器中共享緩存的路數(shù),N等于目標(biāo)多核處理器中共享緩存的組數(shù);第2. 4步如果當(dāng)前記錄指針到達〈結(jié)束 > 則TagR = 2,轉(zhuǎn)2. 7步;否則,讀入當(dāng)前記錄到Y(jié),轉(zhuǎn)第2. 5步;第2. 5步通過對Y中的訪存地址除N取余數(shù),來計算該條記錄中訪存地址所在的組,如果該組的M路中仍有空閑路存在,則在該路中放入該地址,當(dāng)前記錄指針加I ;否則,把該記錄中熱函數(shù)的循環(huán)體計數(shù)值的一半,經(jīng)取整為X,取△ I等于取整[(X乘以(熱函數(shù)體一次循環(huán)訪存次數(shù)-幫助線程一次循環(huán)訪存次數(shù)))/熱函數(shù)體一次循環(huán)訪存次數(shù)+0. 5],再讓X等于X加上這個整數(shù)修正量Λ I后,將該X值返回作為預(yù)取距離的閾值右邊界,并且TagR = 1,轉(zhuǎn)第 2. 7 步;第2. 6步轉(zhuǎn)第2. 4步;第2. 7步如果TagR等于2則返回(當(dāng)前記錄指針_1)的熱函數(shù)循環(huán)體計數(shù)值作為預(yù)取距離的閾值右邊界,步驟二結(jié)束;經(jīng)過上述步驟的操作,即可得到預(yù)取距離的閾值右邊界;步驟三、構(gòu)造預(yù)取距離的閾值邊界其特征在于在步驟一選取預(yù)取距離的閾值左邊界和步驟二選取預(yù)取距離的閾值右邊界的基礎(chǔ)上,構(gòu)造預(yù)取距離的閾值邊界;其具體操作步驟如下第3. I步將預(yù)取距離的閾值左邊界賦值給L ;第3. 2步將預(yù)取距離的閾值右邊界賦值給R ;第3. 3步如果L =該熱函數(shù)循環(huán)的總次數(shù),轉(zhuǎn)第3. 6步;第3. 4步如果L小于該熱函數(shù)循環(huán)總次數(shù)且R =該熱函數(shù)循環(huán)總次數(shù),返回L (預(yù)取距離的閾值≤ R,轉(zhuǎn)第3. 6步;第3. 5步如果L = R,預(yù)取距離的唯一閾值就是L ;否則,按定義3,返回L彡預(yù)取距離的閾值 ≤R ;第3. 6步步驟三結(jié)束。經(jīng)過上述步驟的操作,即可得到預(yù)取距離的閾值邊界或唯一閾值。有益效果本發(fā)明對比已有技術(shù)具有以下創(chuàng)新點①本發(fā)明采用一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,與傳統(tǒng)經(jīng)驗法相比,主要技術(shù)包括預(yù)取距離的閾值左邊界選取、預(yù)取距離的閾值右邊界選取、預(yù)取距離的閾值邊界構(gòu)造,能夠有效確定預(yù)取距離參數(shù)的閾值邊界,為幫助線程中預(yù)取距離參數(shù)的閾值優(yōu)選提供了有力支撐;②與傳統(tǒng)枚舉取值方法相比,本發(fā)明可極大地縮小了預(yù)取距離參數(shù)閾值的取值范圍,在參數(shù)閾值動態(tài)優(yōu)化方面有著不可比擬的快速性特點;③本發(fā)明可廣泛應(yīng)用于非規(guī)則密集數(shù)據(jù)訪存性能優(yōu)化、幫助線程預(yù)取控制策略中預(yù)取距離閾值優(yōu)化和共享緩存污染控制等方面。
圖I為本發(fā)明的整體框架設(shè)計流程具體實施例方式根據(jù)上述技術(shù)方案,下面結(jié)合實施例對本發(fā)明作進一步說明;實施例I以下面應(yīng)用程序P中的一個循環(huán)函數(shù)樣本為例,while(condition){whilebody ;}結(jié)合上述循環(huán)函數(shù)樣本舉例,給出相關(guān)術(shù)語的定義如下定義I :熱函數(shù)對應(yīng)用程序P中的該循環(huán)函數(shù)f (P),利用Intel VTune性能分析器分別獲取應(yīng)用程序P的數(shù)據(jù)缺失計數(shù)=65656666、應(yīng)用程序P的時鐘周期計數(shù)=78787888、函數(shù)f (P)的數(shù)據(jù)缺失計數(shù)=61222666、函數(shù)f (P)的時鐘周期計數(shù)=63636363 ;用函數(shù)f (P)的數(shù)據(jù)缺失計數(shù)除以應(yīng)用程序P的數(shù)據(jù)缺失計數(shù),其結(jié)果O. 93不小于ε I = O. 6,并且用函數(shù)f (P)的時鐘周期計數(shù)除以應(yīng)用程序P的時鐘周期計數(shù),其結(jié)果O. 80不小于ε2 = 0.6,0<<1,0< ε2< 1,則稱該循環(huán)函數(shù)f(P)是一個熱函數(shù);定義2 :基于交織預(yù)取的幫助線程對該循環(huán)熱函數(shù)f (P),采用預(yù)取距離K、預(yù)取大小P和同步塊大小B的三控制參數(shù)來構(gòu)建幫助線程的預(yù)取控制策略如下while (condition) {
for (j=0;j〈B && condition;j++){ for (i=0;i<K && condition;i++){ push_whilebodyl;
}},采用這種三參數(shù)預(yù)取控制策 for (i=0;i<P&& condition;i++) {
push—whilebody2;
}
}
synchronization;
略的幫助線程,稱為基于交織預(yù)取的幫助線程;定義3 :預(yù)取距離的閾值邊界一個預(yù)取距離K的閾值邊界是指該K閾值的有效取值范圍,如左邊界值I < K的閾值<右邊界值22 ;定義4:目標(biāo)多核處理器如Intel Q6600多核處理器就是一個目標(biāo)多核處理器,它可使上述基于交織預(yù)取的幫助線程在其上正常運行,該多核處理器滿足至少有兩處理核來共享片上總線和一個多路組共享緩存結(jié)構(gòu)的條件要求;開始按定義I的操作,摘取到該應(yīng)用程序P的一個熱函數(shù)f (P);步驟一、預(yù)取距離的閾值左邊界選取第I. I步針對該熱函數(shù)f (P),按定義2構(gòu)造基于交織預(yù)取的幫助線程;第I. 2步取當(dāng)前預(yù)取距離的閾值為0,預(yù)取大小和同步塊大小的參數(shù)閾值分別采 用經(jīng)驗值5和100,讓該基于交織預(yù)取的幫助線程在定義4的Q6600目標(biāo)多核處理器上執(zhí)行,由于預(yù)取加速比效果0. 8小于1,轉(zhuǎn)I. 3步;第I. 3步當(dāng)前預(yù)取距離的閾值加1,預(yù)取大小和同步塊大小的參數(shù)閾值分別采用經(jīng)驗值5和100,讓該基于交織預(yù)取的幫助線程在定義4的Q6600目標(biāo)多核處理器上執(zhí)行;第I. 4步由于預(yù)取加速比效果1.21大于1,返回預(yù)取距離的閾值左邊界為當(dāng)前預(yù)取距離閾值,即1,轉(zhuǎn)第I. 5步;第I. 5步步驟一結(jié)束;經(jīng)過上述步驟的操作,即可得到預(yù)取距離的閾值左邊界為I ; 步驟二、預(yù)取距離的閾值右邊界選取第2. I步由于預(yù)取距離的閾值左邊界=I,轉(zhuǎn)第2. 2步;
第2. 2步在滿足定義4的Q6600多核處理器上,采用插樁采樣方法,獲取該熱函數(shù)f(P)的訪存地址連續(xù)序列信息,如記錄1〈1,80671234>、記錄2〈1,81783221>、記錄
3〈1,87783229〉、記錄 4〈2,8434A789>、......、記錄 J〈36,83110011〉、......、〈結(jié)束〉,并設(shè)置
當(dāng)前記錄指針為第一條記錄;第2. 3步依據(jù)目標(biāo)多核處理器中共享緩存的路數(shù)=16和組數(shù)=1K,設(shè)置基于M路N組的多核共享緩存模擬結(jié)構(gòu)中的M和N取值,即讓M = 16,N = IK = 1024 ;第2. 4步由于當(dāng)前記錄指針未到〈結(jié)束 >,讀入當(dāng)前記錄到Y(jié),即Y =〈I,80671234〉,轉(zhuǎn)第 2. 5 步; 第2. 5步通過對Y中的訪存地址除N取余數(shù)=取余((80671234) 16/1024)=取余((1000 0000 0110 0111 0001 0010 0011 0100)2/1024) = 564,即該條記錄中訪存地址所在的組為564,如果該組的M = 16路中仍有空閑路存在,則在該路中放入該地址=1000
00000110 0111 0001 0010 0011 0100,當(dāng)前記錄指針加 I ;第2. 6步轉(zhuǎn)第2. 4步;這種情況具體說明如下須繼續(xù)執(zhí)行第2. 4步到第2. 5步,直到第J條記錄時,由于取余((83110011) 16/1024 = 17,第17組的M= 16路中已無空閑路存在,把該記錄中熱函數(shù)的循環(huán)體計數(shù)值=36的一半18,經(jīng)取整為X= 18,取Λ I等于取整[(18乘以(熱函數(shù)體一次循環(huán)訪存次數(shù)10-幫助線程一次循環(huán)訪存次數(shù)8))/熱函數(shù)體一次循環(huán)訪存次數(shù)10+0. 5]=取整[18乘2/10+0. 5] = 4,再讓X等于18加Λ I的4后為22,將該X = 22值返回作為預(yù)取距離的閾值右邊界,并且TagR = 1,轉(zhuǎn)第2. 7步;第2. 7步由于TagR = I,步驟二結(jié)束;經(jīng)過上述步驟的操作,即可得到預(yù)取距離的閾值右邊界為22 ;步驟三、構(gòu)造預(yù)取距離的閾值邊界第3. I步將預(yù)取距離的閾值左邊界I賦值給L ;第3. 2步將預(yù)取距離的閾值右邊界22賦值給R ;第3. 3步如果L =該熱函數(shù)循環(huán)的總次數(shù)30000,轉(zhuǎn)第3. 6步;第3. 4步如果L小于該熱函數(shù)循環(huán)總次數(shù)且R =該熱函數(shù)循環(huán)總次數(shù),返回L (預(yù)取距離的閾值< R,轉(zhuǎn)第3. 6步;第3. 5步如果L = R,預(yù)取距離的唯一閾值就是L ;否則,按定義3,返回L彡預(yù)取距離的閾值彡R ;第3.6步步驟三結(jié)束。
經(jīng)過上述步驟的操作,在第3. 5步即可得到預(yù)取距離的閾值邊界[1,22]。結(jié)束、退出該方法。
權(quán)利要求
1.ー種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,其基本思想是針對熱函數(shù), 高效選取交織預(yù)取幫助線程中預(yù)取距離參數(shù)的閾值邊界,其特征在于1)開始摘取該應(yīng)用程序的ー個熱函數(shù),進入步驟I;若不存在這樣的熱函數(shù),則轉(zhuǎn)結(jié)束;2)步驟ー預(yù)取距離的閾值左邊界選取;3)步驟ニ預(yù)取距離的閾值右邊界選??;4)步驟三基于特征2)和特征3)來構(gòu)造預(yù)取距離的閾值邊界;5)結(jié)束退出該方法;
2.根據(jù)權(quán)利要求I所述的ー種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,其特 征在于步驟ー中預(yù)取距離的閾值左邊界選取步驟為第(I)步針對該熱函數(shù),構(gòu)造基于交織預(yù)取的幫助線程;第(2)步取當(dāng)前預(yù)取距離的閾值為0,而預(yù)取大小和同步塊大小的參數(shù)閾值分別采用 經(jīng)驗值,讓該基于交織預(yù)取的幫助線程在目標(biāo)多核處理器上執(zhí)行,如果預(yù)取加速比效果大 于1,返回預(yù)取距離的閾值左邊界為0,轉(zhuǎn)第(5)歩;否則,轉(zhuǎn)(3)歩;第(3)步當(dāng)前預(yù)取距離的閾值加1,預(yù)取大小和同步塊大小的參數(shù)閾值分別采用經(jīng)驗 值,讓該基于交織預(yù)取的幫助線程在目標(biāo)多核處理器上執(zhí)行;第(4)步如果預(yù)取加速比效果大于I或當(dāng)前預(yù)取距離的閾值等于該熱函數(shù)循環(huán)總次 數(shù),返回預(yù)取距離的閾值左邊界為當(dāng)前預(yù)取距離閾值,轉(zhuǎn)第(5)步;否則,轉(zhuǎn)第(3)步;第(5)步步驟ー結(jié)束;
3.根據(jù)權(quán)利要求I所述的ー種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,其特 征在于步驟ニ中預(yù)取距離的閾值右邊界選取步驟為第(I)歩如果預(yù)取距離的閾值左邊界為0,返回預(yù)取距離的閾值右邊界為0,并且使 TagR = I,轉(zhuǎn)第(7)步;否則,轉(zhuǎn)第⑵步;第(2)步在目標(biāo)多核處理器上,采用插樁采樣方法,獲取該熱函數(shù)的訪存地址連續(xù)序 列信息,該訪存地址連續(xù)序列信息由熱函數(shù)的循環(huán)體計數(shù)值、訪存地址組成,即記錄Iく循 環(huán)體計數(shù)值I,訪存地址1>、記錄2く循環(huán)體計數(shù)值2,訪存地址2>、……、〈結(jié)束 >,并設(shè)置 當(dāng)前記錄指針為第一條記錄;第(3)步依據(jù)目標(biāo)多核處理器中共享緩存的路數(shù)和組數(shù),設(shè)置基于M路N組的多核共 享緩存模擬結(jié)構(gòu)中的M和N取值,即讓M等于目標(biāo)多核處理器中共享緩存的路數(shù),N等于目 標(biāo)多核處理器中共享緩存的組數(shù);第⑷步如果當(dāng)前記錄指針到達〈結(jié)束〉則TagR = 2,轉(zhuǎn)(7)步;否則,讀入當(dāng)前記 錄到Y(jié),轉(zhuǎn)第(5)步;第(5)歩通過對Y中的訪存地址除N取余數(shù),來計算該條記錄中訪存地址所在的組, 如果該組的M路中仍有空閑路存在,則在該路中放入該地址,當(dāng)前記錄指針加I ;否則,把該 記錄中熱函數(shù)的循環(huán)體計數(shù)值的一半,經(jīng)取整為X,取A I等于取整[(X乘以(熱函數(shù)體一 次循環(huán)訪存次數(shù)-幫助線程一次循環(huán)訪存次數(shù)))/熱函數(shù)體一次循環(huán)訪存次數(shù)+0. 5],再讓 X等于X加上這個整數(shù)修正量A I后,將該X值返回作為預(yù)取距離的閾值右邊界,并且TagR =I,轉(zhuǎn)第⑵步;第(6)步轉(zhuǎn)第(4)步;第(7)步如果TagR等于2則返回(當(dāng)前記錄指針-1)中熱函數(shù)循環(huán)體計數(shù)值作為預(yù) 取距離的閾值右邊界,步驟二結(jié)束;
4.根據(jù)權(quán)利要求1所述的一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,其特 征在于步驟三中構(gòu)造預(yù)取距離的閾值邊界步驟為 第(1)步將預(yù)取距離的閾值左邊界賦值給L ;第(2)步將預(yù)取距離的閾值右邊界賦值給R ;第⑶步如果L =該熱函數(shù)循環(huán)的總次數(shù),轉(zhuǎn)第(6)步;第(4)步如果L小于該熱函數(shù)循環(huán)總次數(shù)且R=該熱函數(shù)循環(huán)總次數(shù),返回預(yù)取 距離的閾值彡R,轉(zhuǎn)第(6)步;第(5)步如果L = R,預(yù)取距離的唯一閾值就是L;否則,返回L彡預(yù)取距離的閾值 (R ;第(6)步步驟三結(jié)束。
全文摘要
本發(fā)明涉及一種支持幫助線程預(yù)取距離參數(shù)的閾值邊界選取方法,屬于多核計算機訪存性能優(yōu)化技術(shù)領(lǐng)域,可用于提升非規(guī)則數(shù)據(jù)密集應(yīng)用的執(zhí)行性能。在共享緩存的多核架構(gòu)基礎(chǔ)上,針對基于交織預(yù)取的幫助線程預(yù)取距離參數(shù),通過引入預(yù)取距離的閾值左邊界選取、預(yù)取距離的閾值右邊界選取、預(yù)取距離的閾值邊界構(gòu)造等技術(shù),來自動選取預(yù)取距離參數(shù)的閾值邊界,使得最佳預(yù)取距離的參數(shù)閾值可在確定的邊界范圍內(nèi)獲取,以提高幫助線程預(yù)取控制的質(zhì)量。本發(fā)明可廣泛應(yīng)用于非規(guī)則密集數(shù)據(jù)訪存性能優(yōu)化、幫助線程預(yù)取控制策略中預(yù)取距離閾值優(yōu)化和共享緩存污染控制等方面。
文檔編號G06F12/08GK102662638SQ201210091528
公開日2012年9月12日 申請日期2012年3月31日 優(yōu)先權(quán)日2012年3月31日
發(fā)明者付引霞, 古志民, 鄭寧漢, 黃艷 申請人:北京理工大學(xué)