• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于強(qiáng)化學(xué)習(xí)的溫度感知多核任務(wù)調(diào)度?

      2021-11-09 02:45:32楊世貴王媛媛劉韋辰趙明雄
      軟件學(xué)報(bào) 2021年8期
      關(guān)鍵詞:內(nèi)核調(diào)度狀態(tài)

      楊世貴 ,王媛媛,2,5 ,劉韋辰 ,姜 徐 ,趙明雄 ,方 卉 ,楊 宇,劉 迪,

      1(云南大學(xué) 軟件學(xué)院,云南 昆明 650504)

      2(中國科學(xué)院 信息工程研究所,北京 100093)

      3(School of Computer Science and Engineering,Nanyang Technological University,Singapore)

      4(東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,遼寧 沈陽 110169)

      5(中國科學(xué)院大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100049)

      隨著計(jì)算機(jī)在日常生活中的普及,人們對(duì)其高性能和便攜性的需求日漸增強(qiáng),由此推動(dòng)著現(xiàn)代計(jì)算機(jī)不斷向多內(nèi)核、高集成度的方向發(fā)展.芯片中晶體管尺寸縮小(最新晶體管達(dá)到nm 級(jí)別),因此在同一尺寸內(nèi)可以放置更多的處理器.高集成度讓多核系統(tǒng)的處理器比以往具有更高的功率密度,可以帶來較高的性能,但也使系統(tǒng)的運(yùn)行溫度大幅度提高且難以耗散,從而導(dǎo)致了芯片的老化不均勻,加速芯片磨損和故障,降低系統(tǒng)的可靠性以及性能.通常采用兩種方法來幫助多處理器系統(tǒng)有效的管理系統(tǒng)溫度.

      1)物理方式:通過加散熱效果更好的散熱設(shè)備來降低系統(tǒng)溫度,然而散熱效果更好的散熱設(shè)備不可避免地提高系統(tǒng)的整體制造成本以及系統(tǒng)的能耗,從而使得芯片成本效益降低;

      2)軟件方式:通過設(shè)計(jì)一個(gè)溫度感知的程序調(diào)度算法來優(yōu)化系統(tǒng)溫度,即:任務(wù)進(jìn)入系統(tǒng)時(shí),調(diào)度算法為程序選擇合適的處理器來運(yùn)行程序,從而達(dá)到控制系統(tǒng)溫度的目的.

      因靈活性高且不需要任何外部設(shè)備的輔助,基于軟件方式的溫度控制方法一直是多處理器研究領(lǐng)域的一個(gè)熱門研究課題.

      早期的研究多采用基于線性規(guī)劃[1,2]、動(dòng)態(tài)規(guī)劃[3]或者啟發(fā)式算法[4]設(shè)計(jì)溫度感知的調(diào)度算法,然而隨著計(jì)算機(jī)內(nèi)核數(shù)量的快速增長,以及各種復(fù)雜計(jì)算任務(wù)的出現(xiàn),傳統(tǒng)的溫度感知調(diào)度算法不能夠有效地適應(yīng)不同的復(fù)雜計(jì)算環(huán)境[5].與此同時(shí),隨著機(jī)器學(xué)習(xí)[6]的興起,機(jī)器學(xué)習(xí)技術(shù)在不同的領(lǐng)域展現(xiàn)出了很強(qiáng)的自我學(xué)習(xí)能力,因此有很多工作開始研究基于機(jī)器學(xué)習(xí)的溫度感知調(diào)度算法[7].使得溫度感知調(diào)度算法研究工作朝著智能化的方向發(fā)展.首先是基于監(jiān)督學(xué)習(xí)的方法:線性回歸[8,9]和分類算法[10],雖然這些方法在特定的情況下取得了很好的效果,但是模型的準(zhǔn)確率依賴高質(zhì)量及多樣化的標(biāo)簽數(shù)據(jù),且訓(xùn)練模型泛化性能不佳,即,針對(duì)一個(gè)硬件訓(xùn)練的方法很難直接使用到新的硬件平臺(tái).另一方面,強(qiáng)化學(xué)習(xí)的出現(xiàn),在一定程度上克服了監(jiān)督學(xué)習(xí)存在的數(shù)據(jù)依賴問題以及模型泛化性弱的問題.強(qiáng)化學(xué)習(xí)不需要大量的訓(xùn)練數(shù)據(jù),而通過和運(yùn)行環(huán)境的動(dòng)態(tài)交互來學(xué)習(xí)一個(gè)策略,在面對(duì)完全陌生的情況時(shí),強(qiáng)化學(xué)習(xí)可以根據(jù)自己學(xué)習(xí)的策略來進(jìn)行最優(yōu)的決策,比監(jiān)督學(xué)習(xí)的方法靈活性更強(qiáng).出于以上原因,強(qiáng)化學(xué)習(xí)被廣泛應(yīng)用于各種復(fù)雜的動(dòng)態(tài)決策的場景,并且在各個(gè)領(lǐng)域取得很好的效果,例如,DeepMind 在2015 年提出的強(qiáng)化學(xué)習(xí)玩游戲完勝人類[11],DeepMind 提出的基于強(qiáng)化學(xué)習(xí)的AlphaZero擊敗了頂級(jí)的職業(yè)圍棋選手[12],圍棋在之前一直被認(rèn)為是一個(gè)復(fù)雜度很高、機(jī)器很難擊敗人類的項(xiàng)目.計(jì)算機(jī)系統(tǒng)狀態(tài)有較強(qiáng)的動(dòng)態(tài)性以及程序調(diào)度本身是一個(gè)復(fù)雜的決策問題,適合采用強(qiáng)化學(xué)習(xí)來解決.一些工作已經(jīng)研究了基于強(qiáng)化學(xué)習(xí)的溫度感知任務(wù)調(diào)度算法,但是目前存在的基于強(qiáng)化學(xué)習(xí)的系統(tǒng)溫度優(yōu)化方法中均存在一些問題,如環(huán)境建模不合理、獎(jiǎng)勵(lì)設(shè)置不合理,因此未能夠使基于強(qiáng)化學(xué)習(xí)的溫度感知調(diào)度方法達(dá)到最好性能,此部分將在后文中詳細(xì)討論.

      針對(duì)現(xiàn)有方法中存在的問題,針對(duì)多處理器系統(tǒng),我們提出了一種全新的基于強(qiáng)化學(xué)習(xí)的溫度感知任務(wù)調(diào)度算法來進(jìn)行系統(tǒng)溫度的管理和控制,根據(jù)其英文名(reinforcement learning temperature-aware task allocation)將其命名為ReLeTA.本文具體的研究貢獻(xiàn)如下:

      1)針對(duì)現(xiàn)有方法存在的缺點(diǎn),本文提出了一種新的系統(tǒng)狀態(tài)建模方法,新狀態(tài)可以更準(zhǔn)確地反映系統(tǒng)運(yùn)行狀況與溫度之間的關(guān)系;同時(shí),提出了一種新的獎(jiǎng)勵(lì)函數(shù)用于協(xié)助優(yōu)化強(qiáng)化學(xué)習(xí)算法;對(duì)比了現(xiàn)有的兩種基于強(qiáng)化學(xué)習(xí)的研究方法.實(shí)驗(yàn)證明,我們的建模方式更加有效.基于新的狀態(tài)模型和獎(jiǎng)勵(lì)函數(shù),本文提出了一種新的基于強(qiáng)化學(xué)習(xí)的溫度感知多核任務(wù)分配算法——ReLeTA.

      2)我們在不同的真實(shí)系統(tǒng)上對(duì)所設(shè)計(jì)的算法進(jìn)行了評(píng)估,對(duì)比了現(xiàn)有的兩個(gè)基于強(qiáng)化學(xué)習(xí)的溫度感知任務(wù)調(diào)度算法和Linux 默認(rèn)的調(diào)度算法,本文所提新方法能夠在基本不損失性能的基礎(chǔ)上降低系統(tǒng)溫度:最好情況下降低平均峰值溫度6°C,降低平均溫度3°C.

      本文第1 節(jié)討論溫度感知調(diào)度方面的相關(guān)工作.第2 節(jié)介紹了強(qiáng)化學(xué)習(xí)相關(guān)的理論知識(shí)方便理解本文的貢獻(xiàn).第3 節(jié)詳細(xì)討論現(xiàn)有方法的缺陷,以此說明新方法的必要性.第4 節(jié)詳細(xì)介紹本文算法的模型和參數(shù)設(shè)置.第5 節(jié)詳細(xì)展示了在真實(shí)平臺(tái)的實(shí)驗(yàn)結(jié)果.第6 節(jié)對(duì)本文進(jìn)行總結(jié)并討論了未來工作的方向.

      1 相關(guān)工作

      目前,溫度管理技術(shù)在學(xué)術(shù)界和工業(yè)界都受到了極大的關(guān)注,已有很多研究致力于控制芯片的溫度[7].早期的研究多采用基于線性規(guī)劃[1,2]、動(dòng)態(tài)規(guī)劃[3]或者啟發(fā)式算法[4]設(shè)計(jì)溫度感知的任務(wù)調(diào)度算法,然而隨著計(jì)算機(jī)內(nèi)核數(shù)量的快速增長,以及各種復(fù)雜計(jì)算任務(wù)的出現(xiàn),傳統(tǒng)的溫度感知調(diào)度算法不能夠有效地適應(yīng)不同的復(fù)雜計(jì)算環(huán)境.

      隨著機(jī)器學(xué)習(xí)的發(fā)展,各類機(jī)器學(xué)習(xí)算法被廣泛地應(yīng)用在各個(gè)領(lǐng)域內(nèi),解決著大量過去難以處理的問題,展現(xiàn)著巨大的應(yīng)用潛力.因此,更多的研究將ML(machine learning[6])利用到多核系統(tǒng)溫度管理領(lǐng)域,提出了多種系統(tǒng)溫度優(yōu)化算法.本文總結(jié)了目前主流的溫度優(yōu)化方法,分別從靜態(tài)和動(dòng)態(tài)兩方面介紹.

      ?靜態(tài)方法通常利用監(jiān)督學(xué)習(xí),通過訓(xùn)練大量的數(shù)據(jù)得到溫度、性能預(yù)測模型,在設(shè)計(jì)系統(tǒng)的過程中訓(xùn)練好一個(gè)固定的算法模型,并將其應(yīng)用于任務(wù)調(diào)度中[13].文獻(xiàn)[14]基于自適應(yīng)學(xué)習(xí)樹算法來預(yù)測空閑期開始時(shí)間并選擇性地將其調(diào)至低功耗睡眠狀態(tài),從而達(dá)到降低系統(tǒng)功耗、降低系統(tǒng)溫度的目的.另外,還有一種使用貝葉斯分類技術(shù)的電源管理框架[15],利用監(jiān)督學(xué)習(xí)來預(yù)測處理器的性能狀態(tài),查找并執(zhí)行最優(yōu)的電源管理操作,從而達(dá)到降低系統(tǒng)溫度的目的.文獻(xiàn)[9]提出一種基于線性回歸模型的方法,通過采集任務(wù)運(yùn)行時(shí)性能計(jì)數(shù)器的值和傳感器的值來訓(xùn)練預(yù)測模型進(jìn)行任務(wù)映射.以上使用監(jiān)督學(xué)習(xí)的方法需要大量的訓(xùn)練數(shù)據(jù),然而高質(zhì)量且多樣化的訓(xùn)練數(shù)據(jù)集往往難以獲取,導(dǎo)致了這些方法對(duì)于數(shù)據(jù)集外其他任務(wù)的分配效果未必能夠達(dá)到預(yù)期目標(biāo);同時(shí),基于一個(gè)硬件訓(xùn)練的模型很難移植到其他不同的硬件上.

      ?動(dòng)態(tài)方法區(qū)別于靜態(tài)方法,其能夠在運(yùn)行過程中持續(xù)地學(xué)習(xí)改進(jìn)自身算法.在溫度感知調(diào)度中,動(dòng)態(tài)方法能夠在運(yùn)行過程中優(yōu)化溫度,不會(huì)受到訓(xùn)練數(shù)據(jù)和系統(tǒng)硬件的局限.目前已有的動(dòng)態(tài)算法,如借用松弛技術(shù)動(dòng)態(tài)管理峰值溫度[16]、基于神經(jīng)網(wǎng)絡(luò)的自適應(yīng)技術(shù)來降低溫度[17]、基于強(qiáng)化學(xué)習(xí)的自適應(yīng)技術(shù)通過迭代溫度變化來控制任務(wù)映射以優(yōu)化核心溫度等.其中,強(qiáng)化學(xué)習(xí)能夠更靈活地處理動(dòng)態(tài)決策問題,在性能和復(fù)雜性方面達(dá)到一個(gè)均衡.因此,利用強(qiáng)化學(xué)習(xí)進(jìn)行芯片溫度管理的研究工作逐漸增多.

      一種啟發(fā)式的基于強(qiáng)化學(xué)習(xí)的溫度管理方法在文獻(xiàn)[18]中被提出,該方法通過設(shè)置溫度閾值和功耗閾值來限制狀態(tài)空間和動(dòng)作空間.該方法每個(gè)內(nèi)核有一個(gè)屬于自己的Q 表,能有效提高算法的收斂速度,但是隨著內(nèi)核的增多,存儲(chǔ)Q 表會(huì)帶來巨大的空間開銷.此外,如何有效保證每個(gè)內(nèi)核的Q 表都能收斂是最大的問題.文獻(xiàn)[19]提出一種根據(jù)當(dāng)前芯片溫度狀態(tài)來預(yù)測并執(zhí)行能最大限度降低未來最高溫度的任務(wù)分配策略算法,但是該方法算法模型的設(shè)置不合理,對(duì)于獎(jiǎng)勵(lì)和狀態(tài)模型的設(shè)置過于簡單,沒有全面考慮到影響芯片溫度變化的多個(gè)因素,造成了算法的效果和性能不能達(dá)到最佳,且該方法只是在仿真平臺(tái)運(yùn)行和測試.文獻(xiàn)[20]設(shè)計(jì)了一個(gè)基于強(qiáng)化學(xué)習(xí)的溫度感知調(diào)度算法,同時(shí)加入了系統(tǒng)動(dòng)態(tài)調(diào)頻方法,該方法基于溫度循環(huán),并將系統(tǒng)的延遲作為獎(jiǎng)勵(lì)的一個(gè)部分.雖然該方法同時(shí)考慮了溫度和性能,但因其獎(jiǎng)勵(lì)函數(shù)設(shè)置不合理導(dǎo)致其很難實(shí)現(xiàn)溫度和性能的最佳權(quán)衡.后面我們在真實(shí)的系統(tǒng)上對(duì)比了這兩種方法.

      溫度感知的調(diào)度方法有些時(shí)候也可以和系統(tǒng)能耗控制方法結(jié)合在一起,首先是動(dòng)態(tài)電源管理(dynamic power management,簡稱DPM)[21]技術(shù)根據(jù)工作設(shè)備的負(fù)載情況動(dòng)態(tài)的選擇各個(gè)內(nèi)核的電源狀態(tài),切換各個(gè)處理器的工作模式(活動(dòng)模式或低功耗模式等).另一種是動(dòng)態(tài)電壓頻率調(diào)整(DVFS)[22]技術(shù),利用了芯片的特性,可以根據(jù)內(nèi)核的實(shí)際功耗來調(diào)節(jié)其工作電壓或頻率.這兩項(xiàng)技術(shù)的本質(zhì)都是降低系統(tǒng)功耗,達(dá)到有效控制芯片整體溫度的目的.在后面的工作中,我們會(huì)考慮將DPM 和DVFS 技術(shù)與ReLeTA 相結(jié)合,探索更優(yōu)的任務(wù)分配算法.

      2 基礎(chǔ)知識(shí)

      2.1 強(qiáng)化學(xué)習(xí)概述

      強(qiáng)化學(xué)習(xí)屬于機(jī)器學(xué)習(xí)范疇內(nèi)的一個(gè)重要分支,其本質(zhì)是通過與環(huán)境連續(xù)的交互來尋找一個(gè)最優(yōu)的決策.強(qiáng)化學(xué)習(xí)中包含有智能體(agent)、環(huán)境(environment)、狀態(tài)(state)、動(dòng)作(action)和獎(jiǎng)勵(lì)(reward).強(qiáng)化學(xué)習(xí)模仿了生物通過與外界交互來在環(huán)境中進(jìn)行決策的行為(如圖1 所示):智能體通過執(zhí)行動(dòng)作來影響環(huán)境,環(huán)境接收到新動(dòng)作之后會(huì)產(chǎn)生新的狀態(tài),并對(duì)剛才的動(dòng)作進(jìn)行一個(gè)獎(jiǎng)勵(lì)反饋,根據(jù)所返回的新的狀態(tài)來決定其需要進(jìn)行的動(dòng)作.強(qiáng)化學(xué)習(xí)的訓(xùn)練過程就是智能體不斷地根據(jù)當(dāng)前環(huán)境狀態(tài)進(jìn)行動(dòng)作決策,同時(shí)根據(jù)環(huán)境反饋的獎(jiǎng)勵(lì)值及時(shí)改進(jìn)其決策的過程,最終的目標(biāo)是找尋一個(gè)最優(yōu)策略,即智能體能夠從環(huán)境狀態(tài)改變的過程中累積盡可能多的獎(jiǎng)勵(lì)值.

      Fig.1 Reinforcement learning圖1 強(qiáng)化學(xué)習(xí)

      強(qiáng)化學(xué)習(xí)與機(jī)器學(xué)習(xí)中其他需要大量訓(xùn)練數(shù)據(jù)的學(xué)習(xí)算法不同,它不需要使用大量的數(shù)據(jù)樣本,而是通過不斷的試錯(cuò)進(jìn)行自我學(xué)習(xí),這種自動(dòng)進(jìn)行學(xué)習(xí)和決策的方法能夠解決監(jiān)督學(xué)習(xí)方法所面臨的由于系統(tǒng)動(dòng)態(tài)性所導(dǎo)致的訓(xùn)練數(shù)據(jù)不全面的問題,更適用于多核溫度感知調(diào)度算法.

      2.2 Q-Learning算法

      隨著強(qiáng)化學(xué)習(xí)的發(fā)展,在Q-Learning 的基礎(chǔ)上出現(xiàn)了很多效果更穩(wěn)定的強(qiáng)化學(xué)習(xí)算法,如A3C[23]、DDPG[24]等.但是這些算法相比于Q-Learning 會(huì)帶來更大的開銷:更新策略過程中的算力開銷和推理最佳動(dòng)作的時(shí)間開銷,這對(duì)于系統(tǒng)級(jí)的算法來說是不可接受的.為了權(quán)衡調(diào)度算法的開銷和調(diào)度算法的最終效果,ReLeTA 最終選擇Q-Learning 作為框架中的學(xué)習(xí)算法.Q-Learning算法是一個(gè)基于價(jià)值的離軌策略算法,Q值指的是智能體在特定狀態(tài)下執(zhí)行特定動(dòng)作所能夠獲得獎(jiǎng)勵(lì)的期望值[25],算法通過建立一個(gè)以狀態(tài)(state)為行、動(dòng)作(action)為列的Q 表來存儲(chǔ)和更新Q值,Q值的更新如式(1)所示:

      其中,α,γ分別表示學(xué)習(xí)率和折扣系數(shù).α用于控制每次Q值更新的幅度,決定了算法收斂的速度以及最終算法的收斂效果,學(xué)習(xí)率較大則收斂較快但可能導(dǎo)致最終的性能不穩(wěn)定.為了節(jié)省時(shí)間和保證最終收斂的效果,一般將學(xué)習(xí)率初始化為較大的值,然后逐漸縮小.γ是數(shù)值在0~1 之間的折扣因子,強(qiáng)化學(xué)習(xí)的目標(biāo)是為了能獲得更多的長期收益,智能體會(huì)對(duì)未來動(dòng)作的收益進(jìn)行考慮.但是未來動(dòng)作的選擇具有不確定性,且離當(dāng)前時(shí)間點(diǎn)越遠(yuǎn)對(duì)當(dāng)前動(dòng)作的影響越小,所以在Q值的計(jì)算中,將未來可能執(zhí)行動(dòng)作的Q值進(jìn)行折扣.γ值為0,則只考慮當(dāng)前的獎(jiǎng)勵(lì).γ值越大,則表示對(duì)未來考慮的越多.Q-Learning 中智能體的決策使用了ε-greedy 策略:智能體的決策包括兩個(gè)部分,其中一個(gè)是應(yīng)用(exploit),另一個(gè)是探索(explore).智能體以1?ε(0<ε<1)的概率選擇目前Q值最大的動(dòng)作,這就是對(duì)當(dāng)前學(xué)習(xí)到的策略的應(yīng)用.而探索是指智能體以ε的概率隨機(jī)選擇動(dòng)作來探索可能存在的更優(yōu)的策略,這樣做能防止智能體學(xué)到次優(yōu)策略.

      Q-Learning算法通過圖2 所示的步驟實(shí)現(xiàn):首先構(gòu)建一個(gè)m×n的Q 表(其中,m為狀態(tài)數(shù),n為動(dòng)作數(shù)),并將表格內(nèi)的值初始化為0.智能體根據(jù)當(dāng)前的狀態(tài)來計(jì)算所有動(dòng)作的Q值,結(jié)合Q值和ε-greedy 策略來選擇動(dòng)作,決策后會(huì)獲得新的狀態(tài)和一個(gè)回報(bào)值,然后使用式(1)來更新Q 表,在反復(fù)的迭代更新Q 表后,智能體會(huì)學(xué)習(xí)到較好的策略.

      Fig.2 Flow of the Q-Learning algorithm圖2 Q-Learning算法的流程

      3 動(dòng)機(jī)案例

      本節(jié)將討論當(dāng)前流行的兩種基于強(qiáng)化學(xué)習(xí)的溫度管理算法,并通過在真實(shí)系統(tǒng)上運(yùn)行來評(píng)估這兩種方法存在的問題,以此作為ReLeTA 方法的動(dòng)機(jī).

      3.1 LTB

      文獻(xiàn)[19]與ReLeTA 的調(diào)度方式相似,本節(jié)首先對(duì)該文獻(xiàn)進(jìn)行討論.為了方便后文進(jìn)行討論,將文獻(xiàn)[19]中的算法命名為LTB.算法LTB 通過溫度傳感器讀取所有處理器的溫度,而將這些溫度用作強(qiáng)化學(xué)習(xí)中的環(huán)境狀態(tài)模型,智能體將程序分配到不同的處理器上運(yùn)行.假定有CPU 有n個(gè)處理器核心,則動(dòng)作空間與處理器核心數(shù)一致都為n.在LTB 中,獎(jiǎng)勵(lì)函數(shù)r定義如下:

      其中,Tem為內(nèi)核的最高閾值溫度,Tmax為當(dāng)前所有內(nèi)核的最高溫度值.式(2)中,獎(jiǎng)勵(lì)函數(shù)存在獎(jiǎng)勵(lì)和智能體動(dòng)作之間關(guān)聯(lián)度較低的缺陷.當(dāng)系統(tǒng)中運(yùn)行多個(gè)任務(wù)時(shí),當(dāng)前分配任務(wù)的內(nèi)核不一定就是溫度最高的核.這樣導(dǎo)致獎(jiǎng)勵(lì)函數(shù)與動(dòng)作之間相關(guān)性不夠高,根據(jù)獎(jiǎng)勵(lì)函數(shù)優(yōu)化的溫度感知調(diào)度算法就很難達(dá)到一個(gè)最優(yōu)的效果.

      為了展示LTB 方法存在的缺陷,我們在真實(shí)的系統(tǒng)上評(píng)估了其性能.實(shí)驗(yàn)平臺(tái)設(shè)置如下:處理器為Inter Core i7-4790 8 處理器,其最大頻率為3.6GHz;實(shí)驗(yàn)操作系統(tǒng)為Ubuntu 18.04 LTS 的4 核計(jì)算機(jī)上使用Parsec benchmark[26]中的facesim 應(yīng)用程序來進(jìn)行實(shí)驗(yàn)驗(yàn)證(本文將該任務(wù)設(shè)為單任務(wù)組合,在第5 節(jié)實(shí)驗(yàn)配置部分說明).重復(fù)執(zhí)行該程序1 000 次,并記錄系統(tǒng)溫度變化數(shù)據(jù).為了避免溫度波動(dòng)影響圖像的展示,將每5 個(gè)單位數(shù)據(jù)取平均值繪制成圖,因此,1 000 次程序執(zhí)行總共采樣溫度200 次.圖中step指采樣的次數(shù),y軸是系統(tǒng)的峰值溫度.作為參考方法,本組實(shí)驗(yàn)選用了本文所提出的狀態(tài)模型和獎(jiǎng)勵(lì)函數(shù)作為對(duì)比.當(dāng)使用相同的獎(jiǎng)勵(lì)函數(shù)和不同的環(huán)境狀態(tài)模型(即本文所提出的環(huán)境狀態(tài)模型)時(shí),如圖3 所示,使用LTB 環(huán)境狀態(tài)模型的多核系統(tǒng)溫度管理方式與本文提出的方式相比,處理器中內(nèi)核的最高溫度提高了平均1.3°C.這是由于LTB 所設(shè)計(jì)的環(huán)境狀態(tài)模型僅僅考慮了所有內(nèi)核的當(dāng)前溫度,該方式太過簡單,無法準(zhǔn)確地展現(xiàn)處理器內(nèi)核的負(fù)載變化以及溫度的變化趨勢,因此對(duì)溫度的控制效果略有不足.

      圖4 展示了使用相同的環(huán)境狀態(tài)模型和不同的獎(jiǎng)勵(lì)函數(shù)(即本文所提出的獎(jiǎng)勵(lì)函數(shù))時(shí),處理器內(nèi)核最高溫度的變化情況.使用LTB 獎(jiǎng)勵(lì)函數(shù)下的內(nèi)核的最高溫度增加了平均2.0°C,這是由于該獎(jiǎng)勵(lì)函數(shù)考慮的是某一狀態(tài)下所有內(nèi)核的最高溫度值Tmax與閾值溫度的差值,而在真實(shí)的系統(tǒng)中,不同的動(dòng)作(任務(wù)分配)可能會(huì)產(chǎn)生相同的Tmax,導(dǎo)致模型不能很好地區(qū)分不同動(dòng)作的效果,使得該獎(jiǎng)勵(lì)函數(shù)不能準(zhǔn)確地幫助模型進(jìn)行策略選擇.

      這里可以看出,LTB 的狀態(tài)模型沒能有效地反映系統(tǒng)溫度變化,其獎(jiǎng)勵(lì)函數(shù)與任務(wù)分配關(guān)聯(lián)度較低,導(dǎo)致了其效果不佳.而本文所提出的環(huán)境狀態(tài)模型同時(shí)兼顧了系統(tǒng)負(fù)載信息和溫度以及溫度變化趨勢(詳細(xì)信息見第4 節(jié)),能較為全面地反映當(dāng)前的系統(tǒng)狀態(tài).同時(shí),新提出的獎(jiǎng)勵(lì)函數(shù)相比于LTB 中的獎(jiǎng)勵(lì)函數(shù)不僅考慮到了整體的溫度,也提高了動(dòng)作與獎(jiǎng)勵(lì)的相關(guān)性,從而產(chǎn)生更優(yōu)異的溫度控制效果.

      Fig.3 Comparison of the same reward function under different environmental state models圖3 相同獎(jiǎng)勵(lì)函數(shù),不同環(huán)境狀態(tài)模型下的對(duì)比

      Fig.4 Comparison of the same environment state model and different reward functions圖4 相同環(huán)境狀態(tài)模型,不同獎(jiǎng)勵(lì)函數(shù)下的對(duì)比

      3.2 DSM

      本文還研究了當(dāng)前另一種基于強(qiáng)化學(xué)習(xí)的溫度管理算法[20],后文中簡稱該方法為DSM.在DSM 中,作者使用兩個(gè)指標(biāo):熱應(yīng)力(由于溫度變化使得芯片在各種約束下所有的應(yīng)力反應(yīng))和老化程度作為最小化溫度的環(huán)境狀態(tài),并將這兩個(gè)指標(biāo)加入到獎(jiǎng)勵(lì)函數(shù)的計(jì)算結(jié)果中.該方法采用了一個(gè)較為復(fù)雜的動(dòng)作空間,同時(shí)對(duì)任務(wù)進(jìn)行調(diào)度并相應(yīng)地主動(dòng)調(diào)節(jié)系統(tǒng)頻率.在獎(jiǎng)勵(lì)函數(shù)中,DSM 將延遲考慮進(jìn)去,通過加入延遲約束來同時(shí)優(yōu)化溫度和保證延遲.然而通過實(shí)驗(yàn)發(fā)現(xiàn),此方法并不能在這溫度和性能兩者之間達(dá)到一個(gè)很好的平衡.使用之前相同的計(jì)算平臺(tái),采用DSM 方法調(diào)度程序facesim 進(jìn)行實(shí)驗(yàn),選擇test為程序的輸入集,因DSM 需要加入一個(gè)約束延遲,通過實(shí)驗(yàn)測試facesim 在本次實(shí)驗(yàn)環(huán)境下的最低運(yùn)行時(shí)間為4.0s,最高運(yùn)行時(shí)間為19.0s.我們選擇將DSM 的延遲設(shè)置為5s,反復(fù)調(diào)用1 200 次.

      圖5 展示了第850 次~第885 次的運(yùn)行實(shí)驗(yàn)結(jié)果,包含了程序運(yùn)行時(shí)間和系統(tǒng)溫度.

      Fig.5 Peak temperature of the system and the running time of facesim under the DSM method圖5 DSM 方法下系統(tǒng)的峰值溫度和facesim 的運(yùn)行時(shí)間

      根據(jù)圖5 所示的結(jié)果,在該程序執(zhí)行850 次后,DSM 方法在訓(xùn)練很多次之后仍然不能夠達(dá)到一個(gè)較為穩(wěn)定的結(jié)果,出現(xiàn)了很多延遲低但溫度很高和延遲高卻溫度很低的情況.這是因?yàn)樵摲椒ǖ莫?jiǎng)勵(lì)函數(shù)中雖然同時(shí)考慮了溫度和性能,但是并未對(duì)二者進(jìn)行有效的權(quán)衡,造成了系統(tǒng)的溫度波動(dòng)以及程序的程序執(zhí)行時(shí)間變化,并不能夠滿足制定的延遲約束條件.

      從本節(jié)對(duì)現(xiàn)有方法的討論可以看出,現(xiàn)有的基于強(qiáng)化學(xué)習(xí)的溫度感知調(diào)度算法仍然存在一些問題.為了改善現(xiàn)有方法的缺陷,本文提出了全新的溫度感知調(diào)度算法ReLeTA,通過全新的建模方式來實(shí)現(xiàn)高效的溫度感知多核處理器調(diào)度.

      4 ReLeTA 溫度感知調(diào)度方法

      本節(jié)將對(duì)提出的算法進(jìn)行全面的討論,包括對(duì)算法的總體設(shè)計(jì)以及建模方法都進(jìn)行了詳細(xì)描述.

      4.1 模型概述

      圖6 展示了ReLeTA 的整體框架,目前,ReLeTA 的調(diào)度算法是在用戶空間(user space)實(shí)現(xiàn),在未來考慮將其實(shí)現(xiàn)于操作系統(tǒng)內(nèi)核中.作為一個(gè)多核系統(tǒng)的任務(wù)調(diào)度器,當(dāng)一個(gè)新的應(yīng)用程序到達(dá)后,ReLeTA 從底層硬件獲取狀態(tài)信息,隨后與操作系統(tǒng)進(jìn)行交互,通過CPU_affinity 將程序分配到對(duì)應(yīng)的處理核心上.系統(tǒng)完成程序分配之后返回獎(jiǎng)勵(lì)值,并根據(jù)獎(jiǎng)勵(lì)值來更新策略.其中,底層硬件是處理器的內(nèi)核,現(xiàn)代CPU 在每個(gè)計(jì)算內(nèi)核上都設(shè)有傳感器,可以直接讀取處理器當(dāng)前的運(yùn)行溫度.在工作過程中,操作系統(tǒng)將所獲取的處理器頻率、利用率以及溫度信息傳遞給ReLeTA 來優(yōu)化調(diào)度策略.整個(gè)ReLeTA算法的系統(tǒng)開銷較小,通常在1ms 之內(nèi),詳細(xì)的系統(tǒng)開銷實(shí)驗(yàn)結(jié)果可見第5 節(jié)表8.在下面的章節(jié)中,將詳細(xì)介紹ReLeTA 如何使用從底層獲取的系統(tǒng)信息.

      Fig.6 ReLeTA framework model圖6 ReLeTA 框架模型

      4.2 溫度感知的強(qiáng)化學(xué)習(xí)建模

      對(duì)Q-Learning 來說,最重要的部分就是設(shè)置有效的環(huán)境狀態(tài)模型、動(dòng)作空間及獎(jiǎng)勵(lì)函數(shù),使智能體也就是溫度感知調(diào)度器可以快速地學(xué)習(xí)到一個(gè)策略來有效降低系統(tǒng)的溫度.本節(jié)將詳細(xì)介紹ReLeTA 如何對(duì)這幾個(gè)方面進(jìn)行建模.

      (1) 環(huán)境狀態(tài)模型

      強(qiáng)化學(xué)習(xí)需要一個(gè)精確的環(huán)境模型,可以準(zhǔn)確地反映出系統(tǒng)變化和獎(jiǎng)勵(lì)以及智能體動(dòng)作之間的關(guān)系,從而幫助智能體快速學(xué)習(xí)到一個(gè)最優(yōu)的策略.因此,環(huán)境狀態(tài)模型是否能精確地體現(xiàn)當(dāng)前系統(tǒng)的狀態(tài),是任務(wù)調(diào)度器至關(guān)重要的一部分.一個(gè)準(zhǔn)確、全面的環(huán)境狀態(tài)模型更有助于找到最優(yōu)的任務(wù)分配策略,也能夠促進(jìn)任務(wù)調(diào)度器快速地收斂到最優(yōu)的策略.

      溫度感知任務(wù)調(diào)度器的最終目的是要實(shí)現(xiàn)系統(tǒng)溫度的優(yōu)化,因此在建模系統(tǒng)狀態(tài)時(shí),首先對(duì)系統(tǒng)溫度相關(guān)的因素進(jìn)行分析.目前,大部分基于Linux 的操作系統(tǒng)都使用“ondemand”調(diào)頻模式,在此模式下,系統(tǒng)根據(jù)CPU 當(dāng)前的利用率來動(dòng)態(tài)地調(diào)節(jié)運(yùn)行頻率[27]:系統(tǒng)負(fù)載較高,則提高頻率來加速任務(wù)的運(yùn)行;負(fù)載降低后,系統(tǒng)降低運(yùn)行頻率達(dá)到節(jié)能的目的.為了觀察影響系統(tǒng)溫度的不同要素,我們采用了與第4 節(jié)相同的實(shí)驗(yàn)環(huán)境,在系統(tǒng)中反復(fù)調(diào)用parsec 測試集中的facesim 程序,同時(shí)采集任務(wù)所在內(nèi)核的運(yùn)行頻率、利用率和溫度,采集的系統(tǒng)數(shù)據(jù)繪制在圖7 中.通過觀察可以看到:系統(tǒng)的利用率和運(yùn)行頻率均與溫度有很高的相關(guān)性,當(dāng)利用率和運(yùn)行頻率大幅度上升時(shí),溫度也會(huì)大幅度上升;反之,溫度也隨之下降.因此,我們將每個(gè)處理器的運(yùn)行頻率和利用率作為強(qiáng)化學(xué)習(xí)中狀態(tài)的一部分.然而,將所有處理器核心的運(yùn)行頻率和利用率加入到系統(tǒng)狀態(tài)中會(huì)導(dǎo)致狀態(tài)的維度很大,當(dāng)系統(tǒng)處理核心增加之后,不利于算法的可擴(kuò)展性,也會(huì)導(dǎo)致強(qiáng)化學(xué)習(xí)的系統(tǒng)開銷增加.因此,我們將同一個(gè)內(nèi)核的利用率和運(yùn)行頻率以相加的形式合并到一個(gè)變量中.然而在不同的調(diào)頻模式下,頻率和利用率對(duì)溫度的影響不一致,因此我們對(duì)它們進(jìn)行加權(quán)求和,公式如下:

      其中,wf,wu分別為頻率和利用率對(duì)應(yīng)的權(quán)重值,且兩個(gè)參數(shù)滿足wf+wu=1.通過實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),在“ondemand”調(diào)頻模式下的最佳權(quán)重為:為t時(shí)刻核i的利用率,計(jì)算機(jī)中內(nèi)核利用率是介于0 和1 之間的值,頻率則一般處于200MHz 至4GHz 之間,兩個(gè)指標(biāo)之間數(shù)值相差較大.當(dāng)指標(biāo)間的水平相差很大時(shí),直接使用原始指標(biāo)值作為狀態(tài),就會(huì)突出數(shù)值較高的指標(biāo)對(duì)系統(tǒng)狀態(tài)的影響,同時(shí)削弱數(shù)值較低指標(biāo)的作用.因此,為了確保頻率和利用率處于同一數(shù)值范圍內(nèi),對(duì)頻率進(jìn)行歸一化處理[28],式(3)中表示為t時(shí)刻核i的歸一化運(yùn)行頻率.運(yùn)行頻率的歸一化處理方式如下:

      其中,Fcurrently_i為核i的當(dāng)前頻率,Fmax為核的最大運(yùn)行頻率.

      Fig.7 Relationship between operating frequency and core utilization with core temperature圖7 運(yùn)行頻率和內(nèi)核利用率與內(nèi)核溫度之間的關(guān)系

      我們在真實(shí)系統(tǒng)中對(duì)比了合并利用率和頻率作為系統(tǒng)狀態(tài)和單獨(dú)使用利用率和頻率作為狀態(tài)下的實(shí)驗(yàn)效果,發(fā)現(xiàn)合并狀態(tài)后的效果并未差于將兩個(gè)狀態(tài)分開表示.

      為了全面反映當(dāng)前系統(tǒng)的狀態(tài),除了系統(tǒng)利用率和頻率信息,還需要考慮系統(tǒng)的溫度信息.現(xiàn)有方法如LTB,直接使用所有內(nèi)核的當(dāng)前溫度作為系統(tǒng)狀態(tài).然而系統(tǒng)溫度變化很快,僅用內(nèi)核的當(dāng)前溫度并不能較好地反映系統(tǒng)的溫度變化趨勢.在溫度管理的文獻(xiàn)中,通常同時(shí)使用當(dāng)前溫度和溫度梯度來表示當(dāng)前系統(tǒng)的溫度變化趨勢[18],然而,直接用一個(gè)2n維的數(shù)據(jù)來表示系統(tǒng)的溫度狀態(tài)會(huì)帶來巨大的空間和時(shí)間開銷.從當(dāng)前溫度和溫度變化以及降維的角度出發(fā),我們采用了文獻(xiàn)[29]中所提出的方法來表示當(dāng)前內(nèi)核的溫度狀態(tài):

      其中,Ti(t)為核i在t時(shí)刻的溫度,Ti(t?Δt)為核i在t?Δt時(shí)刻的溫度,b是由處理器決定的常數(shù),Δt表示間隔時(shí)間.這些參數(shù)在文獻(xiàn)[29]中進(jìn)行了詳細(xì)的介紹,在此處不做描述.式(5)涵蓋了系統(tǒng)的當(dāng)前溫度和溫度變化趨勢,相比于LTB 能更好地反映系統(tǒng)溫度信息,而相比于文獻(xiàn)[18],則實(shí)現(xiàn)了有效降維.為了使溫度狀態(tài)與合并的系統(tǒng)狀態(tài)處于相同的數(shù)值范圍,我們使用系統(tǒng)的最大閾值溫度Tthreshold對(duì)當(dāng)前溫度狀態(tài)進(jìn)行歸一化:

      最終,ReLeTA 中單個(gè)內(nèi)核的狀態(tài)信息由下式表達(dá):

      而所有內(nèi)核的當(dāng)前狀態(tài)組合起來表示當(dāng)前的系統(tǒng)狀態(tài),系統(tǒng)狀態(tài)表示如下:

      (2) 獎(jiǎng)勵(lì)函數(shù)

      強(qiáng)化學(xué)習(xí)是通過智能體不斷地執(zhí)行操作和評(píng)估環(huán)境所反饋的獎(jiǎng)勵(lì)值來改善其學(xué)習(xí)策略,因此,獎(jiǎng)勵(lì)函數(shù)的設(shè)置決定了任務(wù)調(diào)度器學(xué)習(xí)到最優(yōu)策略的時(shí)間和學(xué)習(xí)策略的最終效果.現(xiàn)有文獻(xiàn)的獎(jiǎng)勵(lì)函數(shù)存在一定缺陷:LTB 的獎(jiǎng)勵(lì)函數(shù)與動(dòng)作之間相關(guān)性不夠高,DSM 的獎(jiǎng)勵(lì)函數(shù)復(fù)雜度高且很難實(shí)現(xiàn)溫度和性能的均衡.這兩種情況均不利于智能體學(xué)習(xí)到最優(yōu)的任務(wù)調(diào)度策略.因此,我們提出了一種新的獎(jiǎng)勵(lì)函數(shù)來高效地指導(dǎo)調(diào)度器學(xué)習(xí)到最優(yōu)的溫度感知調(diào)度策略.新的獎(jiǎng)勵(lì)函數(shù)公式如下:

      (3) 動(dòng)作空間

      強(qiáng)化學(xué)習(xí)中的動(dòng)作空間指智能體可以執(zhí)行的所有動(dòng)作的集合,ReLeTA 是一個(gè)溫度感知的調(diào)度器,其目標(biāo)就是將程序調(diào)度到不同的處理器上,從而達(dá)到降低系統(tǒng)溫度的目的.因此,我們將ReLeTA 的動(dòng)作空間定義如下:

      其中,ai表示為把當(dāng)前任務(wù)分配到核i上運(yùn)行,n是系統(tǒng)所擁有的內(nèi)核數(shù).

      4.3 Q值近似

      ReLeTA 使用Q-Learning算法來訓(xùn)練調(diào)度策略,傳統(tǒng)的Q-Learning算法使用Q值表格來存儲(chǔ)不同狀態(tài)、動(dòng)作下所獲得的Q值,然而隨著狀態(tài)空間和動(dòng)作空間的增加,會(huì)導(dǎo)致存儲(chǔ)Q值所需的內(nèi)存空間呈指數(shù)形增長.為了緩解這一問題,通常采用神經(jīng)網(wǎng)絡(luò)來近似估計(jì)不同狀態(tài)動(dòng)作組合下的Q值,將Q 表的更新問題變成一個(gè)函數(shù)擬合問題.在ReLeTA 中,使用同樣的方法來處理存儲(chǔ)Q 表帶來的內(nèi)存開銷問題.

      為了設(shè)計(jì)一個(gè)簡單且準(zhǔn)確的神經(jīng)網(wǎng)絡(luò)來擬合Q值,我們對(duì)網(wǎng)絡(luò)的層數(shù)和神經(jīng)元的個(gè)數(shù)對(duì)模型的影響進(jìn)行了評(píng)估.使用大量不同的神經(jīng)網(wǎng)絡(luò)進(jìn)行了多組測試后,發(fā)現(xiàn)“輸入層-隱藏層-輸出層”這種3 層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),隱藏層的神經(jīng)元個(gè)數(shù)設(shè)置為2×n,能使算法達(dá)到較好的效果且開銷較低,而增加網(wǎng)絡(luò)層數(shù)或隱藏層神經(jīng)元個(gè)數(shù)都不能使得效果有明顯提升.因此綜合考慮效果和系統(tǒng)開銷,我們選擇3 層神經(jīng)網(wǎng)絡(luò)來擬合Q值:

      其中,θ={θ1,θ2,…,θn}表示神經(jīng)網(wǎng)絡(luò)的參數(shù),b表示偏置,Si是內(nèi)核i的系統(tǒng)狀態(tài),如式(8)所示.針對(duì)此神經(jīng)網(wǎng)絡(luò),我們使用梯度下降和以下?lián)p失函數(shù)來更新其參數(shù)θ:

      其中,r為狀態(tài)s下執(zhí)行動(dòng)作a的獎(jiǎng)勵(lì),r+γmaxQ(s′,a′,θ)為目標(biāo)Q值,而Q(s,a,θ)是真實(shí)的Q值.Q-Learning 通過目標(biāo)值和真實(shí)值之間的誤差期望值建立損失函數(shù).

      4.4 Q-Learning參數(shù)設(shè)置

      (1) 學(xué)習(xí)率

      Q-Learning 中,學(xué)習(xí)率表示了Q值更新的幅度,決定了算法的收斂速度和最終的收斂效果.學(xué)習(xí)率較大時(shí),算法收斂較快,但一定程度上會(huì)影響性能[30].所以通常初始化一個(gè)較大的學(xué)習(xí)率,隨著算法運(yùn)行次數(shù)的增加,逐步縮小學(xué)習(xí)率,從而使算法收斂速度較快且最終性能較好.在ReLeTA 中,我們通過實(shí)驗(yàn)來經(jīng)驗(yàn)性地確定最佳學(xué)習(xí)率.實(shí)驗(yàn)平臺(tái)與第4 節(jié)中的一致.通過反復(fù)調(diào)度同一個(gè)任務(wù),來觀察不同的學(xué)習(xí)率下算法的收斂效率和對(duì)溫度的控制效果,實(shí)驗(yàn)結(jié)果如圖8 所示.需注意,采用不同的程序不會(huì)影響圖8 所獲得的實(shí)驗(yàn)結(jié)果.可以看出,學(xué)習(xí)率初始化為0.8 的情況下,算法收斂速度最快且溫度控制較好;其他方法最終也能達(dá)到類似的溫度降低效果,但所需的時(shí)間更長.因此我們采用0.8 作為算法的初始學(xué)習(xí)率來更新神經(jīng)網(wǎng)絡(luò)權(quán)重.

      Fig.8 Convergence of temperature under different learning rates圖8 不同學(xué)習(xí)率下溫度的收斂情況

      (2) 貪婪策略(ε-greedy)

      Q-Learning 在決策學(xué)習(xí)過程中,如果每次都選擇當(dāng)前狀態(tài)下Q值最大的動(dòng)作,容易導(dǎo)致所學(xué)策略收斂到局部最優(yōu)的結(jié)果.因此,強(qiáng)化學(xué)習(xí)算法通常使用貪婪策略(ε-greedy)來進(jìn)行一定比例的隨機(jī)探索,從而避免策略收斂到局部最優(yōu).具體來說,貪婪策略就是在每次動(dòng)作選擇時(shí),以概率ε來隨機(jī)選擇一個(gè)動(dòng)作,而不采用當(dāng)前最大Q值的動(dòng)作.在ReLeTA 中同樣使用了貪婪策略:為了學(xué)習(xí)到最優(yōu)的任務(wù)調(diào)度策略,在任務(wù)調(diào)度初期將探索的概率ε設(shè)置為0.4;隨著任務(wù)調(diào)度次數(shù)的增加,逐步縮小ε,最終保持在0.03.這樣,算法初期可以嘗試更多的策略,而后期減少探索偏向于使用優(yōu)化過的策略.

      4.5 算法實(shí)現(xiàn)

      5 實(shí) 驗(yàn)

      為了驗(yàn)證ReLeTA 的性能,我們通過大量基于真實(shí)硬件平臺(tái)的實(shí)驗(yàn)對(duì)所提出方法進(jìn)行了全方位的評(píng)估,并與現(xiàn)有的幾種方法進(jìn)行了對(duì)比.相比于之前的很多方法采用系統(tǒng)模擬和數(shù)值模擬的實(shí)驗(yàn)方式,在真實(shí)系統(tǒng)上的評(píng)估更能反映出各個(gè)方法的實(shí)際效果.

      5.1 實(shí)驗(yàn)配置

      (1) 實(shí)驗(yàn)環(huán)境

      為了驗(yàn)證所提出方法的有效性和可擴(kuò)展性,本次實(shí)驗(yàn)采用了3 種不同的計(jì)算機(jī)硬件平臺(tái)進(jìn)行實(shí)驗(yàn),表1 列出了3 種實(shí)驗(yàn)平臺(tái)的配置.本次實(shí)驗(yàn)中使用的操作系統(tǒng)均為Ubuntu 18.04,內(nèi)核版本為4.15.0.

      Table 1 Computer configuration information表1 計(jì)算機(jī)配置信息

      (2) 測試程序

      本次實(shí)驗(yàn)采用了Parsec 程序集[26],Parsec 程序集中的程序種類多樣,能充分代表計(jì)算機(jī)中常見的各種不同類型的程序,因此被廣泛地用于計(jì)算機(jī)系統(tǒng)性能測試.為了驗(yàn)證算法在不同程序集下的效果,我們使用表2 中的不同程序以及不同的程序輸入來組成更加多樣化的測試集,隨機(jī)生成3 任務(wù)組合、5 任務(wù)組合、8 任務(wù)組合、15 任務(wù)組合這4 種.為了保證實(shí)驗(yàn)的公平性,對(duì)每個(gè)任務(wù)組我們通過隨機(jī)生成一個(gè)時(shí)間間隔(時(shí)間間隔介于0.1s~1.6s 之間)來生成一個(gè)程序調(diào)度序列,然后對(duì)不同的方法使用相同的序列.對(duì)于不同的對(duì)比實(shí)驗(yàn),我們針對(duì)實(shí)驗(yàn)需求采用了不同的溫度采集方法,在后面的實(shí)驗(yàn)會(huì)進(jìn)行具體說明.實(shí)驗(yàn)中所用到的測試任務(wù)信息和輸入信息展示在表2,與Parsec 程序集相關(guān)的輸入信息不在此處進(jìn)行詳細(xì)地描述.

      Table 2 Test tasks and inputs表2 測試任務(wù)和輸入

      5.2 實(shí)驗(yàn)結(jié)果

      (1) ReLeTA 與LTB

      現(xiàn)有的基于溫度感知的調(diào)度算法中,DSM 同時(shí)考慮了性能和溫度,每個(gè)任務(wù)都有特定的性能約束,在進(jìn)行任務(wù)分配的同時(shí),還進(jìn)行系統(tǒng)內(nèi)核頻率調(diào)節(jié).而ReLeTA 和LTB 都僅通過任務(wù)調(diào)度來優(yōu)化系統(tǒng)溫度,不主動(dòng)進(jìn)行頻率調(diào)節(jié).兩種方法的動(dòng)作空間及優(yōu)化目標(biāo)一致,所以本節(jié)首先對(duì)兩種方法進(jìn)行全面的實(shí)驗(yàn)對(duì)比,通過在不同的平臺(tái)下調(diào)度不同的任務(wù)集,來對(duì)比兩種方法對(duì)系統(tǒng)溫度的管理效果.

      任務(wù)調(diào)度過程中,兩種調(diào)度方法均使用Linux 系統(tǒng)中的“ondemand”頻率調(diào)節(jié)方式.

      第1 組實(shí)驗(yàn)選取程序fluidanimate(輸入為simdev)在2 核的平臺(tái)上運(yùn)行,在系統(tǒng)中反復(fù)調(diào)用1 400 次,每次任務(wù)運(yùn)行結(jié)束采集一次系統(tǒng)峰值溫度,結(jié)果如圖9 所示.

      Fig.9 Peak system temperature when LTB and ReLeTA run a single task in the 2-core platform圖9 LTB 和ReLeTA 在2 核平臺(tái)中運(yùn)行單任務(wù)時(shí)系統(tǒng)峰值溫度

      從圖中可以看出,在任務(wù)反復(fù)調(diào)度200 次后,我們方法的峰值溫度明顯低于LTB,在整個(gè)任務(wù)執(zhí)行周期的峰值平均溫度比LTB 降低1.8°C.值得注意的是,兩種方法下任務(wù)運(yùn)行的平均時(shí)間均為0.68s.

      為了進(jìn)一步增加硬件的內(nèi)核數(shù)和程序的多樣性,我們在4 核平臺(tái)上的展開實(shí)驗(yàn),結(jié)果如圖10 所示.

      Fig.10 Peak temperature of the system under different task combinations of LTB and ReLeTA圖10 LTB 與ReLeTA 在不同任務(wù)組合下系統(tǒng)的峰值溫度

      實(shí)驗(yàn)分別使用3 任務(wù)組合、5 任務(wù)組合、8 任務(wù)組合和15 任務(wù)組這4 個(gè)任務(wù)集對(duì)兩種方法進(jìn)行了對(duì)比實(shí)驗(yàn).每個(gè)實(shí)驗(yàn)中,將任務(wù)集中的程序隨機(jī)調(diào)度2 000 次,并記錄每次程序運(yùn)行結(jié)束時(shí)的系統(tǒng)峰值溫度.X軸表示程序執(zhí)行的次數(shù),Y軸表示為峰值溫度.

      從實(shí)驗(yàn)結(jié)果來看,ReLeTA 相比于LTB 能進(jìn)一步降低系統(tǒng)溫度.表3 總結(jié)了實(shí)驗(yàn)的溫度差異數(shù)據(jù),從該數(shù)據(jù)可以看出,在最好的情況下,ReLeTA 在8 任務(wù)組合下平均溫度降低了4°C,在5 任務(wù)組合下兩種方法的最高溫度差達(dá)到了13°C.從圖10 和表3 中可以看出,當(dāng)執(zhí)行3 任務(wù)組合和5 任務(wù)組合時(shí),運(yùn)行初期LTB 的性能要略微優(yōu)于本文方法.這是因?yàn)長TB 的狀態(tài)簡單,當(dāng)測試程序數(shù)量較少時(shí),LTB 可以更快地學(xué)習(xí)到有效的任務(wù)調(diào)度策略;但是隨著程序運(yùn)行次數(shù)的增加,ReLeTA 的溫度管理效果逐漸優(yōu)于LTB.同時(shí)可以看到:隨著測試程序種類的增加,ReLeTA 展現(xiàn)出更優(yōu)越的溫度管理效果,說明ReLeTA 面對(duì)多樣的程序時(shí)具有更強(qiáng)的適應(yīng)性.

      Table 3 Temperature difference of the system under different task groups of LTB and ReLeTA表3 LTB 和ReLeTA 不同任務(wù)組下系統(tǒng)的溫度差

      為了進(jìn)一步對(duì)比兩種方法的可擴(kuò)展性,我們在20 核的實(shí)驗(yàn)平臺(tái)上進(jìn)行了對(duì)比實(shí)驗(yàn).實(shí)驗(yàn)中使用由15 個(gè)任務(wù)構(gòu)成的任務(wù)組合,按順序?qū)⑦@15 個(gè)任務(wù)各執(zhí)行1 000 次.為了減少數(shù)據(jù)采集所導(dǎo)致的系統(tǒng)開銷,實(shí)驗(yàn)每4s 采集一次系統(tǒng)的溫度信息.圖11 顯示了兩種方法在整個(gè)執(zhí)行周期的峰值溫度變化,可以看出,ReLeTA 的峰值溫度絕大多數(shù)情況下優(yōu)于LTB,峰值溫度平均降低了1.35°C.除了峰值溫度,我們還采集了系統(tǒng)的平均溫度和任務(wù)所運(yùn)行內(nèi)核的溫度,具體溫度變化情況如圖12 所示,具體溫度數(shù)據(jù)總結(jié)見表4.可以看出,ReLeTA 平均峰值溫度比LTB 降低了1.59°C,任務(wù)所調(diào)度內(nèi)核的溫度相比于LTB 則大大降低,平均降低了5.26°C.

      Fig.11 Peak temperature of the system when LTB and ReLeTA run 15 tasks in the 20-core system圖11 LTB 和ReLeTA 在20 核系統(tǒng)中運(yùn)行15 任務(wù)組合時(shí)系統(tǒng)的峰值溫度

      Fig.12 Average temperature of the system and the temperature of the core where the task is running when LTB and ReLeTA run 15 tasks in the 20-core system圖12 LTB 和ReLeTA 在20 核系統(tǒng)下運(yùn)行15 任務(wù)組合時(shí)的系統(tǒng)平均溫度和任務(wù)運(yùn)行所在內(nèi)核的溫度

      Table 4 System temperature of LTB and ReLeTA running 15 tasks in the 20-core system表4 LTB 和ReLeTA 在20 核系統(tǒng)中運(yùn)行15 任務(wù)組的系統(tǒng)溫度情況

      我們在20 核的平臺(tái)使用Hyper-Threading 技術(shù)將邏輯內(nèi)核數(shù)擴(kuò)展到40 核開展進(jìn)一步的測試.因篇幅有限,我們在此處不展示詳細(xì)的溫度變化圖,統(tǒng)計(jì)的實(shí)驗(yàn)結(jié)果總結(jié)在表5 中.可以看出,在兩種方法下,峰值平均溫度相差0.9°C,平均溫度相差了1.4°C,運(yùn)行任務(wù)所在內(nèi)核的平均溫差較大達(dá)到了3.5°C.在40 核的情況下,峰值平均溫度差相比于20 核有所下降.這是因?yàn)樵?0 核下,我們使用了與20 核實(shí)驗(yàn)中相同的任務(wù)集,相比于20 核的運(yùn)行環(huán)境出現(xiàn)了更多的空閑時(shí)間,導(dǎo)致系統(tǒng)峰值溫度和平均溫度降低.

      Table 5 System temperature of LTB and ReLeTA running 15 tasks in the 40-core system表5 LTB 和ReLeTA 在40 核系統(tǒng)中運(yùn)行15 任務(wù)組的系統(tǒng)溫度情況

      (2) ReLeTA 與DSM、LTB 和Linux 之間的比較

      在第2 個(gè)實(shí)驗(yàn)中,加入了DSM 和Linux 的CFS 調(diào)度方式[31]來進(jìn)行對(duì)比.本次實(shí)驗(yàn)采用了4 核實(shí)驗(yàn)平臺(tái),選用了3 個(gè)運(yùn)行時(shí)間存在一定差異的程序:canneal、dedup、facesim 來進(jìn)行實(shí)驗(yàn).因?yàn)镈SM 需要指定任務(wù)的延遲約束,通過在系統(tǒng)上進(jìn)行測試,將3 個(gè)程序的約束依次設(shè)置為:2ms,43ms,5s.每個(gè)任務(wù)各執(zhí)行400 次,執(zhí)行過程中,我們采集了所有程序的運(yùn)行時(shí)間以及每次程序運(yùn)行結(jié)束時(shí)的系統(tǒng)溫度.針對(duì)ReLeTA、LTB 和Linux,直接使用Linux 默認(rèn)的“ondemand”調(diào)頻模式來控制系統(tǒng)頻率.

      實(shí)驗(yàn)結(jié)果展示在圖13 中,可以看出,整個(gè)實(shí)驗(yàn)過程中,DSM 運(yùn)行溫度較低.這是因?yàn)镈SM 使用了主動(dòng)調(diào)頻,使用較低的運(yùn)行頻率來控制溫度,但同時(shí)導(dǎo)致單個(gè)程序運(yùn)行時(shí)間更長.該方法下,運(yùn)行完所有程序所需要的時(shí)間大約為3 000s;而其他方法以較高的頻率運(yùn)行程序,運(yùn)行完所有程序的時(shí)間為1 500s 左右.運(yùn)行完所有程序后,系統(tǒng)進(jìn)入空閑狀態(tài)從而降低系統(tǒng)溫度.我們以DSM 的執(zhí)行時(shí)間為周期,計(jì)算了在這段時(shí)間間隔內(nèi)4 種方法的平均系統(tǒng)溫度,結(jié)果匯總在表6 中.在整個(gè)任務(wù)執(zhí)行周期,本文所提算法相對(duì)于DSM 僅高出0.6°C;而相對(duì)于其他兩種方法,我們的方法降低的平均峰值溫度分別為5.8°C 和2.5°C.

      Fig.13 Experimental results of ReLeTA,LTB,DSM,and Linux default scheduling methods圖13 針對(duì)ReLeTA、LTB、DSM、Linux 默認(rèn)調(diào)度方式的實(shí)驗(yàn)結(jié)果

      Table 6 Comparison of various methods with DSM表6 多種方法與DSM 對(duì)比

      DSM 的目標(biāo)是在滿足性能約束的前提下進(jìn)行系統(tǒng)溫度優(yōu)化,然而正如我們在圖5 所展示,DSM 復(fù)雜的獎(jiǎng)勵(lì)函數(shù)很難實(shí)現(xiàn)溫度和性能的平衡.表7 對(duì)所有方法中不滿足性能約束的情況進(jìn)行了總結(jié),DSM 方法下,任務(wù)canneal、dedup、facesim 分別有41%,5%和4%的情況下不滿足延遲約束,而本文所提方法只有極少量的情況下出現(xiàn)約束不滿足的情況.綜合溫度和性能的考慮,相比于其他兩種方法,ReLeTA 能在保證性能的情況下,將系統(tǒng)溫度保持在較低的狀態(tài).

      Table 7 Proportion of running three tasks under four methods that do not meet the time constraint (%)表7 4 種方法下運(yùn)行3 種任務(wù)不滿足時(shí)間約束的占比(%)

      除溫度和性能,本文對(duì)3 種方法下的時(shí)間開銷進(jìn)行了統(tǒng)計(jì)評(píng)估,總結(jié)見表8.此處的時(shí)間開銷是指各個(gè)方法從系統(tǒng)讀取狀態(tài)到最終完成任務(wù)調(diào)度的時(shí)間間隔,3 種方法的平均開銷都在保證在1ms 以內(nèi),但是DSM 運(yùn)行任務(wù)過程中的最大開銷是其他兩種方法的3 倍左右.因?yàn)镈SM 讀取了溫度循環(huán)再進(jìn)行了一系列的計(jì)算得到真正的狀態(tài),再計(jì)算各個(gè)動(dòng)作下的Q值,中間的計(jì)算量較大,所以時(shí)間開銷最大(并且DSM 動(dòng)作包括了任務(wù)映射和調(diào)頻).本文方法的開銷高于LTB,主要由于本文狀態(tài)模型更為復(fù)雜.

      Table 8 Time overhead under the three methods表8 3 種方法下的時(shí)間開銷

      6 總結(jié)

      多核系統(tǒng)的溫度管理已經(jīng)成為多核系統(tǒng)領(lǐng)域一個(gè)重要的研究課題,由于機(jī)器學(xué)習(xí)方法在各個(gè)方面的應(yīng)用均取得巨大突破,受到了關(guān)注.其中,強(qiáng)化學(xué)習(xí)作為靈活性最高的機(jī)器學(xué)習(xí)算法,被廣泛運(yùn)用于各種復(fù)雜動(dòng)態(tài)決策問題.目前已經(jīng)有很多基于強(qiáng)化學(xué)習(xí)的系統(tǒng)溫度管理研究工作,然而當(dāng)前存在的基于強(qiáng)化學(xué)習(xí)的系統(tǒng)溫度管理方法在狀態(tài)和獎(jiǎng)勵(lì)函數(shù)建模中均存在一些問題,使得算法很難實(shí)現(xiàn)性能、溫度和復(fù)雜度得較好平衡.通過對(duì)當(dāng)前相關(guān)工作的總結(jié),本文提出了全新的狀態(tài)建模和獎(jiǎng)勵(lì)函數(shù)建模方法,并且在不同真實(shí)的硬件平臺(tái)上使用不同的任務(wù)集進(jìn)行了全面的實(shí)驗(yàn)評(píng)估.相比于現(xiàn)有的兩種方法,本文所提的ReLeTA 方法可以實(shí)現(xiàn)更好的溫度管理,降低系統(tǒng)的峰值溫度和平均溫度.ReLeTA 在本文中僅僅考慮了任務(wù)的調(diào)度,為了能夠?qū)崿F(xiàn)一個(gè)全方位的溫度管理系統(tǒng),需要進(jìn)一步考慮主動(dòng)控制系統(tǒng)的頻率.在未來的工作中,我們將進(jìn)一步將如何有效主動(dòng)控制系統(tǒng)頻率考慮到ReLeTA 中.

      猜你喜歡
      內(nèi)核調(diào)度狀態(tài)
      萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      《調(diào)度集中系統(tǒng)(CTC)/列車調(diào)度指揮系統(tǒng)(TDCS)維護(hù)手冊》正式出版
      一種基于負(fù)載均衡的Kubernetes調(diào)度改進(jìn)算法
      狀態(tài)聯(lián)想
      虛擬機(jī)實(shí)時(shí)遷移調(diào)度算法
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      生命的另一種狀態(tài)
      熱圖
      家庭百事通(2016年3期)2016-03-14 08:07:17
      博罗县| 莱芜市| 兴隆县| 尚志市| 华亭县| 鸡西市| 毕节市| 怀化市| 会东县| 建阳市| 漳州市| 竹山县| 嵊州市| 博野县| 昌黎县| 绥江县| 枝江市| 龙陵县| 望城县| 车险| 福泉市| 桃园市| 体育| 涿鹿县| 昌宁县| 疏勒县| 资兴市| 武清区| 大同市| 余干县| 西乡县| 阿合奇县| 逊克县| 宜兰县| 沙洋县| 乐至县| 张家港市| 高清| 英超| 尤溪县| 延寿县|