国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

1 引 言

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

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

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

2 相關工作

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

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

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

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

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

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

3 功率模型的理論分析

3.1 影響CPU功率的因素

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

(1)

3.2 影響內存功率的因素

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

3.3 影響磁盤功率的因素

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

4 整機功率建模過程

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

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

P=Pstatic+Pdyn

(2)

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

Pdyn=Pcpu+Pdisk+Pmem

(3)

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

能耗是功率與時間片乘積的積分,如果時間Δt時間片足夠小,可以看作功率與時間的乘積.在時間Δt內,CPU、磁盤和內存分別運行了Δt1、Δt2和Δt3秒,則在這段時間Δt內,系統(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內的使用率,Udisk=Δt2/Δt表示磁盤的利用率,Umem=Δt3/Δt表示內存的利用率.代入式(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單芯片多處理器,假設有n個內核,每個內核記為ci,i∈[1,n];最后得到如下的模型原型:

(8)

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

(9)

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

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

4.2.1 性能事件選擇

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

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

Cfinal=Craw*Tenabled/Trunning

(10)

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

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

(11)

從剩余的性能事件中選取與功率密切相關的性能事件,得到用于建模的性能事件的初步選擇范圍.利用數(shù)據(jù)挖掘工具Weka進行屬性選擇,使用子集評估器CfsSubsetEval和搜索算法BestFirst選擇性能事件集.在皮爾遜相關系數(shù)的基礎上進一步使用子集特征選擇,是因為皮爾遜相關系數(shù)在特征選擇中屬于過濾(filter)方法,它關注單個特征屬性與目標屬性的相關性,沒有考慮特征之間的相關性,可能存在冗余的特征;另外,某些屬性的組合可能達到最佳的回歸效果.目標是使選擇的性能事件數(shù)與CPU提供的性能計數(shù)器數(shù)目大體一致,當搜索算法BestFirst的搜索方向選擇為向后,指定在終止搜索之前允許的連續(xù)非改進節(jié)點的數(shù)量為8時滿足目標,得到建模所用到的預定義性能事件如表 1所示,表左側為perf提供的預定義事件,表右側為預定義事件在Haswell架構處理器中對應的原生事件.英特爾在性能計數(shù)器中沒有包含明確的事件來區(qū)分對LLC的訪問,對于表格中的OFFCORE-RESPONSE原生事件,使用DMND-DATA-RD請求類型計算加載未命中數(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 處理器與內存功率模型

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

(12)

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

Pcpu+Pmem=S+αTX

(13)

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

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

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

(14)

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

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

4.2.3 整機功率模型

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

(15)

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

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

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

圖1 空閑狀態(tài)下C-States與CPU功率的關系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內存、西數(shù)5400轉1TB機械硬盤,Ubuntu 16.04系統(tǒng)作為實驗環(huán)境,并使用C語言實現(xiàn)模型架構.系統(tǒng)使用杭州遠方光電信息股份有限公司的PF9808B數(shù)字功耗儀,搭建了實驗環(huán)境.為了避免功耗儀采樣程序對實驗的影響,功耗儀采樣程序在另一臺主機上運行,兩臺主機之間通過交換機相連,被測系統(tǒng)正常運行,監(jiān)控測量系統(tǒng)記錄采樣功率.其中,數(shù)字功耗儀以一秒為周期進行采樣,監(jiān)控測量系統(tǒng)通過串口得到相應數(shù)據(jù).此外在實驗中盡量保證在相同溫度時段開展實驗,減少其他因素對功耗模型的干擾.

5.2 基于利用率的整機功率建模結果

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

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

5.2.2 訓練集合與過程

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

為了獲得足夠多、更穩(wěn)定的數(shù)據(jù),訓練集合中的負載重復運行了10次,最后獲得10次訓練聚合后的數(shù)據(jù),通過CPU利用率、磁盤利用率和整機實時功率,使用多元線性回歸模型訓練就得到了利用率構建的整機功率模型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)、內核態(tài)或兩者同時進行監(jiān)控;當監(jiān)測硬件性能事件多于性能計數(shù)器,自動通過時分復用繼續(xù)提供監(jiān)測,同時由于內核開發(fā)者的良好設計與開發(fā),perf采樣時開銷很低.本文基于perf的用戶層工具代碼,增加了一些實驗需要的修改,以此作為數(shù)據(jù)采集程序.

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

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

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

5.3.2 訓練集合與過程

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

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

S1=11.6157854129S2=2.15105333269

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

5.4 測試集合

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

5.5 實驗結果比較

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

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

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

6 結束語

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

猜你喜歡
磁盤計數(shù)器功耗
采用虛擬計數(shù)器的電子式膜式燃氣表
煤氣與熱力(2022年2期)2022-03-09 06:29:30
解決Windows磁盤簽名沖突
電腦愛好者(2019年2期)2019-10-30 03:45:31
修改磁盤屬性
磁盤組群組及iSCSI Target設置
揭開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變換器中的功耗分析
電源技術(2015年11期)2015-08-22 08:51:02
女性| 平武县| 甘孜| 安义县| 高邮市| 花莲市| 文登市| 阳原县| 邻水| 华蓥市| 昭苏县| 杭州市| 老河口市| 镇康县| 澄江县| 汾阳市| 常山县| 高要市| 美姑县| 元谋县| 澄江县| 安岳县| 济源市| 九江市| 大冶市| 通许县| 洪湖市| 西盟| 东方市| 龙游县| 沙湾县| 徐州市| 库车县| 瑞金市| 碌曲县| 临城县| 杭州市| 延吉市| 敖汉旗| 津南区| 甘德县|