亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種改進(jìn)的整機系統(tǒng)實時功率建模方法

        2019-07-09 11:57:48楊良懷戚加欣范玉雷
        小型微型計算機系統(tǒng) 2019年7期
        關(guān)鍵詞:磁盤計數(shù)器功耗

        楊良懷,戚加欣,徐 衛(wèi),范玉雷

        (浙江工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,杭州 310023)

        1 引 言

        能效是現(xiàn)代數(shù)據(jù)中心的重要議題[2],而峰值功率是數(shù)據(jù)中心的一個重要因素,對峰值功率的封頂控制是相關(guān)研究的熱點問題之一[3-6].本文針對其中的整機功率感知問題開展研究.

        通常有兩種獲取實時功率的方法:物理測量和軟件評估.使用儀器來測得功率較為精確,但其成本高;軟件評估靈活、成本低,且功率與系統(tǒng)狀態(tài)關(guān)聯(lián)的特性可以用于優(yōu)化功耗敏感的系統(tǒng)或程序.但后者需要解決測得功率的準(zhǔn)確度,以及額外資源、功耗開銷的問題.

        在計算機系統(tǒng)中,處理器、內(nèi)存與磁盤是最主要的耗能部件,且隨著部件負(fù)載量的增加,其功率占比也隨著提高.本文基于這三個部件來構(gòu)建整機實時功率模型.本文的貢獻(xiàn)在于不僅利用硬件性能事件和部件利用率,同時利用處理器C-States來構(gòu)建通用型的整機系統(tǒng)實時功率模型.其主要思想是利用CPU性能事件與功耗之間存在的內(nèi)在聯(lián)系構(gòu)建功率模型,通過特征選擇算法選取模型的性能事件子集,依據(jù)不同C-States狀態(tài)把處理器和內(nèi)存部分的實時功率分為兩個階段:高功耗狀態(tài)與低功耗狀態(tài),分別建立功耗模型;基于利用率構(gòu)建磁盤的功率模型;結(jié)合兩者構(gòu)建整機功率模型.實驗結(jié)果表明所提方法明顯提高了功耗計算準(zhǔn)確性.

        2 相關(guān)工作

        從帶有一組性能計數(shù)器的奔騰系列起,英特爾引入了性能監(jiān)控機制,并在之后不斷完善該機制,同時增加新的性能監(jiān)控事件,研究人員可通過這些計數(shù)器獲得更為全面且詳細(xì)的架構(gòu)信息和性能事件,從而構(gòu)建功率模型.

        Bellosa[7]最先利用整數(shù)操作、浮點數(shù)操作、二級尋址和內(nèi)存訪問性能事件計數(shù)與功率近似線性相關(guān)進(jìn)行建模;但其性能事件的選擇方法、模型的準(zhǔn)確性都有待提升.

        Isci等[8]為奔騰4處理器分成22個子單元,分別為每個子單元選擇合適的事件構(gòu)建功率模型.Bertran[9]定義了超過25個處理器微架構(gòu)組件,最終選擇了處理器前端(FE)、整數(shù)單元、浮點數(shù)單元、SIMD算術(shù)單元、分支預(yù)測和執(zhí)行單元、一級緩存、二級緩存、前端總線(FSB)這八個處理器微架構(gòu)組件,共使用20個性能事件,基于處理器組件的活躍比例,針對不同DVFS配置分別構(gòu)建了單核和多核的處理器功率模型.不同處理器架構(gòu)中,性能計數(shù)器的可訪問性和可用程度均有差異;為此,Rance等[10]尋找出可被任意處理器架構(gòu)使用的性能事件子集,且使用該子集所構(gòu)建的功率模型具有良好的準(zhǔn)確性.所建模型中,最多的使用了6個性能事件,最少使用了1個性能事件,相對誤差在4%~13%之間.劉辛等[11]通過篩選處理器的硬件事件對多核處理器進(jìn)行功耗建模,使用逐步多元線性回歸分析建立實時功耗模型.利用PARSEC和SPLASH2基準(zhǔn)測試程序集對模型進(jìn)行了驗證,估算誤差分別為3.01%和1.99%.不同于本文整機功率建模,以上模型均是處理器功耗模型,整機系統(tǒng)中則涉及CPU外圍電路、磁盤、主板其他部件等功率;由于其他部件不像CPU有許多可用性能事件來表征功耗,整機功耗模型的構(gòu)建有一定挑戰(zhàn)性.

        Bertran[12]等人將基于計數(shù)器的建模方法分為兩種類型:自頂向下和自底向上.這兩種方法的主要區(qū)別在于對計數(shù)器的選擇.自頂向下構(gòu)建的模型平臺移植性較強,模型也相對簡單;而自底向上功率模型對平臺的依賴性較強,移植性較差,復(fù)雜度相對高,但模型更為準(zhǔn)確.本文提出的模型綜合兩種方法的優(yōu)點,通過特征選取,選擇最合適的硬件性能事件,簡化了模型,縮短了訓(xùn)練時間,便于模型被理解,也改善了通用性、降低過擬合的可能.

        Zhu[13]等討論了非線性回歸方法模型在功耗模型上的應(yīng)用,與多變量線性方法相比,非線性回歸方法僅具有輕微的準(zhǔn)確性優(yōu)勢,但其需要更長的訓(xùn)練時間以及具有較差的可移植性.Powell等[14]利用運行時微處理器在內(nèi)核以及微架構(gòu)中的獨立結(jié)構(gòu)的功率消耗以及各個部件活躍度進(jìn)行功率建模.但在實際應(yīng)用中,由于商用處理器和模擬器之間的細(xì)微差別,以及不同處理器之間的微小差異,難以用模擬器精確地描述實際系統(tǒng).

        本文結(jié)合性能事件與部件利用率,同時利用CPU的功耗狀態(tài)來構(gòu)建整機功率模型,并與傳統(tǒng)模型進(jìn)行比較.

        3 功率模型的理論分析

        3.1 影響CPU功率的因素

        處理器的功耗與負(fù)載相關(guān),處理器的負(fù)載狀態(tài)可以通過計算處理器的利用率近似獲得,也可以使用處理器的性能計數(shù)器監(jiān)測處理器內(nèi)部的性能事件更為精確地獲得.現(xiàn)代的處理器芯片都提供性能計數(shù)器,CPU性能計數(shù)器或性能監(jiān)控單元(PMU)是可以計數(shù)低級CPU活動的特定模塊寄存器(MSR).通常包括下列計數(shù)器:CPU周期,CPU指令,L1、L2、L3緩存訪問,浮點單元,內(nèi)存I/O,資源I/O.與功率相關(guān)的事件包括:執(zhí)行指令數(shù)、分支預(yù)測單元、指令周期(cycle)、高速緩存缺失、處理器暫停、頁表緩存缺失、每周期指令數(shù)(IPC).可以通過獲取UNHALTED-CORE-CYCLES和INSTRUCTIONS-RETIRED來計算得到每周期指令數(shù)IPC,公式如下:

        (1)

        3.2 影響內(nèi)存功率的因素

        內(nèi)存功耗包括背景功耗、操作功耗、讀寫功耗和I/O功耗.背景功耗描述了沒有存儲器訪問時DRAM芯片的功率.操作功耗指DRAM芯片上電時執(zhí)行預(yù)充電操作的功耗.當(dāng)數(shù)據(jù)被讀出或?qū)懭胄酒瑫r,讀寫功耗被消耗.最后,I/O功耗是用于驅(qū)動數(shù)據(jù)總線的功耗,現(xiàn)有的內(nèi)存功率模型研究發(fā)現(xiàn)影響內(nèi)存消耗的主要因素是內(nèi)存讀寫吞吐量[16].因此,想要知道內(nèi)存消耗的功率,除了直接通過儀器測量,也可以通過內(nèi)存的讀寫吞吐量建模獲取內(nèi)存實時功率.內(nèi)存本身并不是一個高能耗的組件,單獨的SDRAM芯片的功耗取決于很多因素,包括速度、使用類型、電壓等.4G大小的DDR3/1600 DIMM的內(nèi)存功率一般為2W~3W,此外還有功耗更低的DDR3L、DDR4內(nèi)存.但是在服務(wù)器上,由于使用的內(nèi)存條數(shù)較多,內(nèi)存功耗也比較可觀.

        3.3 影響磁盤功率的因素

        磁盤功率也是整機功耗的重要部分,特別是一些服務(wù)器擁有數(shù)目眾多的磁盤.磁盤功率主要由驅(qū)動盤片旋轉(zhuǎn)的電機功率、磁頭驅(qū)動電路和邏輯電路部分功率組成.當(dāng)磁盤沒有讀寫時,電機和邏輯電路仍然需要消耗電力來維持磁盤的運行,這部分功率被認(rèn)為是恒定的.當(dāng)磁盤空閑時,磁頭不尋找,一旦有讀寫操作,磁頭開始尋道并開始讀寫盤片,邏輯電路同時開始處理并傳輸數(shù)據(jù),這部分功率隨著不同的I/O操作而變化.一般來說,磁盤的利用率越高,功率就越高.

        4 整機功率建模過程

        4.1 基于利用率的整機功率模型PM1

        整機系統(tǒng)功率(P)由兩部分組成:靜態(tài)功率(Pstatic)和動態(tài)功率(Pdyn).因此有:

        P=Pstatic+Pdyn

        (2)

        本文主要考慮CPU、磁盤和內(nèi)存這三個部件,動態(tài)功率由這三部件在系統(tǒng)有負(fù)載運行時額外產(chǎn)生的功率:

        Pdyn=Pcpu+Pdisk+Pmem

        (3)

        注意,Pcpu、Pdisk、Pmem是指相應(yīng)部件的動態(tài)功率部分,靜態(tài)功率全部記入Pstatic中.

        能耗是功率與時間片乘積的積分,如果時間Δt時間片足夠小,可以看作功率與時間的乘積.在時間Δt內(nèi),CPU、磁盤和內(nèi)存分別運行了Δt1、Δt2和Δt3秒,則在這段時間Δt內(nèi),系統(tǒng)消耗能量P×Δt,這些部件消耗的動態(tài)能量分別為:Pcpu×Δt1、Pdisk×Δt2和Pmem×Δt3.故有:

        P×Δt=Pstatic×Δt+Pcpu×Δt1+Pdisk×Δt2+Pmem×Δt3

        (4)

        等式兩邊同除時間Δt,得到式(5):

        (5)

        根據(jù)組件的利用率定義,Ucpu=Δt1/Δt表示CPU在時間Δt內(nèi)的使用率,Udisk=Δt2/Δt表示磁盤的利用率,Umem=Δt3/Δt表示內(nèi)存的利用率.代入式(5)得到:

        P=Pstatic+Pcpu×Ucpu+Pdisk×Udisk+Pmem×Umem

        (6)

        將式(6)中Pcpu用α代替,Pdisk替換為β,Pmem替換為γ,并用S替換靜態(tài)功率Pstatic,得到功率模型(7)式.

        P=S+α×Ucpu+β×Udisk+γ×Umem

        (7)

        對于CMP單芯片多處理器,假設(shè)有n個內(nèi)核,每個內(nèi)核記為ci,i∈[1,n];最后得到如下的模型原型:

        (8)

        其中S為待測機的靜態(tài)功率,Uci表示第i個執(zhí)行核的利用率.假設(shè)各個核的執(zhí)行能力等價,則可以認(rèn)為每個核所對應(yīng)的系數(shù)αi相等,記為α.公式(8)即變?yōu)?/p>

        (9)

        稱為模型PM1,其中系數(shù)S、α、β和γ由多元線性回歸模型訓(xùn)練得到.

        4.2 基于性能事件、C-States與利用率的整機功率模型

        4.2.1 性能事件選擇

        由于系統(tǒng)中的所有活動都會產(chǎn)生一定的能量消耗,因此任何與之相關(guān)的性能事件都可以作為功率模型的輸入?yún)?shù).一般情況下,處理器都會提供至少幾十個性能事件,選取合適的性能事件是構(gòu)建功率模型面臨的首要問題.如果選擇的性能事件過多,會導(dǎo)致模型過分復(fù)雜,開銷大,并且不利于模型移植到其他平臺,因為選擇的性能事件多了,涉及到的非架構(gòu)兼容性的事件可能性也大了.反之,性能事件過少,信息不夠完全,可能不足以用來反映功率.同時也需要考慮性能事件之間的關(guān)聯(lián)性和性能事件存在冗余的情況.

        同時,當(dāng)監(jiān)測的性能事件個數(shù)超過性能計數(shù)器個數(shù)時,通過使用時分復(fù)用,以便每個事件都有機會訪問監(jiān)視硬件.在運行結(jié)束時,根據(jù)總的計數(shù)啟動時間與運行時間來縮放計數(shù)值.最終輸出的計數(shù)值為:

        Cfinal=Craw*Tenabled/Trunning

        (10)

        其中Cfinal為最終輸出的計數(shù)值,Craw為實際性能計數(shù)器獲取的計數(shù)值,Tenabled為性能計數(shù)器總的計數(shù)啟動時間,Trunning為性能計數(shù)器的運行時間.可見,監(jiān)測的性能事件越多,則每一個事件進(jìn)入性能計數(shù)器的時間越短,而最終縮放得到的計數(shù)值越不準(zhǔn)確,而數(shù)據(jù)的準(zhǔn)確性直接影響模型的準(zhǔn)確性.因此不能將所有的預(yù)定義事件進(jìn)行監(jiān)測,而應(yīng)當(dāng)選擇適當(dāng)?shù)男阅苁录?

        如何選擇用于建模的性能事件.首先本文通過公式(11)計算每個性能事件與功率之間的相關(guān)系數(shù),即皮爾遜相關(guān)系數(shù),計算所得的相關(guān)系數(shù)越接近0,表示兩者的相關(guān)性越差;越接近1,表示兩者的正相關(guān)性越好;越接近-1表示兩者的負(fù)相關(guān)性越好.約定皮爾遜相關(guān)系數(shù)絕對值小于0.3時相關(guān)性低,排除與功率相關(guān)性低的事件.

        (11)

        從剩余的性能事件中選取與功率密切相關(guān)的性能事件,得到用于建模的性能事件的初步選擇范圍.利用數(shù)據(jù)挖掘工具Weka進(jìn)行屬性選擇,使用子集評估器CfsSubsetEval和搜索算法BestFirst選擇性能事件集.在皮爾遜相關(guān)系數(shù)的基礎(chǔ)上進(jìn)一步使用子集特征選擇,是因為皮爾遜相關(guān)系數(shù)在特征選擇中屬于過濾(filter)方法,它關(guān)注單個特征屬性與目標(biāo)屬性的相關(guān)性,沒有考慮特征之間的相關(guān)性,可能存在冗余的特征;另外,某些屬性的組合可能達(dá)到最佳的回歸效果.目標(biāo)是使選擇的性能事件數(shù)與CPU提供的性能計數(shù)器數(shù)目大體一致,當(dāng)搜索算法BestFirst的搜索方向選擇為向后,指定在終止搜索之前允許的連續(xù)非改進(jìn)節(jié)點的數(shù)量為8時滿足目標(biāo),得到建模所用到的預(yù)定義性能事件如表 1所示,表左側(cè)為perf提供的預(yù)定義事件,表右側(cè)為預(yù)定義事件在Haswell架構(gòu)處理器中對應(yīng)的原生事件.英特爾在性能計數(shù)器中沒有包含明確的事件來區(qū)分對LLC的訪問,對于表格中的OFFCORE-RESPONSE原生事件,使用DMND-DATA-RD請求類型計算加載未命中數(shù),通過設(shè)置MSR寄存器的Response Supplier和Snoop Info字段,可以區(qū)分緩存命中和失敗[注]64-ia-32-architectures-optimization-manual[EB/OL]. http://www.intel.com /content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html. 2017 Nov..

        表1 建模所用到的性能事件
        Table 1 Performance events used in modeling

        事件原生事件cpu-cyclesCPU-CLK-UNHALTED.COREinstructionsINST-RETIRED.ANYbranch-instructionsBR-INST-RETIRED.ALL-BRANCHESbus-cyclesCPU-CLK-THREAD-UNHALTED.REF-XCLKL1-dcache-load-missesL1D.REPLACEMENTLLC-loadsOFFCORE-RESPONSELLC-load-missesOFFCORE-RESPONSE

        4.2.2 處理器與內(nèi)存功率模型

        由于內(nèi)存相關(guān)性能事件功率在整機功率中所占不大且變化不明顯(在下文所進(jìn)行的實驗中,內(nèi)存所占功率為整機功率的2%以下,內(nèi)存功率標(biāo)準(zhǔn)差為0.38W),因此,本文把處理器和內(nèi)存作為一個整體考慮,即

        (12)

        其中n為處理器核數(shù),向量ωi為每個處理器核每個性能事件對應(yīng)的待估參數(shù)向量,X為所選擇的性能事件計數(shù)向量,S為常量.假設(shè)各個核的執(zhí)行能力等價,那么可以認(rèn)為每個核所對應(yīng)的系數(shù)ωi相等,記為ω,令向量α表示nω.公式(12)可進(jìn)一步簡化為:

        Pcpu+Pmem=S+αTX

        (13)

        目前的處理器利用CPU功耗狀態(tài)C-States描述處理器當(dāng)前的功耗和熱管理狀態(tài),具體可分為C0到C*(*為整數(shù),取決于CPU類型),代表當(dāng)核心空閑時可以進(jìn)入的睡眠級別.C0狀態(tài)下CPU正常運行;CPU運行于更高的C狀態(tài)意味著消耗更低的功率,但從此狀態(tài)返回到C0需要更長延遲.處理器只有在空閑狀態(tài)下,才有可能進(jìn)入非C0的C-States.ACPI規(guī)范描述了C0-C3,但最近的CPU支持更多的C狀態(tài).以Haswell架構(gòu)的桌面Intel處理器為例,其擁有的各個C-States如表 2所示.

        當(dāng)處理器處于空閑狀態(tài)時,大部分時間都處于最深的C-States.Linux的內(nèi)核啟動參數(shù)intel-idle.max-cstate可以控制處理器可進(jìn)入的最深C-States,通過設(shè)置不同的intel-idle.max-cstate參數(shù),可得如圖 1所示的C-States與CPU功率的關(guān)系.可見,同樣在空閑狀態(tài)下,當(dāng)處理器處于不同的C-States時,其所消耗的功率不同,在實時功率建模過程中引入C-States十分有必要.需要注意的是,由于Linux內(nèi)核的限制,當(dāng)允許進(jìn)入最深的C-States為C6時,實際已經(jīng)啟用C7,此時CPU大部分時間實際處于C7狀態(tài).

        在采樣間隔內(nèi),進(jìn)入深層C-States的次數(shù)越多,處理器在該時間段的功率就越低.可以把處理器與內(nèi)存功率分為兩段,第一個階段為高功耗狀態(tài),此階段中在每個采樣間隔內(nèi)處理器基本都處于C0狀態(tài),處理器與內(nèi)存的功率模型只需要使用各個性能事件計數(shù)作為參數(shù);第二個階段為低功耗狀態(tài),此階段中在每個采樣間隔內(nèi)處理器有一定幾率進(jìn)入深層C-States,所以處理器與內(nèi)存的功率模型除了使用性能事件作為參數(shù),還需要使用各個C-States的計數(shù)作為額外的模型參數(shù).在實驗中,本文進(jìn)行計數(shù)的C-States為C3、C6、C7.根據(jù)以上分析,可以進(jìn)一步細(xì)化公式:

        (14)

        其中,C3,C6,C7=0表示處理器處于C0狀態(tài),這時處理器處于高功耗狀態(tài),而“其他”表示處理器有一定幾率進(jìn)入深層C-States,處理器有幾率進(jìn)入低功耗狀態(tài);S1、S2是模型在不同階段相應(yīng)的待估常量,用于反映靜態(tài)功率;向量α1、α2為模型不同階段對應(yīng)的待估參數(shù)向量;參數(shù)向量X1、X2為模型不同階段所選取的性能事件的計數(shù),兩者有所不同,如下所示:

        待估系數(shù)通過多元線性回歸方法獲得,由此構(gòu)建了基于性能事件與C-States的處理器和內(nèi)存實時功率模型.

        4.2.3 整機功率模型

        據(jù)前述,整機功率由靜態(tài)功率和動態(tài)功率組成,靜態(tài)功率由功耗儀測量所得,動態(tài)功率主要考慮處理器、磁盤和內(nèi)存執(zhí)行任務(wù)時額外產(chǎn)生的功率.由公式(9),磁盤功率為待估系數(shù)乘以磁盤的利用率βUdisk.因此,結(jié)合公式(14),最終整機功率可以表示為:

        (15)

        待估系數(shù)也是由多元線性回歸方法獲得.基于性能事件、C-States和部件利用率所構(gòu)建的整機實時功率模型稱為PM2.

        表2 C-States各個狀態(tài)
        Table 2 C-States states

        C-State名稱描述C0正常運行CPU完全打開并執(zhí)行指令,處于某個P-states狀態(tài)C1掛起CPU主內(nèi)部時鐘停止.總線接口單元和APIC全速運行.C3深度睡眠CPU內(nèi)部和外部時鐘停止,清空L1/L2緩存.C6深度節(jié)能核心狀態(tài)保存到內(nèi)存中.可以將CPU內(nèi)部電壓降低到任何值,包括0VC7更深度節(jié)能在C6基礎(chǔ)上同時清空L3緩存

        圖1 空閑狀態(tài)下C-States與CPU功率的關(guān)系Fig.1 Relations between C-States and CPU power in idle state

        5 實驗與評價

        5.1 實驗環(huán)境

        實驗中主機采用Intel Core i5-4590處理器、兩條DDR3 1600MHz 4GB 1600MHz內(nèi)存、西數(shù)5400轉(zhuǎn)1TB機械硬盤,Ubuntu 16.04系統(tǒng)作為實驗環(huán)境,并使用C語言實現(xiàn)模型架構(gòu).系統(tǒng)使用杭州遠(yuǎn)方光電信息股份有限公司的PF9808B數(shù)字功耗儀,搭建了實驗環(huán)境.為了避免功耗儀采樣程序?qū)嶒灥挠绊?功耗儀采樣程序在另一臺主機上運行,兩臺主機之間通過交換機相連,被測系統(tǒng)正常運行,監(jiān)控測量系統(tǒng)記錄采樣功率.其中,數(shù)字功耗儀以一秒為周期進(jìn)行采樣,監(jiān)控測量系統(tǒng)通過串口得到相應(yīng)數(shù)據(jù).此外在實驗中盡量保證在相同溫度時段開展實驗,減少其他因素對功耗模型的干擾.

        5.2 基于利用率的整機功率建模結(jié)果

        5.2.1 數(shù)據(jù)采集

        Linux中存在/proc與/sys目錄,他們是提供內(nèi)核統(tǒng)計信息的文件系統(tǒng)接口,包含許多目錄與文件./proc與/sys目錄由內(nèi)核動態(tài)創(chuàng)建,通過proc與sysfs文件系統(tǒng)直接在內(nèi)存中存儲,多數(shù)文件是只讀的,使用標(biāo)準(zhǔn)的POSIX文件系統(tǒng)調(diào)用即可訪問數(shù)據(jù).由于數(shù)據(jù)已經(jīng)由內(nèi)核計算出并在內(nèi)存中存儲著,因此讀取這些數(shù)據(jù)產(chǎn)生的開銷非常小.CPU利用率通過測量一段時間內(nèi)CPU忙于執(zhí)行負(fù)載的時間比例獲得,磁盤使用率可以通過某段時間內(nèi)磁盤運行工作的忙時間的比例計算得出,這些信息可以從proc與sysfs文件系統(tǒng)中獲取.

        5.2.2 訓(xùn)練集合與過程

        本文基于利用率構(gòu)建的整機功率模型主要針對數(shù)據(jù)庫系統(tǒng).針對數(shù)據(jù)庫常用四種連接算法,編寫人工負(fù)載用于產(chǎn)生模型的訓(xùn)練集.同時,為使模型具有普適性,考慮處理器同時執(zhí)行的內(nèi)核數(shù)對模型的影響,分別按照單核、雙核、三核以及四核運行模式構(gòu)建人工負(fù)載,且人工負(fù)載產(chǎn)生的CPU利用率在0-100%內(nèi)呈階梯分布.實驗中CPU頻率由intel-pstate驅(qū)動根據(jù)負(fù)載控制.鑒于數(shù)據(jù)庫連接操作的磁盤利用率都很高,實驗負(fù)載產(chǎn)生50%,75%與100%這幾種利用率.內(nèi)存負(fù)載不人為控制,僅由系統(tǒng)運行時自然產(chǎn)生.

        為了獲得足夠多、更穩(wěn)定的數(shù)據(jù),訓(xùn)練集合中的負(fù)載重復(fù)運行了10次,最后獲得10次訓(xùn)練聚合后的數(shù)據(jù),通過CPU利用率、磁盤利用率和整機實時功率,使用多元線性回歸模型訓(xùn)練就得到了利用率構(gòu)建的整機功率模型PM1為

        5.3 基于性能事件、C-States與利用率的整機功率模型

        5.3.1 數(shù)據(jù)采集

        在Linux下,有多種工具或庫可以用于性能計數(shù)器的采集,流行的有OProfile、PAPI、perf.本文采用perf[15]獲取性能事件.perf是Linux平臺下的性能分析工具,封裝了底層perf-events接口,向上層提供了豐富的功能:可以指定需要監(jiān)測的性能事件;提供線程級、core級、CPU級、系統(tǒng)級的事件計數(shù);可以指定監(jiān)測性能事件在用戶態(tài)、內(nèi)核態(tài)或兩者同時進(jìn)行監(jiān)控;當(dāng)監(jiān)測硬件性能事件多于性能計數(shù)器,自動通過時分復(fù)用繼續(xù)提供監(jiān)測,同時由于內(nèi)核開發(fā)者的良好設(shè)計與開發(fā),perf采樣時開銷很低.本文基于perf的用戶層工具代碼,增加了一些實驗需要的修改,以此作為數(shù)據(jù)采集程序.

        對于建模需要的處理器和內(nèi)存的功率,可以使用RAPL(Running Average Power Limit)[16]獲得,Intel處理器使用RAPL接口提供了目前的能源消耗量的測量,分為PKG、PP0、PP1、DRAM四個值,其分別代表整個處理器的能源消耗、所有核的能源消耗、核芯顯卡的能源消耗、內(nèi)存的能源消耗.存放于四個特殊的性能計數(shù)器中,可以直接通過perf讀取.使用RAPL獲取的功率值具有較為良好的準(zhǔn)確性,但該方案目前還沒有完全普及,有些處理器不具有能量寄存器,不支持該功能.

        Intel處理器提供兩類MSR寄存器:MSR-CORE-C*-RESIDENCY用于計數(shù)每個物理內(nèi)核處于特定C-State的計數(shù);MSR-PKG-C*-RESIDENCY用于計數(shù)每個物理封裝處于特定C-State的計數(shù)1,其中C*為特定的C-States,可以使用perf直接讀取該MSR寄存器,由于實驗機只有一個處理器,本文只關(guān)心前一個計數(shù).

        本文使用功耗儀采集整機系統(tǒng)的功率值,使用RAPL采集處理器和內(nèi)存部分的實時功率,使用perf采集性能事件與C-States計數(shù),本文由于需要獲得整機的實時功率,因此同時監(jiān)測性能事件處于用戶態(tài)和內(nèi)核態(tài)的計數(shù).

        5.3.2 訓(xùn)練集合與過程

        本文所構(gòu)建的基于性能事件、C-States和利用率的功率模型獨立于具體負(fù)載,為此選用了SPEC CPU2006[17]作為處理器基準(zhǔn)測試.SPEC CPU2006基準(zhǔn)測試是一個標(biāo)準(zhǔn)的測試集合,包括SPECint整型數(shù)測試和SPECfp浮點數(shù)測試,共31項測試.各種測試可以模擬處理器遇到的各種情景.SPEC CPU2006是計算密集型負(fù)載,可以適應(yīng)處理器和內(nèi)存功率模型的訓(xùn)練,對于磁盤功率模型部分,需要增加I/O密集型的訓(xùn)練集合,同樣在模型PM2上,也使用了按照單核、雙核、三核以及四核運行,CPU利用率在0-100%內(nèi)呈階梯分布,I/O利用率在 50%,75%與100%分布的人工負(fù)載.

        同基于利用率的整機功率模型的訓(xùn)練過程一樣,為了獲得足夠多、更穩(wěn)定的數(shù)據(jù),訓(xùn)練集合中的I/O密集型的負(fù)載重復(fù)運行了10次,而SPEC CPU2006在運行過程中,每個測試項目運行的次數(shù)被配置為3次,通過程序匯總性能事件的計數(shù)值、C-States計數(shù)與對應(yīng)的處理器與內(nèi)存功率值或整機功率值后,本文使用多元線性回歸計算出模型PM2公式(16)的待估參數(shù)、待估常量如下所示.

        S1=11.6157854129S2=2.15105333269

        β1=3.06718196e-03β1=6.45502333e-03.

        5.4 測試集合

        為了驗證兩種功率模型的準(zhǔn)確性,本文使用了與訓(xùn)練集合不相交的程序作為測試集合.基于利用率的整機系統(tǒng)實時功率模型是針對數(shù)據(jù)庫系統(tǒng)的,而結(jié)合性能事件和利用率的整機系統(tǒng)實時功率模型是通用型的,本文將比較這兩類模型對塊嵌套循環(huán)連接算法(BNL)、排序歸并連接算法(SMJ)、Grace哈希連接算法(GHJ)、混合哈希連接算法(HHJ)這四類連接算法的估測情況,同時使用Eureqa與TPC-H負(fù)載對結(jié)合性能事件和利用率的模型進(jìn)行驗證.Eureqa使用進(jìn)化搜索來確定以最簡單的形式描述數(shù)據(jù)集的數(shù)學(xué)方程式,是計算密集型負(fù)載.TPC-H基準(zhǔn)測試旨在衡量數(shù)據(jù)倉庫工作負(fù)載的性能,同時屬于計算密集型和I/O密集型負(fù)載.在實驗中,TPC-H的查詢運行在PostgreSQL數(shù)據(jù)庫上,比例因子設(shè)為100,即所有表的數(shù)據(jù)量為100GB,TPC-H基準(zhǔn)測試提供了22條查詢,實驗選取了查詢時間較短的查詢Q14、Q19和查詢時間較長的查詢Q1、Q2、Q5與Q21.

        5.5 實驗結(jié)果比較

        表3表示兩類整機功率模型對各種負(fù)載功率估測的相對誤差.在所進(jìn)行的所有實驗中,基于性能事件與C-States的處理器與內(nèi)存功率模型一致優(yōu)于基于性能事件的處理器與內(nèi)存功率模型,實驗表明加入C-States狀態(tài)計數(shù)確實提高了功率模型的準(zhǔn)確性.對于整機功率模型,總體來說,模型PM2對數(shù)據(jù)庫系統(tǒng)構(gòu)建的模型和通用型的模型都有著良好的準(zhǔn)確性,絕大部分情況均優(yōu)于模型PM1.從表3看出,在處理器與內(nèi)存功率模型方面,對于四類連接算法,其在加入C-States后,預(yù)測準(zhǔn)確性有提升,最高提升值1%,對Eureqa以及TPC-H查詢而言,加入C-States后,預(yù)測準(zhǔn)確性最高提升值為5%;而在整機模型方面,其準(zhǔn)確性除了SMJ算法中PM2略遜色之外,對于其余算法模型PM2均不同程度優(yōu)于PM1,最高提升超過7%.

        表3 各模型對幾種測試負(fù)載的相對誤差表
        Table 3 Relative error for models against several test loads

        平均相對誤差(單位:%)處理器與內(nèi)存功率模型Pcpu+Pmem整機功率模型基于性能事件基于性能事件與C-StatesPM1PM2連接算法BNLHHJGHJSMJ1.62.72.22.81.12.51.71.99.95.110.36.98.94.89.67.0Eureqa1.91.56.04.9TPC-HQ12.82.67.65.9TPC-HQ27.42.912.67.8TPC-HQ57.32.113.78.2TPC-HQ144.02.710.69.0TPC-HQ193.32.68.66.6TPC-HQ216.52.514.37.5

        圖2 功率模型估測圖Fig.2 Predicted vs measured power

        圖2(a-d)描繪了四類連接算法在運行過程中的功率測量值和模型PM2估測值的關(guān)系.圖2(e-h)描繪了Eureqa和TPC-H基準(zhǔn)在運行過程中的功率測量值和模型PM2估測值的關(guān)系.圖2(h)是Eureqa運行時的功率估測圖,同時觀察表3可以發(fā)現(xiàn),對于Eureqa這種CPU密集型的計算,所選性能事件已經(jīng)可以非常準(zhǔn)確地對處理器與內(nèi)存功率建模,相對誤差不到2%;但在整機模型中,模型PM2估測準(zhǔn)確性優(yōu)于PM1,仍有約5%的相對誤差.圖2(e-g)呈現(xiàn)的是三個TPC-H基準(zhǔn)查詢在PostgreSQL數(shù)據(jù)庫系統(tǒng)中運行時的模型PM2功率估測圖.其中圖2(f)為查詢時間較短的查詢Q14,圖2(e)和圖2(g)為兩個查詢時間較長的查詢Q5和Q21.觀察表3可以發(fā)現(xiàn),對于TPC-H負(fù)載,加入C-States后處理器與內(nèi)存功率模型的提升非常大,在整機模型中,模型PM2估測準(zhǔn)確性也都優(yōu)于PM1.同時從圖2(a-h)中可以發(fā)現(xiàn)有時因不可預(yù)知因素(如底層操作系統(tǒng)進(jìn)程等任務(wù))的影響,個別點的功耗會產(chǎn)生突變,導(dǎo)致改點絕對誤差變大.

        6 結(jié)束語

        本文構(gòu)建了兩種整機系統(tǒng)實時功率模型.本文使用了真實系統(tǒng)Eureqa建模和PosgreSQL系統(tǒng)運行TPC-H負(fù)載對兩種功率模型進(jìn)行驗證,其中結(jié)合性能事件、C-States和利用率的通用整機功率模型優(yōu)于基于利用率與處理器核頻率所建模型.在今后的工作中,為了進(jìn)一步提高整機系統(tǒng)實時功率模型的精度,可以考慮在CPU、內(nèi)存和磁盤外增加其他部件的功率模型,比如電源、網(wǎng)絡(luò)、主板和風(fēng)扇.

        猜你喜歡
        磁盤計數(shù)器功耗
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        解決Windows磁盤簽名沖突
        電腦愛好者(2019年2期)2019-10-30 03:45:31
        修改磁盤屬性
        磁盤組群組及iSCSI Target設(shè)置
        揭開GPU功耗的面紗
        個人電腦(2016年12期)2017-02-13 15:24:40
        創(chuàng)建VSAN群集
        數(shù)字電路功耗的分析及優(yōu)化
        電子制作(2016年19期)2016-08-24 07:49:54
        計數(shù)器競爭冒險及其處理的仿真分析
        “功耗”說了算 MCU Cortex-M系列占優(yōu)
        電子世界(2015年22期)2015-12-29 02:49:44
        IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
        亚洲熟女精品中文字幕| 亚洲AV无码久久久久调教| 在线播放偷拍一区二区| 插入日本少妇一区二区三区| 狠狠色综合7777久夜色撩人ⅰ| 亚洲人成网站77777在线观看| 国产精品一区二区午夜久久| 亚洲一区二区三区日韩在线观看| 国产无套粉嫩白浆在线观看| 又污又黄又无遮挡的网站| 亚洲AV小说在线观看| av网页免费在线观看| 97日日碰曰曰摸日日澡| 人妻人人澡人人添人人爽人人玩| 精品国产日韩无 影视| 日本一二三区免费在线| 久久精品欧美日韩精品| 欧美成人久久久免费播放| av成人资源在线播放| 一区二区三区美女免费视频| 青草视频在线播放| 国产成人av在线影院无毒| 中文字幕人妻精品一区| 国产日韩精品欧美一区喷水| 日本丶国产丶欧美色综合| 久久久亚洲日本精品一区| 中国一级黄色片久久久| 亚洲熟女乱色综合亚洲图片| 亚洲国产成人手机在线电影| av一区二区三区观看| 人妻洗澡被强公日日澡电影 | 亚洲欧美日韩综合一区二区| 在线播放无码高潮的视频| 久久久99久久久国产自输拍| 国产一区二区黄色网页| 免费1级做爰片1000部视频| 中文字幕大屁股熟女乱| 日本一区二区三区在线视频播放| 男人女人做爽爽18禁网站| 亚洲国产毛片| 日本加勒比一区二区在线观看|