999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向計算功耗效率的超線程調度研究

2017-03-17 08:24:58林何磊馮國富冀續燁陳明
關鍵詞:分配物理策略

林何磊,馮國富,冀續燁,陳明

上海海洋大學信息學院,農業部漁業信息重點實驗室,上海201306

面向計算功耗效率的超線程調度研究

林何磊,馮國富*,冀續燁,陳明

上海海洋大學信息學院,農業部漁業信息重點實驗室,上海201306

相對于傳統計算側重關注計算性能及并行可擴展性而忽視功耗因素,本文分析Hyper threading服務器的功耗特性,基于超線程計算單元拓撲感知,引入面向能量效率的超線程調度策略,利用線程親和性改變線程計算單元分配順序以提高系統計算與能量效率,克服操作系統默認線程調度策略單一、呆板的缺陷。實驗結果表明,所提方案可在應用層、運行時支持層和操作系統層三層中靈活配置,以影響不同范圍內的計算應用,在提高能量效率的同時,從計算單元利用角度提高計算資源利用率。

超線程;能量效率;計算單元調度;計算單元拓撲感知

SMT計算單元與傳統處理器單元存在區別,但OS通常不能有效感知SMT計算單元與傳統計算單元的不同,從而造成SMT的技術優勢不能得以發揮。以上特點使得SMT技術雖從95年左右就已出現,但一直沒有得到很好的推廣。Intel早在2000年的P4 Netburst微架構就引入Hyper Threading,但在2006年Core微架構中又放棄該技術。當前低碳節能已成為全球最受關注的話題之一,并亦成為國內外IT領域的研究熱點,計算結點的功耗不僅直接影響計算中心、數據中心的運營成本,還進一步間接影響用于散熱方面的開銷及對設備器件壽命的影響[1]。SMT技術由于在資源、功耗效率方面的優點,再次受到研究界的關注,Intel自2008年的Nehalem微架構又重新啟用了Hyper Threading技術,但Hyper Threading不能被OS有效感知等問題仍然制約該技術的推廣與普及。

1 Hyper Threading線程調度中存在的問題

1.1 基于Hyper Threading的計算系統

目前基于Hyper Threading的高性能服務器通常采用NUMA架構。如圖1所示,在一個典型的雙路Intel Xeon單結點服務器中,配置二路物理處理器,每路物理處理器中有4個處理核心Cx(x=0,1,2,3),每個核心含兩個Hyper Threading線程單元Tx0,Tx1(x=0,1,2,3)。

雖然每個處理器核上的2個Hyper Threading線程單元是對等的,但第一個獲得計算任務的線程單元可以獨享處理器核心上全部執行資源直到另一線程單元上有任務執行。從OS線程調度角度而言,由于分配任務的先后順序及對計算資源的獨享與共享,其二者又是不完全對等的。

為表述方便,在不至引起混亂的前提下,本文將處理器核心上獨占執行資源、第一個執行任務的Hyper Threading線程稱為全資源線程單元,而其后在相同計算資源上啟動,并與之前獨占資源的線程共享執行資源的線程單元稱為共享線程單元。此時先前的全資源線程單元因為要和后者共享計算資源,自動演化為共享線程單元,也即共享線程單元是成對出現的。當計算任務申請的計算單元為奇數時,至少存在一個全資源線程單元。在對計算效率和成本進行分析比較時,以全資源線程單元為單位更具有可比性。

圖1 基于Hyper Threading的計算系統Fig.1 The computing system on Hyper Threading

傳統OS(如Linux)在對Hyper Threading處理器線程單元進行管理時,通常是優先分配系統中的全資源線程單元,然后再分配共享線程單元。如本文實驗表明,一臺雙路Intel Xeon L5520服務器基于Linux 3.6.11內核會按表1所示順序來為計算任務分配計算資源。表1以“(Processor,Core,Thread),alloc_seq”的形式來標識一次分配中計算單元所處的“物理處理器號,處理器核心號與線程單元號及Linux內核分配計算資源的順序”;黑色實線箭頭指示全資源線程單元的分配順序,虛線箭頭指示共享線程單元的分配順序。

