摘? 要: 通過對多核應用技術進行系統(tǒng)效率與任務屬性關系的優(yōu)化分析,,得出系統(tǒng)所接受任務的不同屬性與對應的系統(tǒng)效率之間的指令級仿真結(jié)果,,證明了系統(tǒng)面向的任務屬性與選擇的多核系統(tǒng)性能存在科學的性價比,,從而保證了期望的系統(tǒng)計算力與整體架構之間符合原本的科學性與經(jīng)濟性。
關鍵詞: 多核系統(tǒng)效率;任務屬性;指令級仿真
?
? 多核CPU支持的緊耦合并行結(jié)構對面向移動計算或高性能計算機(HPC)系統(tǒng)的技術支持是時下業(yè)界研究的熱點,。然而,并行體系結(jié)構設計與應用表明:系統(tǒng)的并行處理能力與系統(tǒng)的整體效率不一定成正比。對于確定的任務,,計算量增加,系統(tǒng)效率可能下降[1],。所以,,在引入多核結(jié)構提升系統(tǒng)并行處理能力過程中,充分考慮系統(tǒng)所處理任務的屬性是獲得高系統(tǒng)效率的關鍵因素之一,。
? 人們在追求計算機高速度運行,、高可靠性的今天,更加注重系統(tǒng)效率[2-3],。尤其是摩爾定理遇到瓶頸時,,驅(qū)動了多核CPU設計,同時基于多核的并行程序設計也隨之成為研究熱點,,多核并行硬件和軟件協(xié)調(diào)進步仍然延續(xù)著ENIAC以來的相輔相成發(fā)展的技術路線,,成為新概念上的研究領域。
? 對計算機性能準確建模非常復雜[4],,其中最基本的因素包括存儲器層次結(jié)構,、操作系統(tǒng)、互聯(lián)網(wǎng)絡、處理機技術,、高速緩存與存儲管理,、延遲包容或吸收機制、算法設計與編程語言等,。然而,,這些技術細節(jié)僅僅源自計算機系統(tǒng)本身,而隨著非科學計算的處理任務日趨顯現(xiàn)(如流媒體處理,、模式識別,、圖像處理、知識發(fā)現(xiàn),、多媒體庫操作等),,傳統(tǒng)的并行處理機制與結(jié)構所追求的并行能力指標將不再適應新屬性任務處理,研究任務屬性與系統(tǒng)效率或整體性能,,將成為并行處理體系結(jié)構設計與應用的重要課題,。
1 并行系統(tǒng)的并行能力與效率描述
? 在研究并行處理技術過程中,因為Von Neumann機的存儲程序結(jié)構及系統(tǒng)的整體處理能力,,取決于系統(tǒng)的全部處理節(jié)點或多核訪問內(nèi)存的機制與效率[2],。所以,當代典型的并行機系統(tǒng)都重點研究訪問內(nèi)存的技術與方法,。
1.1? 幾種典型的并行機系統(tǒng)
??? 當前典型的并行機系統(tǒng)有共享存儲的對稱多處理機SMP(Symmetric Multi-Processor),、大規(guī)模并行處理機MPP(Massively Parallel Processor)、分布式共享存儲器多處理機DSM(Distributed Shared Memory),、工作站機群COW(Cluster of Workstations)和跨地域性的,、用高速網(wǎng)絡將異構性計算節(jié)點連接起來滿足用戶分布式計算要求的網(wǎng)格計算環(huán)境GCE(Grid Computational Environment)。
1.2? 并行計算機訪存模型
均勻存儲訪問模型(Uniform Memory Access),,其重要特征是物理存儲器被所有處理器均勻共享,,所有處理器訪問任何存儲字的時間相同;每臺處理器都帶私有高速緩存,,外圍設備也可以一定形式共享,。也稱為緊耦合系統(tǒng)(Tightly Coupled System)。當所有處理器都能等同地訪問所有I/O設備,、能同樣地運行程序(如操作系統(tǒng)內(nèi)核,、I/O服務程序等)時,稱為對稱多處理機(SMP),。
非均勻存儲訪問模型(Non-uniform Memory Access),,所共享的存儲器在物理上是分布在所有的處理機中,其所有本地存儲器的集合就組成了全局地址空間,。處理器訪問存儲器的時間不一樣,,訪問本地存儲器LM或群內(nèi)共享存儲器CSM較快,,而訪問外地存儲器或全局共享存儲器GSM(Global Share Memory)較慢。每臺處理器照例可帶私有高速緩存,,外設也可以某種形式共享,。
全高速緩存存儲訪問模型(Cache-Only Memory Access),各處理器節(jié)點中沒有存儲層次結(jié)構,,全部高速緩存組成了全局地址空間,。利用分布的高速緩存目錄D進行遠程高速緩存的訪問,緩存容量一般都大于二級高速緩存容量,。數(shù)據(jù)開始可任意分配,,隨著進程的推進,數(shù)據(jù)最終被遷移到相應存儲空間,。
高速緩存一致性非均勻存儲訪問模型(Cache-Coherent Non-uniform Memory Access),,絕大多數(shù)商用系統(tǒng)都使用基于目錄的高速緩存一致性協(xié)議,比較SMP優(yōu)化了可擴展性,,是一種分布共享存儲的多處理機系統(tǒng),。隨著進程推進,數(shù)據(jù)自遷移到所用的空間,。
非遠程存儲訪問模型(No-Remote Memory Access),,所有存儲器是私有的,不支持遠程存儲器訪問,。
1.3? 系統(tǒng)加速比與效率
多處理器加速比和處理機效率可分別表示為:
因為最佳加速比是線性的,,即:SP=Op,所以最佳效率就是常數(shù),,即:E=Const (0≤Const≤1),。
由(1)式知,P增加,,則E下降,,但能夠通過優(yōu)化算法使E增加,。當然是增加了算法優(yōu)化過程的工作量(Workload),,即由于付出Workload開銷,在系統(tǒng)處理機數(shù)量增加時維持系統(tǒng)效率不變,。這就是本文提出的基于任務屬性分析結(jié)果,,科學地選擇多核系統(tǒng)結(jié)構的概念。所以,,始終保持一定效率常數(shù)的優(yōu)化系統(tǒng),,應該能夠?qū)崟r對系統(tǒng)內(nèi)參與運行的處理機數(shù)量實現(xiàn)科學調(diào)度,這等同于大規(guī)模作戰(zhàn)系統(tǒng)的指揮,,必須科學地調(diào)兵遣將,。
2? 指令級并行與多核CPU
實現(xiàn)指令級并行(ILP)處理的基本要求是被執(zhí)行指令序列不存在指令與數(shù)據(jù)相關,,系統(tǒng)能在同一絕對時間或相對時間內(nèi)并行執(zhí)行多個任務指令或線程,現(xiàn)代多核CPU能支持片內(nèi)多線程平行推進,。如果任務的指令序列存在相關性,,平行推進過程將出現(xiàn)“參差不齊”或線程暫停而阻塞相關核的運行線程現(xiàn)象。所以,,需要事先找出指令代碼中合適的指令序列段(S),,如果執(zhí)行S的時鐘周期能正好等于原來被阻塞的延遲時間(Delay),則能有效地緩沖或吸收線程阻塞,,繼續(xù)維持多核的多線程平行推進,。
現(xiàn)代多核CPU實際上引入了多線程平行推進過程中自適應進程遷移技術,即當某核的線程被阻塞時,,能自動完成相應線程上的進程段遷移,,相當于上述執(zhí)行S而吸收線程阻塞。
如上分析,,指令級并行度與多核CPU支持的系統(tǒng)效率緊密關聯(lián),。如何利用軟硬件技術去最大限度地開發(fā)處理機中的指令級并行性,關鍵在于要知道何時及如何改變指令順序,。在實際運用中,,這種改變過程必須由編譯器或硬件正確實現(xiàn)。顯而易見,,多核系統(tǒng)如果不能保證多核多線程平行推進,,則更多的核可能更影響多核系統(tǒng)的整體效率,這成為目前對多核CPU結(jié)構研究的重點,。
3?不同屬性的任務對多核CPU處理能力與效率的影響分析
應用系統(tǒng)對計算力或計算機的處理能力的需求是可以標定的,。尤其是對于給定的科學計算問題,所需要的處理時間幾乎能預估,。而面向非科學計算問題的處理,,處理系統(tǒng)要開銷的時間往往不可預知。比如,,在一個大型網(wǎng)絡數(shù)據(jù)庫系統(tǒng)內(nèi)完成相應的知識發(fā)現(xiàn),,需要開銷的時間可能各不相同,因待發(fā)現(xiàn)問題的算法(約束方程)而異,。產(chǎn)生“不同”的原因其實與發(fā)現(xiàn)問題(處理任務)的屬性相關,,如果任務(Task)是可細粒度劃分的,則由多核CPU支持的并行系統(tǒng)處理效率高,。由于細粒度劃分算法的工作開銷(Workload),,保證了多核CPU的多線程能平行推進,實現(xiàn)高的并行效率,。
考慮一種理想狀態(tài),,被處理任務可劃分為均勻的四大模塊,,且并行系統(tǒng)由四核CPU支持,宏觀上生成四條平行的流水線,,由于每條流水線上的指令序列不存在任何相關性,,則四核的指令級線程將平行推進,處理效率最高,。如果Task客觀上只能分成均勻的兩大模塊(分成均勻的四塊將出現(xiàn)相關),,且同樣在四核CPU系統(tǒng)上運行,其系統(tǒng)效率將可以如下計算:
設四核處理均勻四模塊的時間為T4,,則兩核處理均勻兩模塊的時間為2T4,。
如果由四核處理均勻兩模塊任務序列,且指令級并行過程中存在的相關性產(chǎn)生的線程阻塞花費的吸收開銷為TP,,當且僅當TP≤2T4時,,該并行系統(tǒng)才是功能上與四核處理四模塊等價的,但性價比則大大降低,。
因此,,明晰應用系統(tǒng)的屬性更能指導并行系統(tǒng)的選擇或構建,科學地分析系統(tǒng)整體效率或系統(tǒng)結(jié)構選擇,,在并行系統(tǒng)不斷發(fā)展進程中應該具有重要意義,。
4?任務屬性與系統(tǒng)效率實際仿真實例
本文采用VC6.0編程對多核并行處理進行仿真,仿真結(jié)果如圖1和圖2所示,。
?
?
比較圖1,、圖2,可以得到以下結(jié)論:
動態(tài)效率(圖中第二條曲線)始終低于靜態(tài)效率(理想效率),。動態(tài)效率是多核改變原指令執(zhí)行順序,,同時受核自身的空間、當前任務量影響,。
靜態(tài)效率(圖中第一條曲線)是任務在隨機生成時,,靜態(tài)順序執(zhí)行,運用Amdahl定律計算出來的,。第二曲線低于第一曲線原因分析如下:
(1)動態(tài)執(zhí)行中多核之間協(xié)同發(fā)生同步等待延時,,系統(tǒng)效率下降;
(2)某時刻處理單元空閑,,產(chǎn)生等待延時,,系統(tǒng)效率下降;
(3)改變指令原有的執(zhí)行順序,,引起效率變化。
第二曲線比第一曲線長是因為產(chǎn)生延時等待,。當系統(tǒng)中核的負載均衡,,即線程可平行推進時,,動態(tài)效率更接近靜態(tài)的理想效率,這與實際非常吻合,,說明了基于Amdahl定律計算系統(tǒng)效率是可行的,。
當系統(tǒng)中有一個或多個核長時間空閑時,則整個系統(tǒng)效率明顯下降,。
當任務分配不均勻,,指令相關產(chǎn)生的等待或吸收,則動態(tài)效率非常不穩(wěn)定,。
以上結(jié)論基于最初的指令級抽象,、分配、執(zhí)行策略,,但由于是靜態(tài)調(diào)度,,Krste Asanovic的工作[5]指出了其4個主要的缺點:
(1)不可預料的轉(zhuǎn)移;
(2)可變的內(nèi)存延遲(無法預料的cache不命中),;
(3)代碼大小的爆炸,;
(4)編譯器的復雜性。
所以,,仿真證明了任務屬性與多核CPU支持的并行系統(tǒng)效率之間存在的緊密關系,,是指導提高應用系統(tǒng)性價比的重要因素。
多核處理器是處理器發(fā)展的必然趨勢,。無論是移動或嵌入式應用,、桌面應用還是服務器應用,都將采用多核的架構[6],。
多核處理器要想發(fā)揮出威力,,關鍵在于并行化軟件支持,多核設計帶動并行化計算的推進,,而給軟件帶來的影響更是革命性的[7],。面對多核系統(tǒng),需要有并行編程的思想才有可能充分利用資源,,而人類的思維模型習慣于線性思維,,對“面”或者更為復雜的立體編程模式,效率會下降很多,。
仿真結(jié)果證明了多核CPU支持的并行系統(tǒng)效率提升與確定系統(tǒng)所面向的任務屬性至關重要,,它將有效地指導業(yè)界的應用系統(tǒng)優(yōu)化設計。
參考文獻
[1] ?郭云芳.計算機仿真技術[M].北京:北京航天航空大學出版社,1991:1-2.
[2] ?康繼昌.現(xiàn)代并行計算機原理[M].北京:西北工業(yè)大學出版社,1997.
[3] ?陳樹清.并行計算機的現(xiàn)狀與發(fā)展趨勢[J].計算機世界,1997,(15).
[4] ?JOROAN F,,GITA A.并行處理基本原理[M].遲利華,劉杰,譯.北京:清華大學出版社,2004:35-310.
[5] ?ASANOVIC K.VLIW/EPIC:靜態(tài)調(diào)度的指令級并行.http://www.core.org.cn/.2008.
[6] ?汪東升.多核引領計算機架構質(zhì)變[J].計算機世界,2008,(40):43-45.
[7] ?姜波.多核引發(fā)變革:服務器軟件的并行化革命.http://net.yesky.com/.2008.