劉 霖 ,王東光, 鄧見光
(1. 湖南人文科技學(xué)院 計算機科學(xué)與技術(shù)系,湖南 婁底 417000;2.東莞理工學(xué)院 工程研究所,廣東 東莞 523808)
溫室效應(yīng)的加劇以及服務(wù)器持續(xù)增長的能耗使節(jié)能成為研究的熱點[1]。高性能服務(wù)器通常采用多CPU,CPU工作時產(chǎn)生大量的熱量影響系統(tǒng)的穩(wěn)定同時引起能耗增加,造成性能下降[2]849-852,為了維持服務(wù)器的工作需要冷卻系統(tǒng)把產(chǎn)生的熱量帶走。
風(fēng)扇冷卻系統(tǒng)是服務(wù)器中廣泛使用的冷卻方案,它使用對流傳熱原理,通過溫度傳感器調(diào)節(jié)風(fēng)扇轉(zhuǎn)速而帶走服務(wù)器產(chǎn)生的熱量維持系統(tǒng)工作穩(wěn)定,風(fēng)冷系統(tǒng)中風(fēng)扇的轉(zhuǎn)速與功耗成立方關(guān)系[3],高端服務(wù)器中風(fēng)扇消耗的能量已經(jīng)超過服務(wù)器總能耗,統(tǒng)計表明達到51%以上[4],如IU機架服務(wù)器達到80w, 2U機架服務(wù)器上風(fēng)扇消耗達到240W,同時不斷增加的風(fēng)扇轉(zhuǎn)速造成了工作環(huán)境中的噪音與機器的震動,故使用某種方式在不影響服務(wù)器性能的條件下優(yōu)化風(fēng)扇冷系統(tǒng)具有積極的意義。
操作系統(tǒng)(OS)通常使用動態(tài)負載平衡策略(DLB)動態(tài)遷移線程均衡任務(wù)后高效利用資源[5],但此方法未考慮熱量分布,造成了各個內(nèi)核熱量分布的不均勻性,加大了冷卻開支。
為了進行溫度控制,動態(tài)熱量管理(DTM)被廣泛關(guān)注,reactive技術(shù)使用一個溫度門限值,通過此門限值控制風(fēng)扇轉(zhuǎn)速,不過此技術(shù)功耗效率不高,文獻[6]提出了溫度預(yù)測遷移技術(shù),它們能預(yù)先預(yù)測溫度發(fā)生與遷移情況,雖然此方法相對準確但適應(yīng)性學(xué)習(xí)期間不能進行預(yù)測,同時此技術(shù)為單CPU設(shè)計并且動態(tài)冷卻沒有足夠精確的被模擬。本文使用一種全新的溫度預(yù)測原理,快速而準確的進行溫度預(yù)測,提出一個多層預(yù)測負載調(diào)度算法,克服傳統(tǒng)DTM的不足,在不影響服務(wù)器工作前提下顯著降低系統(tǒng)能耗。
風(fēng)扇冷卻過程中帶走的熱量隨風(fēng)扇的轉(zhuǎn)速增加而增加,風(fēng)速轉(zhuǎn)速與其消耗的能量成指數(shù)級關(guān)系,因此為了更好的節(jié)省能耗,希望CPU中熱量產(chǎn)生的比較平衡,同時在CPU內(nèi)部熱量分布同樣比較均衡,這樣能使風(fēng)扇平均轉(zhuǎn)速較少冷卻系統(tǒng)消耗更少的能量。執(zhí)行這些優(yōu)化需要在socket間進行智能化的工作分派,也能減少溫度通過在熱核與冷核間進行負載遷移,因此本案優(yōu)化風(fēng)扇能耗的原理是在內(nèi)核級與socket級間進行基于熱量的任務(wù)調(diào)配,從而使熱量平衡分布,最大限度的平均風(fēng)扇轉(zhuǎn)速,在不影響系統(tǒng)性能的情況下以較低的冷卻能耗去維持系統(tǒng)正常工作。
1. socket 級優(yōu)化
在socket級管理工作調(diào)度,在每一個調(diào)度期間收集溫度,性能,風(fēng)扇轉(zhuǎn)速等信息,通過均衡技術(shù)與微調(diào)技術(shù)而降低風(fēng)扇的轉(zhuǎn)速。
均衡技術(shù)的目標在平衡socket間的功耗不平衡性,使socket間的溫度平衡產(chǎn)生一個更統(tǒng)一的風(fēng)扇速度分布;微調(diào)技術(shù)目的是當負載基本平衡時在小范圍內(nèi)的子集內(nèi)進行負載調(diào)度而消除熱子集從而使風(fēng)扇的平均轉(zhuǎn)速最小而降低能耗。
2. 內(nèi)核級優(yōu)化
內(nèi)核級減少單個套接件的溫度,內(nèi)核級策略使用預(yù)先熱量管理,使用一種新的溫度預(yù)測方法具有預(yù)測代價低準確度高等優(yōu)點,依據(jù)預(yù)測的結(jié)果把線程從熱點遷移到最冷內(nèi)核,這樣平衡了各個內(nèi)核之間的溫度。它們由操作系統(tǒng)進行調(diào)度,調(diào)度時間在毫秒級之間,因此相對于高級調(diào)度時間可以忽略不計,對系統(tǒng)的穩(wěn)定性沒有影響。
圖1 內(nèi)核級調(diào)度原理
溫度的預(yù)測使用異于傳統(tǒng)的新方法,傳統(tǒng)方法基于時域,對性能產(chǎn)生影響,我們的方法使用的是熱量與頻譜固有的物理規(guī)律進行溫度預(yù)測,因此預(yù)測方法對工作集來說是獨立的,預(yù)測參數(shù)能在設(shè)計階段被精確的估計出來,并且進行預(yù)測時幾乎不要額外的代價。操作系統(tǒng)中執(zhí)行的內(nèi)核級線程遷移開支僅僅只有微秒級,比處理器為了節(jié)能而進入低能耗狀態(tài)微小的多,遷移費用主要來自線程狀態(tài)的轉(zhuǎn)換與私有cache的準備。
1. 溫度預(yù)測
溫度預(yù)測是內(nèi)核級調(diào)度的基礎(chǔ),溫度預(yù)測器的基本思想是有限帶寬信號與熱量存在固有的關(guān)系,只要求出預(yù)測系數(shù),就能方便預(yù)測出對應(yīng)工作產(chǎn)生的熱量,在設(shè)計階段求出預(yù)測系數(shù)或者使用自適應(yīng)函數(shù)[7]可以預(yù)先得到熱量分布情況。
使用電功原理可知溫度能模擬成一個RC網(wǎng)絡(luò)[8],單個模具組件的溫度能被模擬成一個簡單的低通RC過濾熱阻,連接到相鄰單元,溫度頻譜范圍可以通過RC網(wǎng)絡(luò)分析或者計算機輔助設(shè)計工具進行計算。對于高端CPU可以忽略水平熱阻的影響而進行簡化處理,因為它們的值比水平值高很多[9],溫度頻譜范圍可以模擬成如下形式:
(1)
其中T(ω)代表的是角頻率的函數(shù),τc是等于RC的內(nèi)核溫度常數(shù),給定溫度下是一個低能濾波器,它滿足有限帶寬限制條件,文獻[10]88-91指出帶限信號能用如下的線性方程進行預(yù)測:
(2)
an是預(yù)測系數(shù),tn代表的是第n個時間點,N代表樣本數(shù)為N,在均勻采樣的條件下,如果用ds表示采樣間隔,那么有tn=t-nds,為了能進行預(yù)測應(yīng)用,估計誤差必須足夠的小,使佩利-維納定理與施瓦茨公式誤差的邊界可以由(4)進行表示。
(3)
(4)
(5)
(4)中f是頻率,W是赫茲頻率帶寬。等式第一部分代表信號能量,第二部分是預(yù)測誤差和,(4)可以寫成如下形式:
ε2≤x2εIεI是誤差,x2是信號能量
誤差積分代表的是一個預(yù)測系數(shù)的N維函數(shù)E(a1,a2,…,aN)通過最小化εI能得到BLP系數(shù),為了得到優(yōu)化系數(shù),使用特征向量優(yōu)化方法,文獻[11]指出誤差積分部分可以表示成如下的形式:
εI=vTΩv
(6)
V是一個有N+1個元素的向量,為了滿足此式,向量V須有第一個元素v1=1,矩陣Ω可以表示為:
B是一個N個組件的向量,D是一個N(N矩陣,b與D能通過最小化誤差而得到[12],對于誤差系統(tǒng)方程如下:
S(t)=sinc(2Wt)。sinc(t)是偶函數(shù)所以矩陣Ω是對稱的,矩陣是正定的故所有特征值也是正數(shù),最小預(yù)測誤差下的優(yōu)化預(yù)測系數(shù)能得到,通過最小化的vTΩv在所有可能的向量空間中的v1=1, 對于這個歸一化長度為一的特征向量集,矩陣Ω的最小特征值決定了這個向量,設(shè)V為對應(yīng)最小特征值的特征向量,對于此選擇的特征向量有vTΩv等于最小的特征值,規(guī)一化特征向量,依特征化向量的定義有vnor=v/v1,有預(yù)測系數(shù)為:
ai=vnormi+1
(7)
(7)指出了預(yù)測系數(shù)只與信號帶寬有關(guān),對于無效分布的例子,預(yù)測上界dP能夠通過奈奎斯特條件得到有2dpW<1,溫度的頻譜帶寬依據(jù)的是τc,提取τc可以簡單地在設(shè)計時得到使用的芯片布局和封裝的熱參數(shù)[2]852-861。
文獻[10]88-93給出了預(yù)測距離ds的計算方法與證明。整個溫度預(yù)算的流程是在設(shè)計過程中使用(7)計算設(shè)計系數(shù),收集進行溫度預(yù)測的樣本點并且應(yīng)用方程(2)進行溫度預(yù)測,因為計算預(yù)測多項式的時間可以在幾個指令周期完成,因此可以認為預(yù)測的開支可以忽略不計。
2. 內(nèi)核級預(yù)測管理(CPTM)
使用基于預(yù)測器得到的溫度預(yù)測進行工作遷移,把熱點內(nèi)核的工作遷移到冷內(nèi)核。遷移的啟動由熱核的預(yù)測溫度門限值與冷熱核溫度差決定。如果冷核也在執(zhí)行過程中,在冷核與熱核之間進行任務(wù)交換。對于即將到來的工作負載,策略使用預(yù)測結(jié)果找到可用的冷核并分派它進行使用,算法偽碼描述如算法1:
Algorithm 1: CPTM
計算所有內(nèi)核熱量T,記最大為Tmax,最小為Tmin
While(未標記的內(nèi)核數(shù)>1 and Tmax>Tcand 溫度差
大于門限值)do
預(yù)測最熱內(nèi)核corehot
預(yù)測最冷內(nèi)核corecold
If 最冷內(nèi)核為空閑狀態(tài)then
遷移最熱內(nèi)核到最冷內(nèi)核并做標記
Else
交換最熱內(nèi)核與最冷內(nèi)核并標記
Endif
從沒有標記的內(nèi)核中重新找出Tmax,Tmin
Endwhile
把新任務(wù)指派給能用的最冷內(nèi)核
本級調(diào)度的目的是希望各CPU有均衡的溫度分布,由兩部分組成:平衡與微調(diào)。
1. socket級冷卻子系統(tǒng)
冷卻子系統(tǒng)能通過智能化的在CPU各個socket之間分配任務(wù)而降低能耗。
有兩種類型的情況,如果是多個socket之間的消耗的功率不平衡,進行平衡調(diào)度節(jié)省能耗時被稱為“平衡”(blance);不妨假設(shè)socket1處的冷卻氣流是socket2氣流的兩倍,為了降低平均空氣流速,從Socket2中交換兩個中等規(guī)模的線程與socket1中的最熱線程進行交換,因為新移進來的熱線程與已經(jīng)存在的最熱線程功耗相當,所以并不會增加Socket1的最高溫度,但是會降低Socket1的平均溫度,因為消耗的總功耗在減少,我們把這類調(diào)度稱為微調(diào)策略。(consolidation)
2. 狀態(tài)空間控制器與調(diào)度
調(diào)度的第一個階段主要是在不同的CPU之間進行負載調(diào)度以保證各個CPU消耗的功耗盡量相當。通過平衡風(fēng)扇轉(zhuǎn)速,風(fēng)扇轉(zhuǎn)速與能耗成立方關(guān)系,從而可以使風(fēng)扇消耗的功耗變小。如果用ccost表示風(fēng)扇消耗的功耗與平均功耗之差,那么有如下關(guān)系式:
(8)
為了設(shè)計控制器,對CPU在特定時間與環(huán)境溫度瞬時值有如下關(guān)系:
(9)
其中τca為時間常數(shù),pcpu(t)代表的是時刻t的瞬間CPU功耗,對于多個CPU對于上式進行向量化有:
(10)
其中Y,Z均為對角矩陣,其對角元素分別對應(yīng)于(6)中的分母值的具體化,持續(xù)系統(tǒng)可以用如下的離散化等式進行描述:
(11)
反饋控制控制規(guī)則可以表示成為:
Pcpu(k)=-GTca(k)+G0Tref(k)
(12)
此處Tref為目標溫度
Tref的計算可以通過基于當前風(fēng)扇轉(zhuǎn)速與目標風(fēng)扇轉(zhuǎn)速的差異而得到,Tref由兩部分組成:
Trefi(k)=Tcai(k)+ΔTcai(k)
(13)
Tca通過附著在散熱器上的傳感器得到,ΔTca代表了當前風(fēng)扇轉(zhuǎn)速與目標轉(zhuǎn)速,即環(huán)境熱阻,因此可以由歐姆定理方便的進行估計,因此最后的結(jié)果可表示為:
(14)
通過對(11)的進一步計算可以得到每個CPU狀態(tài)空間時間常數(shù)為:
(15)
此式說明瞬時時間是采樣時間與控制特征值λi的函數(shù),因為散熱器的溫度變化比較慢,因此時間常數(shù)可以設(shè)置在秒級的范圍內(nèi),從而使控制變的平穩(wěn)而有效。
3. CPU socket級調(diào)度策略(SLS)
用ΔPCPU表示功耗差,Pthr表示線程在CPU的功耗,Smin表示的是一個門限值,算法描述如下:
Algorithm 2:socket level scheduling
計算每個cpu對應(yīng)的ΔPCPU、Pthr、設(shè)置空隊列Q
負載均衡
for i 在未標注的cpu集中do
for j 在第i個CPU中的線程執(zhí)行
dest←最大的ΔPcpu的標記索引值
if Pthrj<-ΔPcpuior Pthrj<ΔPdestthen
If CPUdest有閑內(nèi)核且無內(nèi)核級遷移 then
計算遷移線程j到CPUdest后節(jié)能值
Else
把j線程與與CPUdest中未標記的最冷線程交換并計算冷卻系統(tǒng)節(jié)省的能量
Endif
If 冷卻系統(tǒng)節(jié)能大于Smin那么
此遷移事件記錄在隊列Q中并且標記
遷移線程
更新ΔPcpu與線程指派
標記CPU i 和dest
End if
End if
End for
End for
微調(diào)策略如下:
While ( 未標記的CPU數(shù)大于一時) do
h←最大風(fēng)扇轉(zhuǎn)速的未標記的CPU的索引
if (風(fēng)扇有不同的速度) then
L←主風(fēng)扇對應(yīng)的未標記的CPU的索引
Else
L←未標記的CPU中除去H后的索引
End if
在L對應(yīng)的CPU中找到最熱的線程hl;
從H中找出找出所有線程功耗小于Phl的線程組成一個最小線程集(Scool),此集的總功耗大于最熱線程消耗的功耗,然后標記此CPU;
If Scool集非空 then
計算從Scool中線程與hl線程交換后冷卻系統(tǒng)節(jié)省的能耗
If 節(jié)省的能耗大于Sminthen
此遷移事件記入隊列Q中,標記L對應(yīng)的CPU,更新線程指派
End if
End if
End while
執(zhí)行隊列Q中的所有遷移事件。
為了驗證內(nèi)核級方法(CPTM)的效果,在單一socket中執(zhí)行混合負載,設(shè)置本地環(huán)境溫度為攝氏42度,用CRTM,DLB策略與新方案進行比較,實驗結(jié)果如下(圖2):
圖2 CPTM測試
有如下結(jié)論:CPTM策略優(yōu)于CRTM超過傳統(tǒng)的策略,平均節(jié)能達到DLB的56%,由減少風(fēng)扇轉(zhuǎn)速而得到。冷卻系統(tǒng)在負載較輕時以及負載差異較大時冷卻風(fēng)扇節(jié)能優(yōu)化效果更明顯,因為在低負載時有更多的冷內(nèi)核用于平衡熱內(nèi)核的分布,如在處理器利用率50%的2bzip2基準測試中新方案的冷卻系統(tǒng)優(yōu)化達到95%;組合負載2eon+mcf代表的是CPU密集型與存儲器密集型負載集,當他們的負載達到75%時新方案冷卻優(yōu)化能達到93.3%;2perl+2eon組合代表的是CPU密集型負載,因為內(nèi)核基本處于工作狀態(tài),此時冷卻系統(tǒng)能耗基本沒有得到優(yōu)化。據(jù)此CPTM達到預(yù)期優(yōu)化效果。
把內(nèi)核級與socket 級調(diào)試綜合稱為MTTM,為了檢驗其效果使用有各種溫度分布與線程利用率的工作集組合(表1)。
表1 實驗工作集
為了評估MTTM的效果使用各種熱量值與CPU利用率不同的基準測試集組合成復(fù)合負載進行測試,參與實驗的策略是CRTM, CPTM, MTTM與經(jīng)典DLB策略進行比較,實驗結(jié)果(圖3)。
圖3 MTTM策略測試
有如下結(jié)論:本方案對冷卻系統(tǒng)的能耗節(jié)省超過其它方案,并且明顯效果優(yōu)秀;平均改善情況超過DLB達到80%,主要原因是來自于socket級的平衡調(diào)度與微調(diào)策略以及內(nèi)核級的主動線程遷移。實驗結(jié)果中的W5工作集由于工作集在Socket之間的遷移,負載socketA有較高的功耗密度而SocketB保持的是中等功耗密度,此時只通過單純的內(nèi)核級線程遷移不足以產(chǎn)生冷卻能耗的節(jié)省,但在兩個socket之間進行平衡調(diào)度能平衡溫度分布,因此節(jié)省58%的冷卻能耗;而W8與W9對能耗的貢獻主要來源于微調(diào)作用,在W8新策略用兩個gcc 與perl進行交換,當socket級調(diào)度不再有作用時微調(diào)發(fā)揮作用而降低冷卻系統(tǒng)的能耗。
高端服務(wù)器產(chǎn)生了大量的熱量,冷卻系統(tǒng)需要消耗大量的能量以維持服務(wù)器正常工作的環(huán)境,已有的研究通常針對單一Socket情況并且沒有對冷卻系統(tǒng)動態(tài)能耗控制進行精確模擬或者提供冷卻優(yōu)化時以犧牲服務(wù)器性能為代價。本文提出一種多層次的工作調(diào)度策略,通過此策略在多Socket CPU平臺上平衡熱量分布,降低最高溫度的出現(xiàn),從而減少風(fēng)扇轉(zhuǎn)速而降低能耗,同時基于帶寬與熱量的規(guī)律提出的預(yù)測機制預(yù)測時幾乎不占用系統(tǒng)開銷,為策略的有效實現(xiàn)奠定了基礎(chǔ)。實驗表明新方案優(yōu)于現(xiàn)行的優(yōu)化策略,可以提供高達80%的冷卻能耗節(jié)省率,是一種較好的優(yōu)化策略。
參考文獻:
[1]劉發(fā)貴,吳澤祥,麥偉鵬. 一種硬盤動態(tài)電源管理方法[J]. 華南理工大學(xué)學(xué)報, 2010, 38(1): 97-101.
[2]AJAMI A, BANERJEE K, PEDRAM M. Modeling and analysis of nonuniform substrate temperature effects on global ULSI interconnects[J]. IEEE Trans on Comput-Aided Design Integr. Circuits System, 2005, 24(6).
[3]PATTERSON M. The effect of data center temperature on energy efficiency[C]. 2008 11th IEEE Intersociety Conference on Thermal and Thermomechanical Phenomena in Electronic Systems, I-THERM. FL, United states, 2008: 1167-1174.
[4]LEFURGY C, PAJAMANI K, RAWSON F. Energy management for commercial servers[J]. IEEE Comput, 2003, 39(12): 39-48.
[5]CHOI C, FRANKE H, WEGER A, BOSE A. Thermal-aware task scheduling at the system software level[C]. ISLPED'07: Proceedings of the 2007 International Symposium on Low Power Electronics and Design. United states: Portland, OR , 2007: 213-218.
[6]COSKUN A, ROSING T, GROSS K. Proactive temperature management in MP SoCs[C]. ISLPED'08: Proceedings of the 2008 International Symposium on Low Power Electronics and Design. India: Bangalore, 2008:165-170.
[7]MUGLER D. Computationally efficient linear prediction from past samples of a band-limited signal and its derivative[J]. IEEE Transaction on Information Theory, 1990, 36(3): 589-596.
[8]SKADRON K, STAN M, HUANG W, VELUSAMY S, SANKARANARAYANAN K, TARJAN D. Temperature-aware Microarchitecture[C]. Conf Proc Annu Int Symp Comput Archit ISCA . United states: San Diego, 2003:2-13.
[9]HEO S, BARR K, ASANOVIC K. Reducing power density through activity migration[C]. Proceedings of the International Symposium on Low Power Electronics and Design. Korea: Seoul, 2003: 217-222.
[10]MARVASTI F. Nonuniform Sampling Theory and Practice[M]. New York: Kluwer academic/Plenum publisher, 2001.
[11]MUGLER D, WU Y. An integrator for time-dependent systems with oscillatory behavior[J]. Comput on Methods Appl Mechanic Eng, 1999, 17(1): 25-41.
[12]MUGLER D. Computational aspects of an optimal linear prediction formula for band-limited signals[J]. Comput Appl Math, 1992, 21(1): 351-356.