由表1可以看出Linux計算單元分配策略首先以全資源線程單元來滿足計算需求,當全資源線程單元不能滿足需求時,才分配共享線程單元,從而使計算請求得到很好、很快地響應。這種分配方案對于密集事務型操作會獲得比較好的用戶響應和系統吞吐量。但如表1所示,這種分配策略通過快速覆蓋全資源線程單元的來提高性能,卻忽視了對共享線程單元的利用,沒有充分發揮SMT技術的特點。

表1 Linux分配SMT計算單元的順序Table 1 The allocation sequence of Linux kernel for SMT units

1.2 OS線程單元分配策略下的并行性能

由于受并行可擴展性的影響,并行計算中投入計算單元的數量通常有一個上限。超過該上限后,再投入新的計算資源,計算資源雖然增多,但性能的提高卻不再明顯。

依據Amdahl定律:令S為某一計算中難以并行化執行的部分,P為可并行的部分(S+P=1),那么投入N個計算單元最大可能的加速比SN為:用代表計算的并行效率,以S=0.1為例,從并行效率考慮,當時,再投入新的計算單元加速已不明顯(即:N>1/S+1)。也即,在上述假設下N>11后加速效果不再明顯。目前隨著制造工藝的發展,單個處理器的核心數越來越多,SMP服務器處理器路數也不斷提高。如HP DK388P采用2路XeonE5-2667,每處理器6核心、12線程;浪潮正睿6540S2,采用四路Xeon E7-8850處理器,每處理器10核心,20線程。如果按照Linux默認的分配策略,隨著計算結點內計算單元增多,受限于可擴展性,大量計算單元要么沒有投入計算的機會,要么投入后對計算的貢獻微乎其微。在Hyper Threading架構中,因為OS要分配將全資源線程單元分配完后再分配共享線程單元,而共享線程單元投放后,要和另一個單元共享計算資源,共享線程單元的計算能力只相當于全資源線程單元的σ倍(0<σ<1/2)(經典文獻中認為Hyper Threading可以在典型環境下提高30%的計算性能),這使得Hyper Threading單元的貢獻更不明顯。

表2 Phoenix2.0下Word counter執行時間Table 2 Phoenix 2.0 parallel computing for Word counter(s)

表2為在HP DK388P,基于Linux 2.6.32-131.0.15.el6.x86_64內核運行共享存儲模式Mapreduce實現Phoenix 2.0[2]中word counter案例的并行執行時間(數據集大小分別為3200 M、6400 M)。由于Linux是先分配全資源線程單元,而HP DK388P全資源線程單元只有12個。表2顯示,當申請計算單元數達到全資源線程單元數上限12后(SN/N分別達到0.54和0.63),加速比不再明顯上升。當12個全資源線程單元分配完后,Linux才會再投入共享線程單元,然而此時投入共享線程單元不僅會增大系統功耗,同時對于性能的提升作用不大,這也是多數高性能應用選擇關閉SMT功能的原因(本文按參考文獻[2,3]對實驗案例進行了優化,不優化情況下并行執行效果會更差)。

綜上所述,操作系統單一、僵化的Hyper Threading計算單元分配策略過晚地投放共享線程單元,使得Hyper Threading性能得不到有效發揮,造成計算資源、功耗與調度機會的浪費。另外對于OS而言,全資源線程單元與共享線程單元統一被視為獨立的計算單元,忽視了全資源線程單元和共享線程單元二者計算能力不對等的特點,使基于SMT的共享存儲并行計算易引入負載均衡問題。因此研究更靈活的Hyper Threading計算單元分配策略是綠色、高效計算的內豐需求,通過改變并行計算分配線程單元策略,讓Hyper Threading共享線程單元在合適的時機“貢獻”計算能力,能更好利用SMT機制的IPL、TPL雙重并行性、充分挖掘SMT在功耗與成本上的優勢,便于用戶尋找性能與功耗的平衡點。

