林何磊,馮國(guó)富,冀續(xù)燁,陳明
上海海洋大學(xué)信息學(xué)院,農(nóng)業(yè)部漁業(yè)信息重點(diǎn)實(shí)驗(yàn)室,上海201306
面向計(jì)算功耗效率的超線程調(diào)度研究
林何磊,馮國(guó)富*,冀續(xù)燁,陳明
上海海洋大學(xué)信息學(xué)院,農(nóng)業(yè)部漁業(yè)信息重點(diǎn)實(shí)驗(yàn)室,上海201306
相對(duì)于傳統(tǒng)計(jì)算側(cè)重關(guān)注計(jì)算性能及并行可擴(kuò)展性而忽視功耗因素,本文分析Hyper threading服務(wù)器的功耗特性,基于超線程計(jì)算單元拓?fù)涓兄?,引入面向能量效率的超線程調(diào)度策略,利用線程親和性改變線程計(jì)算單元分配順序以提高系統(tǒng)計(jì)算與能量效率,克服操作系統(tǒng)默認(rèn)線程調(diào)度策略單一、呆板的缺陷。實(shí)驗(yàn)結(jié)果表明,所提方案可在應(yīng)用層、運(yùn)行時(shí)支持層和操作系統(tǒng)層三層中靈活配置,以影響不同范圍內(nèi)的計(jì)算應(yīng)用,在提高能量效率的同時(shí),從計(jì)算單元利用角度提高計(jì)算資源利用率。
超線程;能量效率;計(jì)算單元調(diào)度;計(jì)算單元拓?fù)涓兄?/p>
SMT計(jì)算單元與傳統(tǒng)處理器單元存在區(qū)別,但OS通常不能有效感知SMT計(jì)算單元與傳統(tǒng)計(jì)算單元的不同,從而造成SMT的技術(shù)優(yōu)勢(shì)不能得以發(fā)揮。以上特點(diǎn)使得SMT技術(shù)雖從95年左右就已出現(xiàn),但一直沒(méi)有得到很好的推廣。Intel早在2000年的P4 Netburst微架構(gòu)就引入Hyper Threading,但在2006年Core微架構(gòu)中又放棄該技術(shù)。當(dāng)前低碳節(jié)能已成為全球最受關(guān)注的話題之一,并亦成為國(guó)內(nèi)外IT領(lǐng)域的研究熱點(diǎn),計(jì)算結(jié)點(diǎn)的功耗不僅直接影響計(jì)算中心、數(shù)據(jù)中心的運(yùn)營(yíng)成本,還進(jìn)一步間接影響用于散熱方面的開銷及對(duì)設(shè)備器件壽命的影響[1]。SMT技術(shù)由于在資源、功耗效率方面的優(yōu)點(diǎn),再次受到研究界的關(guān)注,Intel自2008年的Nehalem微架構(gòu)又重新啟用了Hyper Threading技術(shù),但Hyper Threading不能被OS有效感知等問(wèn)題仍然制約該技術(shù)的推廣與普及。
1.1 基于Hyper Threading的計(jì)算系統(tǒng)
目前基于Hyper Threading的高性能服務(wù)器通常采用NUMA架構(gòu)。如圖1所示,在一個(gè)典型的雙路Intel Xeon單結(jié)點(diǎn)服務(wù)器中,配置二路物理處理器,每路物理處理器中有4個(gè)處理核心Cx(x=0,1,2,3),每個(gè)核心含兩個(gè)Hyper Threading線程單元Tx0,Tx1(x=0,1,2,3)。
雖然每個(gè)處理器核上的2個(gè)Hyper Threading線程單元是對(duì)等的,但第一個(gè)獲得計(jì)算任務(wù)的線程單元可以獨(dú)享處理器核心上全部執(zhí)行資源直到另一線程單元上有任務(wù)執(zhí)行。從OS線程調(diào)度角度而言,由于分配任務(wù)的先后順序及對(duì)計(jì)算資源的獨(dú)享與共享,其二者又是不完全對(duì)等的。
為表述方便,在不至引起混亂的前提下,本文將處理器核心上獨(dú)占執(zhí)行資源、第一個(gè)執(zhí)行任務(wù)的Hyper Threading線程稱為全資源線程單元,而其后在相同計(jì)算資源上啟動(dòng),并與之前獨(dú)占資源的線程共享執(zhí)行資源的線程單元稱為共享線程單元。此時(shí)先前的全資源線程單元因?yàn)橐秃笳吖蚕碛?jì)算資源,自動(dòng)演化為共享線程單元,也即共享線程單元是成對(duì)出現(xiàn)的。當(dāng)計(jì)算任務(wù)申請(qǐng)的計(jì)算單元為奇數(shù)時(shí),至少存在一個(gè)全資源線程單元。在對(duì)計(jì)算效率和成本進(jìn)行分析比較時(shí),以全資源線程單元為單位更具有可比性。
圖1 基于Hyper Threading的計(jì)算系統(tǒng)Fig.1 The computing system on Hyper Threading
傳統(tǒng)OS(如Linux)在對(duì)Hyper Threading處理器線程單元進(jìn)行管理時(shí),通常是優(yōu)先分配系統(tǒng)中的全資源線程單元,然后再分配共享線程單元。如本文實(shí)驗(yàn)表明,一臺(tái)雙路Intel Xeon L5520服務(wù)器基于Linux 3.6.11內(nèi)核會(huì)按表1所示順序來(lái)為計(jì)算任務(wù)分配計(jì)算資源。表1以“(Processor,Core,Thread),alloc_seq”的形式來(lái)標(biāo)識(shí)一次分配中計(jì)算單元所處的“物理處理器號(hào),處理器核心號(hào)與線程單元號(hào)及Linux內(nèi)核分配計(jì)算資源的順序”;黑色實(shí)線箭頭指示全資源線程單元的分配順序,虛線箭頭指示共享線程單元的分配順序。
由表1可以看出Linux計(jì)算單元分配策略首先以全資源線程單元來(lái)滿足計(jì)算需求,當(dāng)全資源線程單元不能滿足需求時(shí),才分配共享線程單元,從而使計(jì)算請(qǐng)求得到很好、很快地響應(yīng)。這種分配方案對(duì)于密集事務(wù)型操作會(huì)獲得比較好的用戶響應(yīng)和系統(tǒng)吞吐量。但如表1所示,這種分配策略通過(guò)快速覆蓋全資源線程單元的來(lái)提高性能,卻忽視了對(duì)共享線程單元的利用,沒(méi)有充分發(fā)揮SMT技術(shù)的特點(diǎn)。
表1 Linux分配SMT計(jì)算單元的順序Table 1 The allocation sequence of Linux kernel for SMT units
1.2 OS線程單元分配策略下的并行性能
由于受并行可擴(kuò)展性的影響,并行計(jì)算中投入計(jì)算單元的數(shù)量通常有一個(gè)上限。超過(guò)該上限后,再投入新的計(jì)算資源,計(jì)算資源雖然增多,但性能的提高卻不再明顯。
依據(jù)Amdahl定律:令S為某一計(jì)算中難以并行化執(zhí)行的部分,P為可并行的部分(S+P=1),那么投入N個(gè)計(jì)算單元最大可能的加速比SN為:用代表計(jì)算的并行效率,以S=0.1為例,從并行效率考慮,當(dāng)時(shí),再投入新的計(jì)算單元加速已不明顯(即:N>1/S+1)。也即,在上述假設(shè)下N>11后加速效果不再明顯。目前隨著制造工藝的發(fā)展,單個(gè)處理器的核心數(shù)越來(lái)越多,SMP服務(wù)器處理器路數(shù)也不斷提高。如HP DK388P采用2路XeonE5-2667,每處理器6核心、12線程;浪潮正睿6540S2,采用四路Xeon E7-8850處理器,每處理器10核心,20線程。如果按照Linux默認(rèn)的分配策略,隨著計(jì)算結(jié)點(diǎn)內(nèi)計(jì)算單元增多,受限于可擴(kuò)展性,大量計(jì)算單元要么沒(méi)有投入計(jì)算的機(jī)會(huì),要么投入后對(duì)計(jì)算的貢獻(xiàn)微乎其微。在Hyper Threading架構(gòu)中,因?yàn)镺S要分配將全資源線程單元分配完后再分配共享線程單元,而共享線程單元投放后,要和另一個(gè)單元共享計(jì)算資源,共享線程單元的計(jì)算能力只相當(dāng)于全資源線程單元的σ倍(0<σ<1/2)(經(jīng)典文獻(xiàn)中認(rèn)為Hyper Threading可以在典型環(huán)境下提高30%的計(jì)算性能),這使得Hyper Threading單元的貢獻(xiàn)更不明顯。
表2 Phoenix2.0下Word counter執(zhí)行時(shí)間Table 2 Phoenix 2.0 parallel computing for Word counter(s)
表2為在HP DK388P,基于Linux 2.6.32-131.0.15.el6.x86_64內(nèi)核運(yùn)行共享存儲(chǔ)模式Mapreduce實(shí)現(xiàn)Phoenix 2.0[2]中word counter案例的并行執(zhí)行時(shí)間(數(shù)據(jù)集大小分別為3200 M、6400 M)。由于Linux是先分配全資源線程單元,而HP DK388P全資源線程單元只有12個(gè)。表2顯示,當(dāng)申請(qǐng)計(jì)算單元數(shù)達(dá)到全資源線程單元數(shù)上限12后(SN/N分別達(dá)到0.54和0.63),加速比不再明顯上升。當(dāng)12個(gè)全資源線程單元分配完后,Linux才會(huì)再投入共享線程單元,然而此時(shí)投入共享線程單元不僅會(huì)增大系統(tǒng)功耗,同時(shí)對(duì)于性能的提升作用不大,這也是多數(shù)高性能應(yīng)用選擇關(guān)閉SMT功能的原因(本文按參考文獻(xiàn)[2,3]對(duì)實(shí)驗(yàn)案例進(jìn)行了優(yōu)化,不優(yōu)化情況下并行執(zhí)行效果會(huì)更差)。
綜上所述,操作系統(tǒng)單一、僵化的Hyper Threading計(jì)算單元分配策略過(guò)晚地投放共享線程單元,使得Hyper Threading性能得不到有效發(fā)揮,造成計(jì)算資源、功耗與調(diào)度機(jī)會(huì)的浪費(fèi)。另外對(duì)于OS而言,全資源線程單元與共享線程單元統(tǒng)一被視為獨(dú)立的計(jì)算單元,忽視了全資源線程單元和共享線程單元二者計(jì)算能力不對(duì)等的特點(diǎn),使基于SMT的共享存儲(chǔ)并行計(jì)算易引入負(fù)載均衡問(wèn)題。因此研究更靈活的Hyper Threading計(jì)算單元分配策略是綠色、高效計(jì)算的內(nèi)豐需求,通過(guò)改變并行計(jì)算分配線程單元策略,讓Hyper Threading共享線程單元在合適的時(shí)機(jī)“貢獻(xiàn)”計(jì)算能力,能更好利用SMT機(jī)制的IPL、TPL雙重并行性、充分挖掘SMT在功耗與成本上的優(yōu)勢(shì),便于用戶尋找性能與功耗的平衡點(diǎn)。
2.1 OS線程單元功耗/成本分析
OS僵化的線程單元分配策略不能充分發(fā)揮SMT ILP和TLP的技術(shù)特點(diǎn)。SMT的優(yōu)勢(shì)在于使用較少的附加資源(包括功耗)來(lái)挖掘執(zhí)行單元的利用率。
設(shè)Hyper Threading計(jì)算結(jié)點(diǎn)有Np個(gè)物理處理器,每個(gè)物理處理器上有Nc個(gè)核,每核2個(gè)SMT線程單元。假設(shè)優(yōu)先在已有負(fù)載的處理器上分配全資源線程單元。
設(shè)結(jié)點(diǎn)(Node)空載功率為Pn,每投入一個(gè)物理處理器(Socket)功率增加值為Ps,投入一個(gè)全資源線程單元(Core)功率增加值為Pc,投入一個(gè)物理
線程(Thread)單元功率增加值為Pt。
則若不啟用Hyper Threading,單計(jì)算結(jié)點(diǎn)上啟用線程數(shù)為T,計(jì)算結(jié)點(diǎn)功率為:
如果啟用Hyper Threading,單計(jì)算結(jié)點(diǎn)啟用線程數(shù)為T(為簡(jiǎn)單記,設(shè)T為偶數(shù))計(jì)算功率為:
表3 超線程單元功率(單位:W)Table 3 The powers of hyper threading units(W)
表3列出了在Dell C6100單結(jié)點(diǎn)服務(wù)器(Linux 3.6.11)上測(cè)得的不同個(gè)數(shù)計(jì)算單元滿負(fù)荷情況下計(jì)算結(jié)點(diǎn)功率的變化情況。測(cè)量方法:使用Linux默認(rèn)分配計(jì)算單元策略,當(dāng)系統(tǒng)負(fù)荷與功率穩(wěn)定后對(duì)系統(tǒng)功率值連續(xù)采樣8 s,每秒采樣1次,去掉最大值與最小值,再求平均值。
從表3得出Dell C6100單結(jié)點(diǎn)服務(wù)器:
①Pn=76.11;
②當(dāng)因負(fù)載需求使第一個(gè)物理CPU中第一個(gè)計(jì)算單元滿載時(shí)(啟動(dòng)第一個(gè)物理CPU),系統(tǒng)功率增加35.61 W;
③使第二個(gè)物理CPU中第一個(gè)計(jì)算單元滿載時(shí)(啟動(dòng)第二個(gè)物理CPU,第5個(gè)核心投入計(jì)算時(shí)),系統(tǒng)功率增加約14.77 W,為簡(jiǎn)化計(jì)算我們將Ps?、冖鄣钠骄?5.19 W;
④在物理CPU上啟動(dòng)1個(gè)全資源線程單元功率平均增加Pc=9.68 W;
⑤而使一個(gè)共享線程單元滿載功率平均增加Pt=2.61 W。
①Pn=106.41;
②當(dāng)因負(fù)載需求使第一個(gè)物理CPU中第一個(gè)計(jì)算單元滿載時(shí)(啟動(dòng)第一個(gè)物理CPU),系統(tǒng)功率增加43.90 W;
③使第二個(gè)物理CPU中第一個(gè)計(jì)算單元滿載時(shí)(啟動(dòng)第二個(gè)物理CPU),系統(tǒng)功率增加約35.58 W,為簡(jiǎn)化計(jì)算我們將Ps?、冖鄣钠骄?9.74 W;
④在物理CPU上啟動(dòng)1個(gè)全資源線程單元功率平均增加Pc=11.13 W;
⑤而使一個(gè)共享線程單元滿載功率平均增加Pt=2.83 W。
在超聲輔助提取多糖的單因素試驗(yàn)基礎(chǔ)上,對(duì)影響枸杞多糖提取率的主要因素(料液比、超聲時(shí)間、超聲溫度、超聲次數(shù))進(jìn)行正交試驗(yàn),各組提取液過(guò)濾定容,按照苯酚—硫酸法在波長(zhǎng)490nm下測(cè)定吸光值,計(jì)算多糖含量,選出最優(yōu)的工藝參數(shù)。
因此可得出,基于表1的OS線程單元分配策略雖然性能提升很快,但功耗與成本增長(zhǎng)也較快。
2.2 不同需求下的計(jì)算單元分配
表4 計(jì)算單元分配要素Table 4 The key elements of computing units allocation
為便于描述,選擇結(jié)構(gòu)相對(duì)簡(jiǎn)單的Dell C6100服務(wù)器為例進(jìn)行分析。表4列出了該結(jié)點(diǎn)下的計(jì)算單元計(jì)算能力、功率及執(zhí)行單元數(shù),表4中用一個(gè)三元組(⊿計(jì)算能力,⊿功率,⊿物理計(jì)算核心數(shù))描述每個(gè)計(jì)算單元的引入功效與成本。該三元組表示,如果要為計(jì)算分配該計(jì)算單元所能獲得的計(jì)算能力、增加的功率及占用的物理計(jì)算單元數(shù)(共享線程單元的計(jì)算能力,按照綜合經(jīng)驗(yàn)值取0.3,不需要增加物理計(jì)算單元)。這里假定每個(gè)物理處理器上總是從Core0開始分配全資源線程單元。
調(diào)度策略1:加速比最大化需求
對(duì)于性能要求高或串行部分S比值較大的計(jì)算任務(wù),由于受并行可擴(kuò)展性的限制,應(yīng)優(yōu)先投入性能強(qiáng)的計(jì)算單元,從而可以使用較少數(shù)量的計(jì)算單元取得好的性能。
調(diào)度策略2:“性能/功率/物理計(jì)算單元數(shù)”最大化需求
當(dāng)用戶對(duì)性能要求不高,而將節(jié)約計(jì)算中心的運(yùn)維成本作為首要追求目標(biāo)時(shí),“功耗=運(yùn)行總時(shí)間*運(yùn)行功率”成為評(píng)價(jià)作業(yè)運(yùn)行的重要指標(biāo)。由于計(jì)算結(jié)點(diǎn)的基礎(chǔ)功率Pn通常遠(yuǎn)大于物理計(jì)算單元的功率Pc及線程單元功率Pt,通常在小規(guī)模計(jì)算中,同時(shí)投入的計(jì)算能力越多、越強(qiáng),則計(jì)算的“性能/功率”比率越高,時(shí)間越短、總功耗也越少。雖然研究界與工業(yè)界多通過(guò)降低主頻來(lái)降低功耗,但I(xiàn)ntel的Turbo Boost就采用這種類似思想通過(guò)提升處理器主頻來(lái)降低計(jì)算的功耗。
鑒于SMT的特點(diǎn),本文在“性能/功率”比率的基礎(chǔ)上引入SPN=“加速比/功率/物理計(jì)算單元數(shù)”來(lái)描述單位計(jì)算單元的計(jì)算能力與功耗效率,并用以指導(dǎo)計(jì)算單元的分配:
其中SN為加速比,P為功率,C為物理計(jì)算單元數(shù),1000為常系數(shù)。在分配計(jì)算單元時(shí),以SPN最大化作為調(diào)度目標(biāo),從而提高單位功率、單位成本的計(jì)算效率。
2.3 投入計(jì)算單元數(shù)量上限
一個(gè)應(yīng)用投入計(jì)算單元的數(shù)量一般由用戶在提交作業(yè)時(shí)確定。在一定范圍內(nèi)投入的計(jì)算單元越多則計(jì)算時(shí)間越短。由于功耗W=P*t,設(shè)初始計(jì)算方案功率為P0,任務(wù)執(zhí)行時(shí)間為t0。而擬再投入一個(gè)計(jì)算單元,其功率為⊿P,縮短計(jì)算時(shí)間⊿t,功耗變化為⊿W。若僅從功耗角度考慮,是否在現(xiàn)有計(jì)算資源的基礎(chǔ)上再投入新的計(jì)算資源,取決于:(P0+⊿P)*(t0-⊿t)<P0*t0是否成立。
即:(t0-⊿t)/t0<P0/(P0+⊿P)是否成立。設(shè)計(jì)算任務(wù)在單計(jì)算單元執(zhí)行時(shí)間為1,則多核并行的執(zhí)行時(shí)間為:,可推出。
如果通過(guò)實(shí)驗(yàn)取得了一個(gè)加速比的值,那么從(公式-1)也可推算出一個(gè)計(jì)算中的S:S=(N-SN)/SN(N-1)因此可依此對(duì)計(jì)算任務(wù)投入計(jì)算核心數(shù)的上限進(jìn)行推算。
2.4 線程單元拓?fù)渥R(shí)別
在OS中可通過(guò)計(jì)算單元拓?fù)湫畔?duì)線程單元間的關(guān)系進(jìn)行識(shí)別,如Linux以Core id,Physical id等來(lái)提供處理器拓?fù)涞南嚓P(guān)信息:
1.擁有相同Physical id的所有邏輯處理器共享同一個(gè)物理Socket。每個(gè)Physical id代表一個(gè)唯一的物理封裝。
2.每個(gè)Core id代表一個(gè)唯一處理器核。
3.如果有兩個(gè)或兩個(gè)以上的邏輯計(jì)算單元擁有相同Physical id,且Core id不同,則說(shuō)明這是一個(gè)多核處理器。
4.如果有一個(gè)以上邏輯計(jì)算單元擁有相同的Core id和Physical id,則說(shuō)明系統(tǒng)支持Hyper Threading,且這些邏輯計(jì)算單元在共享對(duì)應(yīng)(Physical id,Core id)所指示物理計(jì)算核心的計(jì)算資源。
通過(guò)以上原則系統(tǒng)可以方便地探測(cè)系統(tǒng)處理器拓?fù)浣Y(jié)構(gòu)。如針對(duì)圖1所示的Hyper Threading計(jì)算系統(tǒng),Linux kernel 3.6.11為其提供了如表5所示的處理器信息。表5第一行處理器編號(hào)即為OS對(duì)線程單元的編號(hào),通常OS在空閑狀態(tài)下會(huì)按此編號(hào)順序依次向計(jì)算任務(wù)提供計(jì)算資源。
表5 操作系統(tǒng)提供的處理器信息Table 5 The processor information in operating system
2.5 基于HT拓?fù)涓兄c線程親和性的SMT調(diào)度機(jī)制
上述分配策略的具體實(shí)施可在應(yīng)用層、運(yùn)行時(shí)支持層或操作系統(tǒng)層上實(shí)現(xiàn)。
(1)在應(yīng)用層實(shí)現(xiàn)僅影響該應(yīng)用的計(jì)算單元分配策略,但此方案會(huì)增加應(yīng)用程序員的編程負(fù)擔(dān);
(2)在運(yùn)行時(shí)支持層實(shí)現(xiàn)則僅影響相關(guān)計(jì)算平臺(tái)的使用[4,5]。
(3)在操作系統(tǒng)層實(shí)現(xiàn),則計(jì)算單元分配策略會(huì)對(duì)全部應(yīng)用產(chǎn)生影響。
由于線程的親和性設(shè)定一般發(fā)生在計(jì)算的開始,因此以上三種方法在性能上差異不大,三種方法主要表現(xiàn)在對(duì)調(diào)度的影響范圍不同。論文采用后兩種方案來(lái)驗(yàn)證所提方法:在操作系統(tǒng)層,論文驗(yàn)證時(shí)通過(guò)動(dòng)態(tài)修改Linux的進(jìn)程親和性系統(tǒng)調(diào)用[6]來(lái)修改操作系統(tǒng)的調(diào)度序列。在運(yùn)行時(shí)支持層以斯坦福大學(xué)一研究小組基于共享存儲(chǔ)mapreduce實(shí)現(xiàn)的Phoenix 2.0[2]及Phoenix++1.0[7]為案例進(jìn)行驗(yàn)證。其中Phoenix 2.0在src/processor.c中設(shè)置線程親和性,Phoenix++1.0在include/processor.h中設(shè)置親和性,這二個(gè)模塊均與用戶邏輯無(wú)關(guān)。
分別在Dell C6100(雙路Xeon L5520,24 G內(nèi)存,Linux kernel 3.6.11)及HP DK388P(雙路XeonE5-2667,80 G內(nèi)存,Linux 2.6.32)上運(yùn)行共享存儲(chǔ)模式Phoenix的word counter案例并記錄論文所提方案的執(zhí)行情況。其中Dell結(jié)點(diǎn)運(yùn)行Phoenix 2.0 word counter 1600M案例(原始程序未做優(yōu)化),HP結(jié)點(diǎn)由于性能顯著優(yōu)于Dell C6100,因此運(yùn)行Phoenix++1.0 word counter 51200 M案例。在Dell C6100服務(wù)器上的實(shí)驗(yàn)結(jié)果如表6所示。
實(shí)驗(yàn)數(shù)據(jù)顯示兩類調(diào)度策略依據(jù)調(diào)度的目標(biāo)不同,在性能和效率方面表現(xiàn)出較大的差異,適合不同需求的用戶根據(jù)需要進(jìn)行選擇,克服了傳統(tǒng)OS單一調(diào)度策略的不足。尤其在“性能/功率/物理計(jì)算單元數(shù)”這項(xiàng)指標(biāo)上,“調(diào)度策略2”充分利用了Hyper Threading的架構(gòu)特點(diǎn),使得每物理計(jì)算單元的效率得以充分發(fā)揮,在功耗方面取得不錯(cuò)的表現(xiàn)。
本文實(shí)驗(yàn)中,在功率與“調(diào)度策略1”相當(dāng)?shù)那闆r下,基于“調(diào)度策略2”中的每個(gè)物理核心(表6中偶數(shù)個(gè)線程單元)相對(duì)于“調(diào)度策略1”中一個(gè)物理核心的計(jì)算性能最高提高了33%左右(如表6中“調(diào)度策略2”的6個(gè)共享線程單元與“調(diào)度策略1”的3個(gè)全資源線程單元),平均提高21%,當(dāng)全部計(jì)算單元投入后,計(jì)算性能/功率/效率相當(dāng)。
表6 實(shí)驗(yàn)結(jié)果Table 6 The result from experiment
在功耗方面,當(dāng)“調(diào)度策略2”使用4個(gè)共享線程單元功率時(shí)為130.13 W,與“調(diào)度策略1”的3個(gè)全資源線程單元功率相當(dāng),但執(zhí)行速度要快于“調(diào)度策略1”;“調(diào)度策略2”使用10個(gè)線程單元執(zhí)行時(shí)間為171.18 s,與“調(diào)度策略1”的7個(gè)線程單元時(shí)間相當(dāng),但功率卻比“調(diào)度策略1”降低了3 W。同樣“調(diào)度策略2”使用12個(gè)線程單元執(zhí)行時(shí)間與“調(diào)度策略1”的9個(gè)線程單元時(shí)間相當(dāng),但功率卻比“調(diào)度策略1”降低了7.82 W。表7以8個(gè)物理核心為單位對(duì)表6中的數(shù)據(jù)進(jìn)行了對(duì)比。圖2、3、4分別為HP DK388P服務(wù)器上時(shí)間、“性能/功率/物理計(jì)算單元數(shù)”、功率三項(xiàng)指標(biāo),在“調(diào)度策略1”與“調(diào)度策略2”兩種策略下的比較圖示。限于篇幅數(shù)據(jù)表格不再列出。
表7 實(shí)驗(yàn)結(jié)果分析Table 7 The analysis on experimental results
圖2 HPDK388P服務(wù)器計(jì)算執(zhí)行時(shí)間對(duì)比Fig.2 Comparison of execution time on server HPDK388P
圖3 HPDK388P服務(wù)器計(jì)算性能/功率/物理計(jì)算單元對(duì)比Fig.3 Comparison of performance,power and physics computing elements on server HPDK388P
圖4 HPDK388P服務(wù)器計(jì)算功率對(duì)比Fig.4 Comparison of powers on server HPDK388P
圖2~4顯示HP DK388P服務(wù)器在性能、功率及"加速比/功率/物理計(jì)算單元數(shù)"具有與DELL C6100基本相似的特性。
綜上所述,論文提出的面向“性能/功率/物理計(jì)算單元數(shù)”的調(diào)度策略充分挖掘了Hyper Threading架構(gòu)的特點(diǎn),有效提高了計(jì)算系統(tǒng)的計(jì)算效率。
本文分析了現(xiàn)有計(jì)算操作系統(tǒng)對(duì)Hyper Threading技術(shù)支持的不足之處,提出了利用線程親和性調(diào)整線程單元的分配順序的調(diào)度策略,有效挖掘SMT技術(shù)的ILP與TLP;所提方法可以在應(yīng)用層、在運(yùn)行時(shí)支持與操作系統(tǒng)層靈活部署,用以滿足不同用戶計(jì)算任務(wù)的需求,從而有效地提高了系統(tǒng)計(jì)算資源利用率,并使得并行計(jì)算任務(wù)可以用更低的功耗獲得更高的性能。
[1]林闖,田源,姚敏.綠色網(wǎng)絡(luò)和綠色評(píng)價(jià):節(jié)能機(jī)制、模型和評(píng)價(jià)[J].計(jì)算機(jī)學(xué)報(bào),2011,34(4):593-612
[2]Richard M.Yoo,RomanoA,Kozyrakis C.Phoenix rebirth:Scalable Mapreduce on a large-scale shared-memory system[C].USA:IEEE International Symposium on Workload Characterization,2009:198-207
[3]馮國(guó)富,王明,李亮,等.共享存儲(chǔ)MapReduce云計(jì)算性能測(cè)試方法[J].計(jì)算機(jī)工程,2012,38(6):50-52
[4]馮國(guó)富,董小社,胡冰,等.一種支持多種訪存技術(shù)的CBEA片上多核MPI并行編程模型[J].計(jì)算機(jī)學(xué)報(bào),2008(11):1965-1974
[5]董小社,馮國(guó)富,王旭昊,等.基于Cell多核處理器的層次化運(yùn)行時(shí)支持技術(shù)[J].計(jì)算機(jī)研究與發(fā)展,2010(4):561-570
[6]馮國(guó)富,魏恒義,儲(chǔ)鷹,等.支持多種Linux版本的動(dòng)態(tài)內(nèi)核性能測(cè)試技術(shù)[J].西安交通大學(xué)學(xué)報(bào),2008(6):674-678
[7]Talbot J,Yoo RM,Kozyrakis C.Phoenix++:Modular MapReduce for Shared-Memory Systems[C].San Jose,CA:the Second International Workshop on Mapreduce and itsApplications,2011:9-16
Study on Hyper Threading Scheduling towards Power Efficiency of Computing
LIN He-lei,FENG Guo-fu*,JI Xu-ye,CHEN Ming
College of Information Technology,Key Laboratory of Fisheries Information Ministry of Agriculture/Shanghai Ocean University, Shanghai201306,China
As traditional computing focuses on performance and parallel scalability while ignoring the power consumption factor,based on Computing unit topology awareness of Hyper Threading,this paper analyzes the power consumption of Hyper threading server,and introduces a Hyper Threading Scheduling Strategy for energy efficiency.By setting thread's processor affinity to change the allocation order of computing units,the proposed method improves the system computing and energy efficiency,and overcomes the shortage of traditional OS whose schedule strategy is too monotonous for Hyper Threading.The experimental result shows that the proposed scheme can be deployed flexibly in three layers:application layer,runtime library layer and operating system kernel layer to affect computing applications in different scope.While improving energy efficiency,the utilization of computing resources are improved too.
Hyper threading;energy efficiency;computing unit scheduling;computing unit topology awareness
TP332
:A
:1000-2324(2017)01-0093-07
2016-11-03
:2016-12-18
上海市科技創(chuàng)新行動(dòng)計(jì)劃項(xiàng)目:小龍蝦生態(tài)智能化設(shè)施養(yǎng)殖關(guān)鍵技術(shù)研究與應(yīng)用(16391902902);江蘇省國(guó)家長(zhǎng)江珍稀魚類工程技術(shù)研究中心培育點(diǎn)(BM2013012)
林何磊(1992-),男,碩士,主研方向:高性能計(jì)算機(jī)系統(tǒng)結(jié)構(gòu).E-mail:heleilin@hotmail.com
*通訊作者:Author for correspondence.E-mail:jt_f@163.com