李 陽,李建華,2,周義濤,趙玉來,胡海洋
(1 合肥工業(yè)大學(xué) 計算機與信息學(xué)院,合肥 230601;2 合肥工業(yè)大學(xué) 情感計算與先進智能機器安徽省重點實驗室,合肥 230601)
隨著應(yīng)用程序?qū)τ嬎隳芰π枨蟮闹饾u增長,以及半導(dǎo)體技術(shù)的逐步演進,多核處理器的核心數(shù)量一直在增加。異構(gòu)多核架構(gòu)通過在同一平臺上集成多種類型的處理核,使得應(yīng)用程序可以根據(jù)自身需求選擇不同的核心組合來更加高能效地完成任務(wù)。因此,異構(gòu)多核平臺相比于同構(gòu)多核平臺擁有更高的靈活性,并且可以更合理地利用片上資源。目前,異構(gòu)多核平臺已經(jīng)成為了當今嵌入式系統(tǒng)的主流解決方案。充分發(fā)揮異構(gòu)多核系統(tǒng)的優(yōu)勢需要高效的程序映射方法。
程序映射可以分為靜態(tài)映射和動態(tài)映射。其中,動態(tài)程序映射可根據(jù)程序的階段性特征以及不同類型處理核的特點進行映射的動態(tài)調(diào)整,能更充分地發(fā)揮平臺的性能優(yōu)勢。靜態(tài)程序映射是在設(shè)計時進行的,因此可以使用計算密集型搜索方法或精確的系統(tǒng)級映射模擬來尋找最佳或近最佳的映射解決方案。但是,通常情況下卻無法處理(未知)動態(tài)工作負載。一個程序在其生命周期中可執(zhí)行數(shù)百萬、數(shù)十億條、甚至更多的指令,并且其運行時的特征也在不斷地變化。一個高效的映射算法應(yīng)該能夠根據(jù)這些變化的特征預(yù)測程序不同時刻在不同類型的核心上運行可獲得的性能,以便獲得更好的能效比。
近些年來,人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN),是人工智能領(lǐng)域的研究熱點之一。ANN是由多個具有層次和連接關(guān)系的神經(jīng)元相互連接而成,一個完整的人工神經(jīng)網(wǎng)絡(luò)是由輸入層、輸出層和隱藏層三部分組成。其中,輸入層負責(zé)接收和傳遞信息,不進行任何計算。隱藏層位于輸入層和輸出層之間,可以與輸入層和輸出層相連,不同的隱藏層間也可以互相連接,這些連接都被賦予了一個數(shù)值權(quán)重,該權(quán)重與相應(yīng)的輸入?yún)?shù)相乘后,再與神經(jīng)元其他傳入連接的結(jié)果相加。接下去,這些總和被傳遞到神經(jīng)元的激活函數(shù)中,通常選用的是一個線性函數(shù)。如此處理后的神經(jīng)元輸出將繼續(xù)輸入到下一層神經(jīng)元或輸出神經(jīng)元??偟貋碚f,ANN可以通過合理的網(wǎng)絡(luò)結(jié)構(gòu)擬合任意的非線性方程,因此ANN在數(shù)值預(yù)測和分類輸出方面都有著巨大的潛力。
ANN正在被廣泛地應(yīng)用于各種領(lǐng)域,例如情感分析、預(yù)測估計、生物醫(yī)學(xué)等。雖然ANN的應(yīng)用受到越來越多的關(guān)注,但是到目前為止,將其應(yīng)用于多核異構(gòu)平臺映射算法上的研究卻仍處于起步階段。為此,本文提出了一種基于ANN的異構(gòu)多核動態(tài)映射方法AbDM。
AbDM的主要目標是最大化異構(gòu)多核平臺性能,在給定多個應(yīng)用程序和一個具有多種不同類型核心的異構(gòu)平臺上,通過動態(tài)調(diào)整應(yīng)用到核心的映射來實現(xiàn)目標。首先,使用基于ANN的性能預(yù)測器根據(jù)一段時間內(nèi)的執(zhí)行參數(shù),預(yù)測每個應(yīng)用下一階段在不同類型核心上的性能。隨后,重映射檢測算法判斷是否需要執(zhí)行重映射。最后,若需要重映射,則由線程到核心類型匹配算法利用獲得的性能值,確定應(yīng)用到核心的映射。
本文的主要貢獻如下:
(1)提出了一種線程到核心類型的匹配算法,在充分發(fā)揮平臺性能優(yōu)勢的同時節(jié)省線程到核心類型綁定的時間。
(2)提出了一種重映射檢測算法,當線程執(zhí)行階段發(fā)生變化時觸發(fā)重映射過程,從而避免過于頻繁的重映射,減少重新映射的時間和成本。
(3)提出了一種基于神經(jīng)網(wǎng)絡(luò)的性能預(yù)測器,將運行參數(shù)作為模型輸入,預(yù)測性能。
實驗結(jié)果證實本文提出的AbDM和輪詢調(diào)度算法(RRS)相比平均每個時鐘周期執(zhí)行的指令條數(shù)()提高了63%左右。
本文其余部分組織如下:第一節(jié)介紹了相關(guān)研究工作;第二節(jié)闡述了本文提出的AbDM的具體實現(xiàn);第三節(jié)對本文方法進行了實驗驗證和分析;第四節(jié)則總結(jié)了本文工作并展望了未來的研究方向。
異構(gòu)多核平臺上的應(yīng)用映射在開發(fā)計算資源的多樣性方面發(fā)揮著關(guān)鍵作用,對此已經(jīng)有數(shù)十年的研究積累。一般情況下對于異構(gòu)多核映射問題大都采用一個線程映射到一個處理核心的模式。當前針對異構(gòu)多核架構(gòu)映射問題的研究可以分為3類:離線、在線和混合(離線分析后在線使用)方法。為了找到近似最優(yōu)的映射解決方案,現(xiàn)有研究大多采用基于搜索的方法,結(jié)合一些分析來評估考慮的映射與設(shè)計需求之間的關(guān)系。
對于離線方法,在離線狀態(tài)下充分探索這些不同場景的資源分配,從而為每個場景指定一個最優(yōu)或接近最優(yōu)的資源分配方案。例如,文獻[7]提出了一種靜態(tài)調(diào)度方法,這是一種基于種群的新算法,可以在運行時動態(tài)切換探索性和開發(fā)性搜索模式。靜態(tài)調(diào)度器可以執(zhí)行任務(wù)映射、調(diào)度和電壓縮放。在文獻[8]中,提出了一種算法來優(yōu)化異構(gòu)上應(yīng)用程序的整體運行時間多核處理器。該算法將模擬退火和剪枝策略的組合,用于搜索應(yīng)用程序和平臺之間的最佳映射。上述離線方法通常使用離線分析來確定映射方案,雖然簡單、但會產(chǎn)生額外的分析開銷,并且沒有充分考慮在線程序在執(zhí)行過程中的動態(tài)變化。
與離線方法相比,在線資源管理缺少離線預(yù)處理階段。一般每個應(yīng)用程序占用的資源都是在運行時動態(tài)調(diào)整的。這種方法的資源分配計劃是在運行時計算出來的,方法的目的則是為了在短時間內(nèi)得到一個比較好的資源分配計劃。例如,文獻[9]中提出的方法首先根據(jù)性能要求和資源可用性選擇線程到核心的映射。然后,通過調(diào)整電壓頻率()水平來應(yīng)用在線自適應(yīng),以在不犧牲應(yīng)用性能的情況下實現(xiàn)能量優(yōu)化。研究可知,在文獻[10]中已有學(xué)者提出了一種基于機器學(xué)習(xí)的方法來增加異構(gòu)多核平臺上的平均故障工作量,最終結(jié)果表明該方法的平均工作量增幅可以高達19.4%。在文獻[11]中,還提出了一種不需要任何自身信息就能夠在線對OpenCL應(yīng)用進行功耗優(yōu)化的一種自適應(yīng)方法。
混合資源管理方法使用離線分析結(jié)果來做出運行時資源管理決策。第一步是在設(shè)計時進行全面的離線分析,并將分析結(jié)果集成到運行時控制器中,實現(xiàn)運行時的資源分配。例如文獻[12]提出的方法,首先使用緩存分區(qū)技術(shù)來限制共享緩存的不可預(yù)測性,其次探討核心頻率的影響和緩存分區(qū)(CPs)對任務(wù)執(zhí)行周期的影響及其對執(zhí)行時間和能耗的影響。此外,文獻[13]又提出了一種自適應(yīng)映射方法。首先,使用性能監(jiān)控計數(shù)器進行在線數(shù)據(jù)收集,然后使用離線訓(xùn)練性能預(yù)測模型來應(yīng)用不同類型的數(shù)據(jù)。預(yù)測應(yīng)用程序的性能,最后評估和選擇資源組合(處理核心的數(shù)量和類型)。仍要提到的是,該方法還設(shè)置了一個資源管理器來監(jiān)控應(yīng)用程序性能、工作量,以及應(yīng)用程序完成和新應(yīng)用程序的到達情況,再以此來調(diào)整映射。
離線方法是設(shè)計時進行的,能夠找到最優(yōu)或者接近最優(yōu)的映射方案,但是通常卻無法處理動態(tài)工作負載問題。而在線方法能夠解決動態(tài)工作負載問題,但是由于運行時計算能力有限,可能最終獲得的映射方案不是最優(yōu)方案或者接近最優(yōu)的映射方案?;旌腺Y源管理方法結(jié)合了離線和在線的優(yōu)點,可以在離線的時候?qū)Σ煌膽?yīng)用場景進行充分的分析,也可以在運行時根據(jù)不同的執(zhí)行場景動態(tài)地調(diào)整映射方案。所以目前混合資源管理方法獲得了十分廣泛的應(yīng)用。
綜上,本文采用混合資源分配方案來實現(xiàn)資源分配,可以充分考慮不同類型線程的運行時特性和不同內(nèi)核的處理能力,從而最大限度地發(fā)揮平臺的處理能力。
本節(jié)主要介紹文中所提出的AbDM方案,圖1給出了其總體框架。給定一組線程和一個異構(gòu)多核平臺,映射器首先為每個線程隨機分配一個空閑核心。同時,收集必要的運行時信息,用來進行性能預(yù)測。然后,重映射檢測器根據(jù)預(yù)測所得的性能判斷是否需要執(zhí)行重映射。在需要執(zhí)行重映射的情況下,由線程到核心類型匹配算法,將線程和核心進行匹配,從而實現(xiàn)IPC優(yōu)化。
圖1 AbDM總體框架Fig.1 Overview of the proposed approach,AbDM
在本文中,通過個線程(,,,t)在的多核平臺上執(zhí)行,表示為{,…,C,…,C},其中C表示核心位于2網(wǎng)格的第行和第列。每個核C屬于種核類型的一種、表示為{,,…,c},并且可以獨立地執(zhí)行DVFS(Dynamic Voltage and Frequency Scaling)。本文所提出的AbDM方案使用每個時鐘周期所執(zhí)行的指令數(shù)、即指令數(shù)/周期(Instructions Per Cycle,)作為性能指標。
由于程序運行在其生命周期中經(jīng)常會發(fā)生一些階段性的變化,并且不同的階段有著不同的運行時的特征。所以,需要周期性地收集程序運行過程中相關(guān)特征數(shù)據(jù)。
AbDM需要周期性地收集必要的運行時參數(shù)數(shù)據(jù),以進行動態(tài)的重映射決策。AbDM收集的參數(shù)如下:
(1)用于監(jiān)視在特定內(nèi)核上運行線程的性能的值。
(2)緩存缺失,包括:一級數(shù)據(jù)緩存命中缺失率、二級緩存命中缺失率、三級緩存命中缺失率,以及讀內(nèi)存指令、寫內(nèi)存指令、浮點加法指令、浮點減法指令、浮點乘法指令和浮點除法指令。
為了將線程分配給異構(gòu)多核系統(tǒng)中的特定核以最大化性能,必須了解每個線程在各種類型的核上的執(zhí)行情況。實現(xiàn)這一目標的一種方法是在所有類型的內(nèi)核上在線執(zhí)行線程,并相應(yīng)地采取最佳分配。這顯然并不適用于在線映射方法,因為需要用到復(fù)雜的運行時遷移和性能度量。另一種方法是通過只在一種核心類型上運行(參見文獻[7])來獲得不同類型核心的線程性能。這種方法需要在設(shè)計時或運行時構(gòu)建性能預(yù)測模型。由于運行時的學(xué)習(xí)模型可能會使動態(tài)映射方法不可擴展,并且還將引入太多的開銷。類似于文獻[5,13]中的做法,本文選擇在設(shè)計時使用機器學(xué)習(xí)技術(shù)為所有類型的核構(gòu)建預(yù)測模型。
2.3.1 參數(shù)的選取
應(yīng)用在某類核心上執(zhí)行的不僅取決于當前執(zhí)行的類型,還和硬件資源相關(guān)。因此,需要將一些應(yīng)用統(tǒng)計信息及執(zhí)行參數(shù)作為預(yù)測器的輸入?yún)?shù)。根據(jù)文獻[16-17]中的方案所選擇的參數(shù)和屬性,本文選取了9個與相關(guān)的參數(shù)來構(gòu)建ANN學(xué)習(xí)模型。參數(shù)分別是緩存丟失率(一級數(shù)據(jù)緩存命中缺失率、二級緩存命中缺失率、三級緩存命中缺失率),以及讀內(nèi)存指令、寫內(nèi)存指令、浮點加法指令、浮點減法指令、浮點乘法指令和浮點除法指令。
2.3.2 參數(shù)的預(yù)處理
由于模擬直接收集的輸入?yún)?shù)的統(tǒng)計量可能具有不同的尺度(例如,緩存失效率低于1,而指令數(shù)可達數(shù)千萬),因此需要對輸入?yún)?shù)做預(yù)處理,以確保輸入?yún)?shù)具有相同的尺度。另一方面,為了使用統(tǒng)計信息作為不同核心類型的性能預(yù)測的輸入,統(tǒng)計信息應(yīng)該盡可能通用。將統(tǒng)計數(shù)據(jù)規(guī)范化為比率可以確保神經(jīng)網(wǎng)絡(luò)輸入的一致性,當使用從小核心收集的數(shù)據(jù)進行訓(xùn)練的時候,但卻可能是使用從大核心收集的輸入統(tǒng)計數(shù)據(jù)進行預(yù)測的。因此,本文將不同類型的指令數(shù)轉(zhuǎn)換為指令比。
2.3.3 模型結(jié)構(gòu)
在本文的ANN網(wǎng)絡(luò)的輸入層是由9個神經(jīng)元組成,用來接收輸入?yún)?shù)。一般來說,隨著神經(jīng)網(wǎng)絡(luò)的隱藏層和隱藏層的節(jié)點數(shù)的增加可以降低網(wǎng)絡(luò)誤差、提高精度,但也會使網(wǎng)絡(luò)復(fù)雜化,從而增加了網(wǎng)絡(luò)的訓(xùn)練時間和出現(xiàn)“過擬合”的傾向。通過仿真實驗,最終確定了性能預(yù)測器所使用的神經(jīng)網(wǎng)絡(luò)模型隱藏層數(shù)為27,并且使用作為激活函數(shù)。在損失函數(shù)和學(xué)習(xí)率方面,本文選用了最常用的均方誤差(Mean Squared Error,)損失函數(shù)來對性能預(yù)測器進行訓(xùn)練,同時通過觀察損失函數(shù)和學(xué)習(xí)率的關(guān)系,最終將學(xué)習(xí)率確定為0.001。
一個程序在其生命周期中可執(zhí)行數(shù)百萬甚至數(shù)十億條指令,運行中的行為通常經(jīng)歷階段變化。在不同的階段,可以觀察到不同的執(zhí)行特征。因此,不能在每個信息收集階段進行重新映射,而是只會在檢測到某些階段變化時進行重新映射,用以降低重新映射的成本。
在論文中定義一個變化率,當變化超過一定范圍時就會觸發(fā)重映射,從而調(diào)用后面的線程到核心類型匹配算法,反之本階段將不進行重映射。Δ定義公式如下,
其中,()是階段的,(1)是1階段的預(yù)測。
本文的目的是獲得線程到核心的最佳映射,從而充分發(fā)揮異構(gòu)多核平臺的性能優(yōu)勢。本文所提出的線程到核心類型的匹配算法,以性能預(yù)測器所預(yù)測的下一階段的各個線程到各種類型核心的值為基礎(chǔ),來確定線程擬將映射的具體核心類型。從而獲得線程到核心的最優(yōu)匹配,使得異構(gòu)多核平臺性能得以充分發(fā)揮,總的值達到了最大化。
本文中定義線程在核心類型上的值為(),并且類型核心的數(shù)量為。線程與核心類型的綁定表示為。是一個一維向量,其中第個位置的數(shù)表示線程映射到類型為的核心上。
線程到核心類型的匹配算法可分為4步:
初始化中的所有線程到核心類型的綁定,使得初始綁定為空(這里設(shè)為)。
對于所有類型的核心,根據(jù)性能預(yù)測器預(yù)測所得的值,將對應(yīng)的線程進行排序。例如對于核心類型,預(yù)測所有線程下一階段在此類核心上的值。然后根據(jù)預(yù)測映射所得的值,為對應(yīng)的線程進行排序(值越大的線程越靠前),得到序列(_(…,t,…),_,…,_c,…)。
根據(jù)每種核心類型的處理能力,對核心類型進行排序,得到_(…c…)。
為了最大限度地提高系統(tǒng)性能,需要優(yōu)先選擇使用更強大的核心。因此,本算法的核心思想是根據(jù)線程處理能力的順序(由_表示)將線程分配給內(nèi)核。首先依據(jù)序列_中核心的順序,依次查看該核心對應(yīng)的序列中的前|c|個線程的分配情況。若當前線程未被分配,將線程分配到當前核心。反之,若已經(jīng)分配,則將線程映射到所得較大的核心上。映射后獲得的值較小的核心對應(yīng)的序列上空出的核心位置,由對應(yīng)的序列第|c|開始的第一個未被分配的線程補上。研發(fā)得到偽代碼詳見如下。
為了評估AbDM的性能,本文基于Sniper模擬器搭建了一個異構(gòu)多核平臺,用來模擬不同應(yīng)用在實際運行中的行為。并且,將AbDM與常見的輪詢調(diào)度算法(Round Robin Scheduler,RRS)進行對比,用來分析AbDM方法的優(yōu)勢。
輪詢調(diào)度主要是通過交換在大核上執(zhí)行的線程和在小內(nèi)核上執(zhí)行的線程進而實現(xiàn)對性能的優(yōu)化。之所以選擇輪詢調(diào)度進行對比,是因為輪詢調(diào)度算法可以在Linux調(diào)度程序和公平感知調(diào)度程序上為單線程和多線程工作負載提供性能改進。
實驗使用模擬器Sniper搭建了一個4行4列的異構(gòu)多核平臺。該平臺由2種處理能力不同的核心組成,這2種核心稱為大核和小核,大核與小核各占兩行,具體如圖2所示。并且本文中的大核和小核的指令集架構(gòu)均基于Intel Nehalem x86架構(gòu),且處理核的主頻均為2.66 GHz,發(fā)射寬度均為4,2種類型的處理核具有相同的緩存架構(gòu)。其中,Cache為256 KB,Cache為512 KB,共享的Cache大小設(shè)置為8 MB。大核擁有128的指令窗口大小和長度為48的讀取隊列,而小核的指令窗口大小為16,讀取隊列長度為6。頻率調(diào)節(jié)的步長為0.2 GHz,對于每個頻率,電壓的設(shè)置參照文獻[22]。
圖2 Sniper模擬器布置的16個核心的系統(tǒng)平面圖Fig.2 Floorplan of a 16-core system simulated in Sniper
從基準測試SPLASH-2中選擇了10種不同的應(yīng)用,并且將這些應(yīng)用組成不同的分組,將分組內(nèi)的所有程序在搭建的模擬平臺上并發(fā)執(zhí)行,用來模擬現(xiàn)實世界的程序執(zhí)行情況。具體的程序組合見表1。
表1 應(yīng)用程序組合Tab.1 Combination of programs
為了更好地評估本文提出的方法,實驗分別對性能預(yù)測器、應(yīng)用到核心的匹配算法以及AbDM整體進行評估。從局部和整體兩個方面對本文提出的算法進行仿真測試。
3.2.1 性能預(yù)測器的評估
針對2種類型核的16核平臺,實驗中搭建了2種人工神經(jīng)網(wǎng)絡(luò)模型。一種是根據(jù)小核的線程執(zhí)行信息來預(yù)測大核的,另一種是根據(jù)大核的線程執(zhí)行信息來預(yù)測小核的。根據(jù)小核的線程執(zhí)行信息來預(yù)測大核的的模型稱為,根據(jù)大核的線程執(zhí)行信息來預(yù)測小核的的模型稱為。2種神經(jīng)網(wǎng)絡(luò)模型都是使用上述的不同應(yīng)用組合所收集的數(shù)據(jù)集訓(xùn)練得到的,數(shù)據(jù)集的收集周期為30 ms,即每隔30 ms收集一次用以訓(xùn)練性能預(yù)測器的參數(shù)的數(shù)值。
為了更好地評估AbDM的性能,實驗用10個splash-2基準應(yīng)用作為和模型評估的測試集。圖3給出了和預(yù)測不同應(yīng)用的誤差。從圖3中可以看出,2個預(yù)測模型在應(yīng)用barnes上均取得最小誤差,同時在應(yīng)用volread上的效果也最不理想,但是即使在最差情況也僅為031,并且和的平均僅為0.15和0.17。由實驗數(shù)據(jù)還可以看出,總體上,大核性能預(yù)測器和小核性能預(yù)測器均具有較好的預(yù)測效果。
圖3 預(yù)測器誤差Fig.3 MSE of ANN predictor
3.2.2 線程到核心類型匹配算法的評估
本部分通過將線程到核心類型匹配算法與窮舉算法進行比較,來評估算法的性能。具體的比較有2方面。一方面是線程到核心類型匹配所需的時間,另一方面是匹配后所獲得的值。
通過設(shè)置不同的線程數(shù)、核心類型數(shù)以及每種核心的數(shù)量,來對比本文提出的線程到核心類型匹配算法與窮舉法的性能。例如表2中,組合1表示的是4個線程運行于擁有2種不同類型核心的異構(gòu)平臺上,并且2種類型的核心數(shù)量都是4個。對于窮舉算法來說,算法考慮了所有線程到核心類型匹配的可能性,故毋庸置疑可知,窮舉算法獲得的值是最大值。接下去,由表3的實驗結(jié)果可知,隨著測試配置越來越復(fù)雜,窮舉法所耗費的時間增長速度遠遠高于本文提出的方法,并且在配置6的時候,窮舉法沒有時間結(jié)果,是由于運行時間超過了0.5 h,為此停止了實驗。在總的值方面,本文提出的方法可以接近于最優(yōu)值。能夠非常有效地獲得接近最優(yōu)的解。
表2 異構(gòu)多核配置Tab.2 Heterogeneous multi-core configuration
表3 本文提出的方法與遍歷法的運行時間Tab.3 Running time of the method proposed in this article vs.the traversal method ms
圖4 AbDM與遍歷法所獲得的IPC對比Fig.4 Comparison of IPC obtained by AbDM vs.IPC obtained by the traversal method
3.2.3 對基于神經(jīng)網(wǎng)絡(luò)的異構(gòu)多核動態(tài)映射方法的評估
為了評估AbDM與現(xiàn)有技術(shù)相比的優(yōu)劣,實驗中使用RR作為基準方法,并對8個應(yīng)用程序組合進行實驗,以觀察本文提出的方法與RRS比較所實現(xiàn)的加速比。
AbDM和輪詢調(diào)度的加速比如圖5所示。圖5中,橫坐標表示不同的程序組合所對應(yīng)的編號,縱坐標表示本文提出的方法與RR比較所獲得的加速比。從圖5中可以看到,AbDM在所有的8種實驗配置下效果均優(yōu)于輪詢調(diào)度算法,并且平均吞吐量提高了63%。這是因為AbDM考慮到了程序生命周期中的階段性變化,為不同階段的程序選擇適合當前階段的核心類型,從而最大限度地發(fā)揮異構(gòu)多核平臺的性能優(yōu)勢。另一方面,AbDM執(zhí)行更少的重映射計算,每隔一個特定的周期進行一次重映射檢測,當且僅當滿足重映射條件是觸發(fā)重映射。
圖5 AbDM和輪詢調(diào)度的加速比Fig.5 Acceleration ratio of the proposed method and RRS
本文提出了一種基于神經(jīng)網(wǎng)絡(luò)的異構(gòu)多核動態(tài)映射算法。該方法首先根據(jù)執(zhí)行階段不同線程的特點,通過人工神經(jīng)網(wǎng)絡(luò)預(yù)測不同類型核上各線程下一階段的值。然后,重映射算法確定是否需要重映射,并在必要時執(zhí)行重映射算法。反之,若無需重映射,則保持當前映射不變。仿真實驗結(jié)果表明本文提出的方法相對于傳統(tǒng)的輪詢算法優(yōu)勢明顯,平均吞吐量提高了63%。
此外隨著處理核數(shù)量的增加,處理器中晶體管密度同步提高,現(xiàn)代多核處理器具有更高的功率密度,進而導(dǎo)致芯片溫度也有同步升高,最終會對系統(tǒng)性能造成一定的負面影響。所以在未來的工作中,會考慮引入一個新的參考因素?zé)岚踩?。在保證熱安全的前提下,最大化異構(gòu)多核平臺的性能。