2 基于超線程拓撲感知的Hyper Threading線程調度策略

2.1 OS線程單元功耗/成本分析

OS僵化的線程單元分配策略不能充分發揮SMT ILP和TLP的技術特點。SMT的優勢在于使用較少的附加資源(包括功耗)來挖掘執行單元的利用率。

設Hyper Threading計算結點有Np個物理處理器,每個物理處理器上有Nc個核,每核2個SMT線程單元。假設優先在已有負載的處理器上分配全資源線程單元。

設結點(Node)空載功率為Pn,每投入一個物理處理器(Socket)功率增加值為Ps,投入一個全資源線程單元(Core)功率增加值為Pc,投入一個物理

線程(Thread)單元功率增加值為Pt。

則若不啟用Hyper Threading,單計算結點上啟用線程數為T,計算結點功率為:

如果啟用Hyper Threading,單計算結點啟用線程數為T(為簡單記,設T為偶數)計算功率為:

表3 超線程單元功率(單位:W)Table 3 The powers of hyper threading units(W)

表3列出了在Dell C6100單結點服務器(Linux 3.6.11)上測得的不同個數計算單元滿負荷情況下計算結點功率的變化情況。測量方法:使用Linux默認分配計算單元策略,當系統負荷與功率穩定后對系統功率值連續采樣8 s,每秒采樣1次,去掉最大值與最小值,再求平均值。

從表3得出Dell C6100單結點服務器:

①Pn=76.11;

②當因負載需求使第一個物理CPU中第一個計算單元滿載時(啟動第一個物理CPU),系統功率增加35.61 W;

③使第二個物理CPU中第一個計算單元滿載時(啟動第二個物理CPU,第5個核心投入計算時),系統功率增加約14.77 W,為簡化計算我們將Ps取②③的平均值25.19 W;

④在物理CPU上啟動1個全資源線程單元功率平均增加Pc=9.68 W;

⑤而使一個共享線程單元滿載功率平均增加Pt=2.61 W。

①Pn=106.41;

②當因負載需求使第一個物理CPU中第一個計算單元滿載時(啟動第一個物理CPU),系統功率增加43.90 W;

③使第二個物理CPU中第一個計算單元滿載時(啟動第二個物理CPU),系統功率增加約35.58 W,為簡化計算我們將Ps取②③的平均值39.74 W;

④在物理CPU上啟動1個全資源線程單元功率平均增加Pc=11.13 W;

⑤而使一個共享線程單元滿載功率平均增加Pt=2.83 W。

在超聲輔助提取多糖的單因素試驗基礎上,對影響枸杞多糖提取率的主要因素(料液比、超聲時間、超聲溫度、超聲次數)進行正交試驗,各組提取液過濾定容,按照苯酚—硫酸法在波長490nm下測定吸光值,計算多糖含量,選出最優的工藝參數。

因此可得出,基于表1的OS線程單元分配策略雖然性能提升很快,但功耗與成本增長也較快。

2.2 不同需求下的計算單元分配

表4 計算單元分配要素Table 4 The key elements of computing units allocation

為便于描述,選擇結構相對簡單的Dell C6100服務器為例進行分析。表4列出了該結點下的計算單元計算能力、功率及執行單元數,表4中用一個三元組(⊿計算能力,⊿功率,⊿物理計算核心數)描述每個計算單元的引入功效與成本。該三元組表示,如果要為計算分配該計算單元所能獲得的計算能力、增加的功率及占用的物理計算單元數(共享線程單元的計算能力,按照綜合經驗值取0.3,不需要增加物理計算單元)。這里假定每個物理處理器上總是從Core0開始分配全資源線程單元。

調度策略1:加速比最大化需求

對于性能要求高或串行部分S比值較大的計算任務,由于受并行可擴展性的限制,應優先投入性能強的計算單元,從而可以使用較少數量的計算單元取得好的性能。

調度策略2:“性能/功率/物理計算單元數”最大化需求

當用戶對性能要求不高,而將節約計算中心的運維成本作為首要追求目標時,“功耗=運行總時間*運行功率”成為評價作業運行的重要指標。由于計算結點的基礎功率Pn通常遠大于物理計算單元的功率Pc及線程單元功率Pt,通常在小規模計算中,同時投入的計算能力越多、越強,則計算的“性能/功率”比率越高,時間越短、總功耗也越少。雖然研究界與工業界多通過降低主頻來降低功耗,但Intel的Turbo Boost就采用這種類似思想通過提升處理器主頻來降低計算的功耗。

鑒于SMT的特點,本文在“性能/功率”比率的基礎上引入SPN=“加速比/功率/物理計算單元數”來描述單位計算單元的計算能力與功耗效率,并用以指導計算單元的分配:

其中SN為加速比,P為功率,C為物理計算單元數,1000為常系數。在分配計算單元時,以SPN最大化作為調度目標,從而提高單位功率、單位成本的計算效率。

2.3 投入計算單元數量上限

一個應用投入計算單元的數量一般由用戶在提交作業時確定。在一定范圍內投入的計算單元越多則計算時間越短。由于功耗W=P*t,設初始計算方案功率為P0,任務執行時間為t0。而擬再投入一個計算單元,其功率為⊿P,縮短計算時間⊿t,功耗變化為⊿W。若僅從功耗角度考慮,是否在現有計算資源的基礎上再投入新的計算資源,取決于:(P0+⊿P)*(t0-⊿t)<P0*t0是否成立。

即:(t0-⊿t)/t0<P0/(P0+⊿P)是否成立。設計算任務在單計算單元執行時間為1,則多核并行的執行時間為:,可推出。

如果通過實驗取得了一個加速比的值,那么從(公式-1)也可推算出一個計算中的S:S=(N-SN)/SN(N-1)因此可依此對計算任務投入計算核心數的上限進行推算。

2.4 線程單元拓撲識別

在OS中可通過計算單元拓撲信息對線程單元間的關系進行識別,如Linux以Core id,Physical id等來提供處理器拓撲的相關信息:

1.擁有相同Physical id的所有邏輯處理器共享同一個物理Socket。每個Physical id代表一個唯一的物理封裝。

2.每個Core id代表一個唯一處理器核。

3.如果有兩個或兩個以上的邏輯計算單元擁有相同Physical id,且Core id不同,則說明這是一個多核處理器。

4.如果有一個以上邏輯計算單元擁有相同的Core id和Physical id,則說明系統支持Hyper Threading,且這些邏輯計算單元在共享對應(Physical id,Core id)所指示物理計算核心的計算資源。

通過以上原則系統可以方便地探測系統處理器拓撲結構。如針對圖1所示的Hyper Threading計算系統,Linux kernel 3.6.11為其提供了如表5所示的處理器信息。表5第一行處理器編號即為OS對線程單元的編號,通常OS在空閑狀態下會按此編號順序依次向計算任務提供計算資源。

表5 操作系統提供的處理器信息Table 5 The processor information in operating system

2.5 基于HT拓撲感知與線程親和性的SMT調度機制

上述分配策略的具體實施可在應用層、運行時支持層或操作系統層上實現。

(1)在應用層實現僅影響該應用的計算單元分配策略,但此方案會增加應用程序員的編程負擔;

(2)在運行時支持層實現則僅影響相關計算平臺的使用[4,5]。

(3)在操作系統層實現,則計算單元分配策略會對全部應用產生影響。

由于線程的親和性設定一般發生在計算的開始,因此以上三種方法在性能上差異不大,三種方法主要表現在對調度的影響范圍不同。論文采用后兩種方案來驗證所提方法:在操作系統層,論文驗證時通過動態修改Linux的進程親和性系統調用[6]來修改操作系統的調度序列。在運行時支持層以斯坦福大學一研究小組基于共享存儲mapreduce實現的Phoenix 2.0[2]及Phoenix++1.0[7]為案例進行驗證。其中Phoenix 2.0在src/processor.c中設置線程親和性,Phoenix++1.0在include/processor.h中設置親和性,這二個模塊均與用戶邏輯無關。

3 測試與驗證

分別在Dell C6100(雙路Xeon L5520,24 G內存,Linux kernel 3.6.11)及HP DK388P(雙路XeonE5-2667,80 G內存,Linux 2.6.32)上運行共享存儲模式Phoenix的word counter案例并記錄論文所提方案的執行情況。其中Dell結點運行Phoenix 2.0 word counter 1600M案例(原始程序未做優化),HP結點由于性能顯著優于Dell C6100,因此運行Phoenix++1.0 word counter 51200 M案例。在Dell C6100服務器上的實驗結果如表6所示。

實驗數據顯示兩類調度策略依據調度的目標不同,在性能和效率方面表現出較大的差異,適合不同需求的用戶根據需要進行選擇,克服了傳統OS單一調度策略的不足。尤其在“性能/功率/物理計算單元數”這項指標上,“調度策略2”充分利用了Hyper Threading的架構特點,使得每物理計算單元的效率得以充分發揮,在功耗方面取得不錯的表現。

本文實驗中,在功率與“調度策略1”相當的情況下,基于“調度策略2”中的每個物理核心(表6中偶數個線程單元)相對于“調度策略1”中一個物理核心的計算性能最高提高了33%左右(如表6中“調度策略2”的6個共享線程單元與“調度策略1”的3個全資源線程單元),平均提高21%,當全部計算單元投入后,計算性能/功率/效率相當。

表6 實驗結果Table 6 The result from experiment

在功耗方面,當“調度策略2”使用4個共享線程單元功率時為130.13 W,與“調度策略1”的3個全資源線程單元功率相當,但執行速度要快于“調度策略1”;“調度策略2”使用10個線程單元執行時間為171.18 s,與“調度策略1”的7個線程單元時間相當,但功率卻比“調度策略1”降低了3 W。同樣“調度策略2”使用12個線程單元執行時間與“調度策略1”的9個線程單元時間相當,但功率卻比“調度策略1”降低了7.82 W。表7以8個物理核心為單位對表6中的數據進行了對比。圖2、3、4分別為HP DK388P服務器上時間、“性能/功率/物理計算單元數”、功率三項指標,在“調度策略1”與“調度策略2”兩種策略下的比較圖示。限于篇幅數據表格不再列出。

表7 實驗結果分析Table 7 The analysis on experimental results

圖2 HPDK388P服務器計算執行時間對比Fig.2 Comparison of execution time on server HPDK388P

圖3 HPDK388P服務器計算性能/功率/物理計算單元對比Fig.3 Comparison of performance,power and physics computing elements on server HPDK388P

圖4 HPDK388P服務器計算功率對比Fig.4 Comparison of powers on server HPDK388P

圖2~4顯示HP DK388P服務器在性能、功率及"加速比/功率/物理計算單元數"具有與DELL C6100基本相似的特性。

綜上所述,論文提出的面向“性能/功率/物理計算單元數”的調度策略充分挖掘了Hyper Threading架構的特點,有效提高了計算系統的計算效率。

4 結束語

本文分析了現有計算操作系統對Hyper Threading技術支持的不足之處,提出了利用線程親和性調整線程單元的分配順序的調度策略,有效挖掘SMT技術的ILP與TLP;所提方法可以在應用層、在運行時支持與操作系統層靈活部署,用以滿足不同用戶計算任務的需求,從而有效地提高了系統計算資源利用率,并使得并行計算任務可以用更低的功耗獲得更高的性能。

[1]林闖,田源,姚敏.綠色網絡和綠色評價:節能機制、模型和評價[J].計算機學報,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]馮國富,王明,李亮,等.共享存儲MapReduce云計算性能測試方法[J].計算機工程,2012,38(6):50-52

[4]馮國富,董小社,胡冰,等.一種支持多種訪存技術的CBEA片上多核MPI并行編程模型[J].計算機學報,2008(11):1965-1974

[5]董小社,馮國富,王旭昊,等.基于Cell多核處理器的層次化運行時支持技術[J].計算機研究與發展,2010(4):561-570

[6]馮國富,魏恒義,儲鷹,等.支持多種Linux版本的動態內核性能測試技術[J].西安交通大學學報,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

上海市科技創新行動計劃項目:小龍蝦生態智能化設施養殖關鍵技術研究與應用(16391902902);江蘇省國家長江珍稀魚類工程技術研究中心培育點(BM2013012)

林何磊(1992-),男,碩士,主研方向:高性能計算機系統結構.E-mail:heleilin@hotmail.com

*通訊作者:Author for correspondence.E-mail:jt_f@163.com

猜你喜歡
分配物理策略
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
例談未知角三角函數值的求解策略
應答器THR和TFFR分配及SIL等級探討
處處留心皆物理
我說你做講策略
遺產的分配
一種分配十分不均的財富
績效考核分配的實踐與思考
高中數學復習的具體策略
數學大世界(2018年1期)2018-04-12 05:39:14
三腳插頭上的物理知識
主站蜘蛛池模板: 免费一级无码在线网站| 青青久久91| 国产精品午夜福利麻豆| 色婷婷在线影院| 国产精品白浆在线播放| 国产精品密蕾丝视频| 国产精品亚洲专区一区| 欧美日韩国产在线人| 国产免费福利网站| 国产综合无码一区二区色蜜蜜| 国产区人妖精品人妖精品视频| 伦精品一区二区三区视频| 动漫精品中文字幕无码| 视频国产精品丝袜第一页| 成人精品午夜福利在线播放| 91小视频在线| 午夜人性色福利无码视频在线观看| 国产精品久久自在自线观看| 免费AV在线播放观看18禁强制| 久久精品91麻豆| 中文字幕第1页在线播| 日本尹人综合香蕉在线观看| 亚洲成人免费看| 欧美亚洲综合免费精品高清在线观看 | 亚洲,国产,日韩,综合一区| 精品撒尿视频一区二区三区| 国产亚卅精品无码| a毛片在线免费观看| 国产福利不卡视频| 亚洲国产黄色| 一区二区三区在线不卡免费| 亚国产欧美在线人成| 成人在线综合| 日韩欧美综合在线制服| 亚洲AV永久无码精品古装片| 香蕉综合在线视频91| 日本91视频| 欧美日韩v| 亚洲综合精品第一页| 91小视频在线观看| 亚洲综合极品香蕉久久网| 亚洲欧美日韩中文字幕在线一区| 国内视频精品| 国产精品一区二区国产主播| 亚洲国产成人精品无码区性色| 手机成人午夜在线视频| 国产一区亚洲一区| 亚洲成网站| 99在线免费播放| 亚洲Va中文字幕久久一区| 国产免费看久久久| 99re66精品视频在线观看| 中文国产成人久久精品小说| 内射人妻无码色AV天堂| 欧美日韩亚洲综合在线观看| 国产主播在线一区| 看看一级毛片| 亚洲人成网站在线观看播放不卡| 国产午夜一级淫片| 狠狠色丁婷婷综合久久| 欧美在线中文字幕| 欧美综合中文字幕久久| 小说 亚洲 无码 精品| 国产精品无码AV中文| 国产精品三区四区| 久久鸭综合久久国产| 啪啪免费视频一区二区| 国产你懂得| 99re视频在线| 国产精品999在线| 国产成人1024精品| 99精品在线视频观看| 四虎成人精品| 91精品综合| 黄色福利在线| 国产免费好大好硬视频| 国产精品欧美在线观看| 国产国拍精品视频免费看| 久久久久夜色精品波多野结衣| 一区二区三区国产精品视频| 中日韩一区二区三区中文免费视频| 成年人国产网站|