陳繼承 趙雅倩 李一韓 王恩東 史宏志 唐士斌
(高效能服務(wù)器和存儲技術(shù)國家重點實驗室(浪潮集團有限公司) 北京 100085)
(chenjch@inspur.com)
緩存一致性維護是影響高速緩存一致性非均勻存儲訪問(cache coherence non-uniform memory access, CC-NUMA)系統(tǒng)性能的關(guān)鍵因素.早期的CC-NUMA系統(tǒng)中,處理器數(shù)量較少,各處理器間直接互連,系統(tǒng)采用單級一致性域設(shè)計即可滿足系統(tǒng)性能需求.但隨著系統(tǒng)規(guī)模的擴展,單級一致性域系統(tǒng)的處理器互連結(jié)構(gòu)越來越復(fù)雜,消息全局性傳播引發(fā)的網(wǎng)絡(luò)阻塞延遲越來越大,緩存一致性維護開銷急劇增長,嚴重影響系統(tǒng)性能與擴展性.因此,8路以上的CC-NUMA系統(tǒng)通常采用兩級一致性域設(shè)計抑制緩存一致性維護開銷,即:多個處理器互連組成結(jié)點后形成結(jié)點內(nèi)一致性域,多個結(jié)點互連組成系統(tǒng)后形成結(jié)點間一致性域,兩級一致性域間的協(xié)議轉(zhuǎn)換通過一致性協(xié)同芯片(coherence chip, CC)實現(xiàn)[1-3].該方法可將一致性維護操作盡量限制在局部區(qū)域以避免一致性消息的全局傳播,避免了單級一致性域造成的系統(tǒng)互連結(jié)構(gòu)復(fù)雜、跨處理器訪問跳步數(shù)多、高負載下阻塞延遲急劇增長等難題[4],從而使系統(tǒng)性能得到有效擴展.
受限于處理器的直連能力和處理器可識別的ID數(shù),CC-NUMA系統(tǒng)所能構(gòu)建的單結(jié)點規(guī)模有限,系統(tǒng)擴展只能通過增加結(jié)點數(shù)目來實現(xiàn).但是,結(jié)點數(shù)目的增加會導(dǎo)致一致性目錄存儲開銷上升、跨結(jié)點訪問跳步數(shù)和延遲增大、系統(tǒng)規(guī)模無法進一步有效擴展.針對上述問題,當前CC-NUMA系統(tǒng)采用目錄優(yōu)化[5]、片外緩存擴展[6-8]、緩存數(shù)據(jù)預(yù)取[9-11]、一致性協(xié)議優(yōu)化[12-14]等方法來降低跨結(jié)點訪問頻度,減少一致性開銷.
然而,上述優(yōu)化方法都是通過減少跨結(jié)點訪問頻度間接減少平均訪問延遲,對系統(tǒng)拓撲結(jié)構(gòu)沒有改變,沒有縮短跨結(jié)點訪問路徑和跳步數(shù).針對該問題,本文提出了一種可任意配置結(jié)點內(nèi)處理器規(guī)模的CC-NUMA系統(tǒng)——多并行緩存一致性域(multiple parallel cache coherency domain, MPD).該系統(tǒng)通過在結(jié)點內(nèi)構(gòu)建多個并行緩存一致性域來擴大單結(jié)點規(guī)模,使其不再受限于處理器直連能力和處理器可識別ID數(shù),從而減少系統(tǒng)結(jié)點數(shù)量,簡化系統(tǒng)拓撲結(jié)構(gòu),縮短訪問路徑和跳步數(shù),直接減少系統(tǒng)平均訪問延遲.同時,由于結(jié)點內(nèi)的多個緩存一致性域之間是并行關(guān)系,連接至1個一致性協(xié)同芯片,共同構(gòu)成結(jié)點內(nèi)一致性域,所以,與傳統(tǒng)CC-NUMA系統(tǒng)相比,MPD系統(tǒng)并未增加緩存一致性域的層級.
為減少緩存遠端訪問頻率,降低緩存一致性維護開銷,CC-NUMA系統(tǒng)通常將緩存資源劃分為2個一致性同步域,使用兩級緩存一致性協(xié)議對各一致性域進行一致性管理.圖1是一個典型的多結(jié)點CC-NUMA系統(tǒng),包含結(jié)點內(nèi)一致性域和結(jié)點間一致性域的兩級緩存一致性域.
1) 結(jié)點內(nèi)一致性域.n個處理器與1個一致性協(xié)同芯片互連,構(gòu)成結(jié)點內(nèi)一致性域,維護的是本結(jié)點內(nèi)n個處理器間的緩存一致性.
2) 結(jié)點間一致性域.M個結(jié)點通過一致性協(xié)同芯片互連,構(gòu)成結(jié)點間一致性域,維護的是系統(tǒng)內(nèi)各結(jié)點間的緩存一致性.
兩級一致性域系統(tǒng)中,一致性協(xié)同芯片用于維護兩級一致性協(xié)議的轉(zhuǎn)換和維護,該芯片通常包含遠端代理(remote proxy, RP)和本地代理(local proxy, LP)兩個處理單元.
1) RP.結(jié)點一致性協(xié)同芯片的遠端內(nèi)存代理,存儲遠端地址數(shù)據(jù)在本地結(jié)點內(nèi)處理器的一致性狀態(tài),監(jiān)控本地處理器對遠端地址的請求,可與本地處理器及遠端結(jié)點一致性協(xié)同芯片的LP單元進行通信.
2) LP.結(jié)點一致性協(xié)同芯片的本地內(nèi)存代理,存儲本結(jié)點地址的數(shù)據(jù)在其他遠端結(jié)點的一致性狀態(tài),監(jiān)控遠端結(jié)點對本地地址的請求,可與本地根目錄及遠端結(jié)點一致性協(xié)同芯片的RP單元進行通信.
偵聽與目錄是對緩存一致性信息的2種處理方式[15].由于偵聽協(xié)議可擴展性差,所以,CC-NUMA系統(tǒng)多采用基于目錄的緩存一致性協(xié)議.結(jié)點一致性協(xié)同芯片的緩存一致性目錄記錄了各緩存行的一致性狀態(tài)(State)、共享列表(Share List)和寫權(quán)限擁有者(Owner),按緩存數(shù)據(jù)地址的不同,分別由RP與LP單元維護與更新.
RP目錄存儲了遠端數(shù)據(jù)在本結(jié)點的一致性狀態(tài)信息,目錄項如圖2所示:
1) State——狀態(tài)位,記錄遠端數(shù)據(jù)在本結(jié)點的一致性狀態(tài),其長度與協(xié)議有關(guān),如MI協(xié)議占用1 b,MESI協(xié)議占用2 b;
2) Share List——共享列表,記錄遠端數(shù)據(jù)在本地結(jié)點內(nèi)處理器的一致性狀態(tài),其長度與目錄實現(xiàn)技術(shù)有關(guān),如全映射目錄[3]的共享列表長度為n;
3) Owner——寫權(quán)限擁有者,記錄遠端數(shù)據(jù)在本結(jié)點內(nèi)處于ME態(tài)的處理器ID,其長度為n.
LP目錄存儲了本地數(shù)據(jù)在遠端結(jié)點的一致性狀態(tài)信息,目錄項如圖3所示:
Fig. 3 LP directory entry in CC-NUMA system圖3 CC-NUMA系統(tǒng)結(jié)點一致性協(xié)同芯片LP目錄項
1) State——狀態(tài)位,記錄本地數(shù)據(jù)在本結(jié)點的一致性狀態(tài);
2) Share List——共享列表,記錄本地數(shù)據(jù)在本結(jié)點i之外的所有遠端結(jié)點的一致性狀態(tài),全映射目錄的共享列表長度為M-1;
3) Owner——寫權(quán)限擁有者,記錄本地數(shù)據(jù)在遠端結(jié)點處于ME態(tài)的遠端結(jié)點ID,其長度為M-1.
MPD系統(tǒng)是一個結(jié)點內(nèi)包含多個并行緩存一致性域的CC-NUMA系統(tǒng).如圖4所示,n個處理器與結(jié)點一致性協(xié)同芯片緊耦合互連,構(gòu)成1個緩存一致性域(cache coherence domain, CCD);k個緩存一致性域并行連接至1個結(jié)點一致性協(xié)同芯片,共同構(gòu)成結(jié)點內(nèi)一致性域;m個結(jié)點通過結(jié)點一致性協(xié)同芯片互連,構(gòu)成結(jié)點間一致性域,m=Mk.與圖1的CC-NUMA系統(tǒng)相比,圖4的MPD系統(tǒng)結(jié)點數(shù)量縮減為原系統(tǒng)的1k.
MPD系統(tǒng)中,結(jié)點內(nèi)的多個緩存一致性域并行連接至1個一致性協(xié)同芯片,并由該協(xié)同芯片統(tǒng)一維護其結(jié)點內(nèi)的緩存一致性,也就是說,這些并行的緩存一致性域并不單獨維護一致性域.所以,MPD系統(tǒng)的一致性域設(shè)計與CC-NUMA系統(tǒng)相同,都是結(jié)點內(nèi)結(jié)點間兩級一致性域架構(gòu),使用兩級緩存一致性協(xié)議,兩級一致性域間的協(xié)議轉(zhuǎn)換通過一致性協(xié)同芯片實現(xiàn).
1) 結(jié)點內(nèi)一致性域.k個緩存一致性域與1個一致性協(xié)同芯片互連,構(gòu)成結(jié)點內(nèi)一致性域,由本結(jié)點的一致性協(xié)同芯片統(tǒng)一維護結(jié)點內(nèi)nk個處理器間的緩存一致性.
Fig. 4 MPD system with multiple clumps圖4 多結(jié)點MPD系統(tǒng)
2) 結(jié)點間一致性域.m個結(jié)點通過一致性協(xié)同芯片互連,構(gòu)成結(jié)點間一致性域,由各結(jié)點的一致性協(xié)同芯片共同維護系統(tǒng)各結(jié)點間的緩存一致性.
與CC-NUMA系統(tǒng)類似,MPD系統(tǒng)的結(jié)點一致性協(xié)同芯片也包括遠端代理RP和本地代理LP這2個處理單元,但邏輯功能和通信單元略有差異,主要是對LP進行了功能擴展,以同時維護結(jié)點內(nèi)所有處理器的緩存一致性.
1) RP.結(jié)點一致性協(xié)同芯片的遠端內(nèi)存代理,存儲遠端地址數(shù)據(jù)在本地結(jié)點內(nèi)(含本結(jié)點內(nèi)所有緩存一致性域)處理器的一致性狀態(tài),監(jiān)控本結(jié)點內(nèi)所有處理器對遠端地址的請求,可與本結(jié)點內(nèi)處理器或遠端結(jié)點一致性協(xié)同芯片的LP單元進行通信.
2) LP.結(jié)點一致性協(xié)同芯片的本地內(nèi)存代理,存儲結(jié)點內(nèi)各緩存一致性域的本地數(shù)據(jù)在本結(jié)點內(nèi)其他緩存一致性域各處理器以及系統(tǒng)內(nèi)所有遠端結(jié)點的一致性狀態(tài),監(jiān)控各緩存一致性域?qū)Y(jié)點內(nèi)其他緩存一致性域的請求以及遠端結(jié)點對本地地址的請求,可與本結(jié)點內(nèi)處理器、根目錄以及遠端結(jié)點一致性協(xié)同芯片的RP單元進行通信.
從CC-NUMA與MPD系統(tǒng)中RP與LP的邏輯功能對比來看,MPD系統(tǒng)中的RP與LP單元需要存儲更多處理器的一致性狀態(tài)信息,所以需要對CC-NUMA系統(tǒng)的一致性協(xié)同芯片目錄的共享列表進行擴展.
RP目錄存儲了遠端數(shù)據(jù)在本結(jié)點內(nèi)所有并行緩存一致性域的一致性狀態(tài)信息,目錄項如圖5所示.
1) State——狀態(tài)位,記錄遠端數(shù)據(jù)在本結(jié)點的一致性狀態(tài);
2) Share List——共享列表,記錄遠端數(shù)據(jù)在本地結(jié)點所有緩存一致性域內(nèi)處理器的一致性狀態(tài),全映射目錄的共享列表長度為nk;
3) Owner——寫權(quán)限擁有者,記錄遠端數(shù)據(jù)在本結(jié)點內(nèi)處于ME態(tài)的處理器ID,其長度為lb(nk).
Fig. 5 RP directory entry in MPD system圖5 MPD系統(tǒng)RP目錄項
LP目錄存儲了本結(jié)點各緩存一致性域的本地數(shù)據(jù)在結(jié)點內(nèi)其他并行緩存一致性域以及系統(tǒng)遠端結(jié)點的一致性狀態(tài)信息,目錄項如圖6所示.
1) State——狀態(tài)位,記錄本地數(shù)據(jù)在本結(jié)點的一致性狀態(tài);
3) Owner——寫權(quán)限擁有者,記錄本地數(shù)據(jù)在遠端結(jié)點處于ME態(tài)的遠端結(jié)點ID,或緩存一致性域本地數(shù)據(jù)在結(jié)點內(nèi)其他緩存一致性域處于ME態(tài)的處理器ID,長度為
Fig. 6 LP directory entry in MPD system圖6 MPD系統(tǒng)LP目錄項
雖然MPD系統(tǒng)與CC-NUMA系統(tǒng)的緩存一致性域?qū)哟蜗嗤?,但兩者的系統(tǒng)架構(gòu)不同,因此,2種系統(tǒng)的緩存一致性交互流程略有不同.
1) 緩存一致性域內(nèi)訪問
MPD系統(tǒng)與CC-NUMA系統(tǒng)的緩存一致性域結(jié)構(gòu)相同,都是由多個處理器與一致性協(xié)同芯片互連而成,因此,兩者的緩存一致性域內(nèi)訪問流程相同,均為CPU與根目錄直接交互,如圖7所示:
Fig. 7 Access within the same CCD in CC-NUMA or MPD system圖7 CC-NUMA系統(tǒng)與MPD系統(tǒng)的緩存一致性域內(nèi)訪問
2) 緩存一致性域間訪問
CC-NUMA系統(tǒng)內(nèi),結(jié)點內(nèi)一致性域由單個緩存一致性域構(gòu)成,所以,緩存一致性域間訪問即為結(jié)點間一致性訪問,如圖8所示:
Fig. 8 Access between different CCDs in CC-NUMA system圖8 CC-NUMA系統(tǒng)的緩存一致性域間(結(jié)點間)訪問
MPD系統(tǒng)內(nèi),單個結(jié)點一致性域內(nèi)包含多個緩存一致性域,因此,MPD系統(tǒng)的緩存一致性域間訪問包含了結(jié)點內(nèi)的緩存一致性域間訪問和結(jié)點間的緩存一致性域間訪問2種類型,如圖9所示:
Fig. 9 Access between CCDs in MPD system圖9 MPD系統(tǒng)的緩存一致性域間訪問
圖9(a)描述了MPD系統(tǒng)獨有的結(jié)點內(nèi)跨緩存一致性域訪問,它將CC-NUMA系統(tǒng)中的遠端跨結(jié)點訪問轉(zhuǎn)換為近端結(jié)點內(nèi)跨域訪問,僅與本地一致性協(xié)同芯片進行交互;圖9(b)描述了與CC-NUMA系統(tǒng)相同的結(jié)點間的緩存一致性域間訪問,需與本地一致性協(xié)同芯片及遠端一致性協(xié)同芯片進行交互.
從2種系統(tǒng)的緩存一致性交互流程描述來看,MPD系統(tǒng)中的緩存一致性訪問分為3類:
1) 結(jié)點內(nèi)的緩存一致性域內(nèi)訪問.該類訪問對應(yīng)CC-NUMA系統(tǒng)的結(jié)點一致性內(nèi)訪問(即緩存一致性域內(nèi)訪問),兩者開銷相同.
2) 結(jié)點內(nèi)的緩存一致性域間訪問.該類訪問對應(yīng)CC-NUMA系統(tǒng)中的結(jié)點間訪問,前者僅通過本地CC即可進行交互,而后者需要通過本地CC與遠端CC才可進行交互,前者開銷小于后者.
3) 結(jié)點間的緩存一致性域間訪問.該類訪問對應(yīng)CC-NUMA系統(tǒng)中的結(jié)點間訪問,兩者開銷相同.
因此,與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)并未產(chǎn)生額外的一致性開銷,并將部分結(jié)點間訪問轉(zhuǎn)換為結(jié)點內(nèi)訪問,直接縮短了訪問路徑與跳步數(shù),從而降低系統(tǒng)平均訪問延遲,減少一致性維護開銷,提升系統(tǒng)性能.
MPD系統(tǒng)通過在結(jié)點內(nèi)構(gòu)建多個并行緩存一致性域突破了單結(jié)點規(guī)模限制,減少了結(jié)點數(shù)量,從而降低了結(jié)點規(guī)模和結(jié)點間網(wǎng)絡(luò)復(fù)雜度.
假設(shè)某系統(tǒng)規(guī)模(即處理器總數(shù))為N,單個緩存一致性域內(nèi)最多容納處理器數(shù)量為n,那么,傳統(tǒng)CC-NUMA系統(tǒng)和MPD系統(tǒng)的結(jié)點數(shù)Num_C以及結(jié)點間全互連的連接數(shù)T分別為
Num_CCC-NUMA=Nn,
(1)
TCC-NUMA=N(N-n)2n2,
(2)
Num_CMPD=Nnk,
(3)
TMPD=N(N-nk)2(nk)2,
(4)
其中,k為MPD系統(tǒng)中單個結(jié)點內(nèi)包含的并行緩存一致性域個數(shù).
由式(1)~(4)可以得出,同等系統(tǒng)規(guī)模下,傳統(tǒng)CC-NUMA系統(tǒng)和MPD系統(tǒng)的結(jié)點數(shù)量的比值ηNum_C為
(5)
結(jié)點間全互連的連接數(shù)比值ηT為
(6)
因此,與傳統(tǒng)CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的結(jié)點規(guī)??煽s減至1k,結(jié)點間全互連的連接數(shù)可降低到1k2以下.例如,當N=64,n=4,k=2時,MPD系統(tǒng)的結(jié)點規(guī)模降低50%,結(jié)點間全互連的連接數(shù)降低77%;而當N=64,n=4,k=4時,MPD系統(tǒng)的結(jié)點規(guī)模降低75%,結(jié)點間全互連的連接數(shù)降低95%.
由于同一結(jié)點內(nèi)不同緩存一致性域間的近端跨域訪問延遲遠小于不同結(jié)點間的遠端跨結(jié)點訪問延遲,所以MPD系統(tǒng)的平均訪問延遲低于CC-NUMA系統(tǒng),如圖10所示:
Fig. 10 Clump architecture in different systems built with different CPU圖10 不同規(guī)格處理器搭建的系統(tǒng)單結(jié)點架構(gòu)
假設(shè)MPD系統(tǒng)中同一緩存一致性域內(nèi)的平均訪問延遲為l,同一結(jié)點內(nèi)不同緩存一致性域間的平均訪問延遲為3l,不同結(jié)點間的平均訪問延遲為7l,緩存一致性域內(nèi)的緩存次數(shù)占比為α,近端結(jié)點內(nèi)跨域的訪問次數(shù)占比為β,那么,MPD系統(tǒng)的遠端跨結(jié)點的訪問次數(shù)占比為1-α-β,而相同規(guī)模的CC-NUMA系統(tǒng)的遠端跨結(jié)點的訪問次數(shù)占比為1-α.因此,同規(guī)模的MPD系統(tǒng)與CC-NUMA系統(tǒng)的平均訪問延遲L分別為
LMPD=l×α+3l×β+7l×(1-α-β)=
l×(7-6α-4β),
(7)
LCC-NUMA=l×α+7l×(1-α)=l×(7-6α).
(8)
① 該結(jié)論僅針對大規(guī)模CC-NUMA系統(tǒng),單結(jié)點等小規(guī)模系統(tǒng)不保證不等式結(jié)論成立.
由式(7)(8)可得2種系統(tǒng)平均訪問延遲的比值為
(9)
假設(shè)α=10%,β=30%,則2種系統(tǒng)的平均訪問延遲之比為1316=0.812 5,即MPD系統(tǒng)的平均訪問延遲降低了近2成,有效提高了系統(tǒng)性能.
CC-NUMA系統(tǒng)中,每個緩存一致性域單獨維護1個結(jié)點一致性目錄,結(jié)點數(shù)量較多,系統(tǒng)的結(jié)點一致性目錄開銷較大;而MPD系統(tǒng)中,多個并行緩存一致性域共同維護1個結(jié)點一致性目錄,結(jié)點數(shù)量較少,系統(tǒng)的結(jié)點一致性目錄開銷較小.
以MESI(modified,exclusive, shared or invalid)協(xié)議的全映射目錄結(jié)構(gòu)為例,假設(shè)MPD系統(tǒng)規(guī)模為N,單個緩存一致性域內(nèi)最多容納處理器數(shù)量為n,每個結(jié)點內(nèi)共有k個緩存一致性域,內(nèi)存容量為B,緩存項大小為b,則該系統(tǒng)內(nèi)單個結(jié)點一致性目錄開銷為
(10)
該MPD系統(tǒng)內(nèi)所有結(jié)點的一致性目錄總開銷為
(11)
同等規(guī)模的傳統(tǒng)CC-NUMA系統(tǒng)內(nèi)單個結(jié)點目錄開銷為
(12)
該CC-NUMA系統(tǒng)內(nèi)所有結(jié)點的一致性目錄總開銷為
(13)
由式(11)(13)可得,傳統(tǒng)CC-NUMA系統(tǒng)與MPD系統(tǒng)的結(jié)點一致性目錄總開銷的差值ΔD為
因為在大規(guī)模CC-NUMA系統(tǒng)中,
因此,對于大規(guī)模CC-NUMA系統(tǒng),同等規(guī)模的MPD系統(tǒng)的結(jié)點目錄開銷更小,而且,內(nèi)存容量越大,目錄開銷降低的幅度越大.
以64顆處理器組成的CC-NUMA系統(tǒng)為例,假設(shè)每個緩存一致性域內(nèi)最多可容納2顆處理器,系統(tǒng)內(nèi)存容量為16 GB,單個緩存項大小為128 KB.那么傳統(tǒng)CC-NUMA系統(tǒng)共需32個結(jié)點一致性協(xié)同芯片,目錄開銷為[8×(1 027+31×lb 31)]Mb,約為9.223 Gb;而單結(jié)點內(nèi)含2個并行緩存一致性域的MPD系統(tǒng)僅需16個結(jié)點一致性協(xié)同芯片,目錄開銷為[8×(293+15×lb 17)]Mb,約為2.768 Gb,不到CC-NUMA系統(tǒng)目錄開銷的13;單結(jié)點內(nèi)含4個并行緩存一致性域的MPD系統(tǒng)僅需8個結(jié)點一致性協(xié)同芯片,目錄開銷為[8×(118+7×lb 13)]Mb,約為1.124 Gb,不到CC-NUMA系統(tǒng)結(jié)點目錄開銷的18.
MPD系統(tǒng)中,單結(jié)點規(guī)模不再受處理器直連能力的限制,因此,可以選用直連能力較弱的處理器代替直連能力較強的處理器搭建同等結(jié)點規(guī)模的系統(tǒng),以降低系統(tǒng)成本與功耗.不同直連能力的處理器價格和功耗差異較大.支持8路直連的處理器有3個一致性互連端口,功耗約為130 W,單價約為2 500美元;支持4路直連的處理器有2個一致性互連端口,功耗為115 W,單價為2 000美元;而支持2路直連的處理器僅有1個一致性互連端口,功耗為100 W,單價為1 500美元.
假設(shè)要搭建8結(jié)點的32路系統(tǒng),傳統(tǒng)CC-NUMA系統(tǒng)需要32顆具有8路直連能力的處理器,結(jié)點內(nèi)結(jié)構(gòu)如圖10(a)所示;而結(jié)點內(nèi)含2個并行緩存一致性域的MPD1系統(tǒng)則只需要32顆具有4路直連能力的處理器,結(jié)點內(nèi)結(jié)構(gòu)如圖10(b)所示;結(jié)點內(nèi)含4個并行緩存一致性域的MPD2系統(tǒng)僅需要32顆具有2路直連能力的處理器,結(jié)點內(nèi)結(jié)構(gòu)如圖10(c)所示.
假定一致性協(xié)同芯片的單價為1 000美元,那么,CC-NUMA,MPD1,MPD2這3種8結(jié)點32路系統(tǒng)的硬件成本和處理器功耗如表1所示.相比于傳統(tǒng)CC-NUMA系統(tǒng),單結(jié)點內(nèi)含2個并行緩存一致性域的MPD1系統(tǒng)可降低功耗11.5%,降低成本20%;單結(jié)點內(nèi)含4個并行緩存一致性域的MPD2系統(tǒng)可降低功耗23.1%,降低成本40%.
Table 1 Comparison of Power and Cost AmongDifferent Systems
① 本文實驗設(shè)置較小的內(nèi)存容量是為了避免部分緩存密集訪問,以便更好地模擬大規(guī)模系統(tǒng)的多結(jié)點間的緩存一致性維護.
本文選用gem5[16]對兩級緩存一致性域的MPD系統(tǒng)和CC-NUMA系統(tǒng)進行模擬,模擬系統(tǒng)中,系統(tǒng)結(jié)點無結(jié)點緩存功能,對接收的消息均做轉(zhuǎn)發(fā)處理.各級訪問延遲比為∶緩存域內(nèi)訪問延遲∶結(jié)點內(nèi)訪問延遲∶結(jié)點間訪問延遲=1∶3∶7.實驗的主要系統(tǒng)參數(shù)如表2所示.實驗測試程序選用了SPLASH2[17]的1個內(nèi)核程序和3個應(yīng)用程序,以及PARSEC[18]中的3個應(yīng)用程序,各配置如表3所示.
Table 2 Parameters of System Configuration表2 系統(tǒng)參數(shù)配置
Table 3 Benchmark SPLASH2 and PARSEC表3 測試集SPLASH2與PARSEC
為驗證MPD系統(tǒng)對系統(tǒng)性能有效擴展能力的提升,以及低功耗低成本MPD系統(tǒng)構(gòu)建的可行性,本節(jié)分別對16路、32路和64路的傳統(tǒng)CC-NUMA系統(tǒng)與不同配置的MPD系統(tǒng)進行了對比測試.測試實驗數(shù)據(jù)顯示,不同處理器規(guī)模的系統(tǒng)對比結(jié)果類似.因此,為了避免重復(fù),本節(jié)僅選用32路系統(tǒng)的對比測試數(shù)據(jù)進行說明.另外,為便于數(shù)據(jù)比較的直觀性,各組數(shù)據(jù)均以傳統(tǒng)CC-NUMA的系統(tǒng)性能為標準進行了歸一化處理.
4.2.1 平均訪問延遲對比
圖11顯示了CC-NUMA系統(tǒng)與各MPD系統(tǒng)中不同類型訪問的數(shù)量占比.圖11中的橫坐標m×k代表了系統(tǒng)的緩存一致性域規(guī)模:m代表結(jié)點數(shù),k代表單結(jié)點內(nèi)緩存一致性域數(shù)量.因此,m×1就代表了結(jié)點數(shù)為m的CC-NUMA系統(tǒng).從圖11中各類訪問占比來看,由于MPD系統(tǒng)擴大了單結(jié)點處理器規(guī)模,有效減少了結(jié)點數(shù)量,部分結(jié)點間遠端訪問轉(zhuǎn)換為結(jié)點內(nèi)跨域近端訪問,而且,單結(jié)點處理器規(guī)模越大,轉(zhuǎn)換為結(jié)點內(nèi)跨域訪問的結(jié)點間訪問量越多.圖11中結(jié)點間訪問量減少最多的是OCEAN_NS.當單結(jié)點內(nèi)有8個并行緩存一致性域時,OCEAN_NS有58%的結(jié)點間訪問轉(zhuǎn)換為結(jié)點內(nèi)跨域訪問.
Fig. 11 Comparison of the access ratio among different 32-way systems圖11 32路CC-NUMA系統(tǒng)與MPD系統(tǒng)的各類型訪問量對比
因為結(jié)點內(nèi)跨域訪問延遲遠小于結(jié)點間訪問延遲,所以結(jié)點間訪問數(shù)量的減少直接降低了系統(tǒng)平均訪問延遲.例如,單結(jié)點內(nèi)有8個并行緩存一致性域時,OCEAN_NS的系統(tǒng)平均訪存延遲降低32%.從圖12的對比結(jié)果來看,系統(tǒng)平均訪問延遲的變化趨勢與結(jié)點間訪問占比類似,均隨結(jié)點內(nèi)緩存一致性域數(shù)量k的增加而減少.當k=2時,與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的平均訪問延遲降低3.9%;當k=4時,與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的平均訪問延遲降低11.7%;當k=8時,與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的平均訪問延遲降低27.9%.
Fig. 12 Comparison of the average access latency among different 32-way systems圖12 32路CC-NUMA系統(tǒng)與MPD系統(tǒng)的平均訪問延遲對比
4.2.2 指令平均執(zhí)行周期對比
相較于系統(tǒng)平均訪問延遲,CC-NUMA系統(tǒng)和MPD系統(tǒng)的指令平均執(zhí)行周期(cycles per instruction,CPI)差異較小,但仍是MPD系統(tǒng)性能較優(yōu),且系統(tǒng)CPI隨結(jié)點內(nèi)緩存一致性域數(shù)量k的增加而減少.這主要是因為,系統(tǒng)平均訪問延遲僅與訪問類型占比有關(guān),而CPI還與程序指令數(shù)、指令類型等有關(guān).圖13中各程序的CPI變化幅度不同也是因為這個原因.盡管各測試程序的CPI降幅不同,但MPD系統(tǒng)整體平均性能仍呈現(xiàn)較明顯的線性下降趨勢:當k取值為2,4,8時,MPD系統(tǒng)比傳統(tǒng)CC-NUMA系統(tǒng)的CPI分別降低3.6%,7.6%,12.6%,即MPD系統(tǒng)性能提升3.5%,8.2%,14.4%.
本文3.4節(jié)所述,MPD系統(tǒng)中可采用直連能力較弱的處理器代替直連能力較強的處理器搭建同等規(guī)模的系統(tǒng),以降低功耗、節(jié)約成本.但是,MPD系統(tǒng)采用的是單結(jié)點內(nèi)多緩存一致性域架構(gòu);原CC-NUMA系統(tǒng)中的部分緩存一致性域內(nèi)訪問將轉(zhuǎn)換為結(jié)點內(nèi)跨一致性域訪問,從而導(dǎo)致系統(tǒng)平均訪問延遲增加,性能下降.
Fig. 13 Comparison of CPI among different 32-way systems圖13 32路CC-NUMA系統(tǒng)與MPD系統(tǒng)的CPI對比
為測試這種低功耗低成本的MPD系統(tǒng)與傳統(tǒng)CC-NUMA系統(tǒng)的性能差異度,本節(jié)對不同規(guī)格處理器搭建的4結(jié)點16路系統(tǒng)、8結(jié)點32路系統(tǒng)和16結(jié)點64路系統(tǒng)進行了性能測試.各組測試數(shù)據(jù)均表明,與傳統(tǒng)CC-NUMA系統(tǒng)相比,采用較低規(guī)格處理器搭建的MPD系統(tǒng)性能下降有限.以圖14中的32路系統(tǒng)為例,當處理器為4路直連時,每個結(jié)點內(nèi)有2個緩存一致性域,系統(tǒng)CPI上升1.7%;當處理器為2路直連時,每個結(jié)點內(nèi)有4個緩存一致性域,系統(tǒng)CPI上升2.6%,上升幅度變小.
與表1中處理器硬件成本的下降程度相比,這種MPD系統(tǒng)的性能下降幅度較小,因此,使用低規(guī)格處理器搭建的MPD系統(tǒng)具有更高的性價比.如圖15所示,與8路直連處理器搭建的CC-NUMA系統(tǒng)相比,4路直連處理器搭建的32路MPD系統(tǒng)性價比提升1.20倍,2路直連處理器搭建的32路MPD系統(tǒng)性價比提升1.53倍.
Fig. 14 Comparison of CPI among 8 clumps 32-way systems built by different processors圖14 不同處理器搭建的8結(jié)點32路系統(tǒng)的CPI對比
Fig. 15 Cost-effective of different systems圖15 不同處理器系統(tǒng)的性價比
處理器直連能力和處理器可識別ID數(shù)的有限性限制了CC-NUMA系統(tǒng)的單個結(jié)點規(guī)模,導(dǎo)致系統(tǒng)規(guī)模的擴張只能通過結(jié)點數(shù)量的增加來實現(xiàn).而結(jié)點數(shù)量的增加致使緩存一致性維護開銷增大,結(jié)點間互連結(jié)構(gòu)復(fù)雜,降低了系統(tǒng)性能的有效擴展.本文提出的MPD系統(tǒng)突破了單結(jié)點的處理器規(guī)模限制,能夠任意設(shè)置單結(jié)點規(guī)模,大幅減少結(jié)點數(shù)量.與其他系統(tǒng)性能優(yōu)化方法相比,這種擴大單結(jié)點規(guī)模的方法直接縮短了系統(tǒng)平均訪問路徑和跳步數(shù),從而降低了平均訪問延遲,實現(xiàn)了系統(tǒng)性能的有效擴展.另一方面,由于MPD系統(tǒng)的單結(jié)點規(guī)模與處理器直連能力無關(guān),MPD系統(tǒng)還可用于構(gòu)建低功耗低成本系統(tǒng),提升系統(tǒng)性價比.實驗數(shù)據(jù)表明,32路系統(tǒng)中,采用同規(guī)格處理器時,結(jié)點內(nèi)4個并行緩存一致性域的MPD系統(tǒng)平均訪問延遲降低27.9%,系統(tǒng)性能提升14.4%;采用不同規(guī)格處理器時,與8路直連處理器搭建的CC-NUMA系統(tǒng)相比,2路直連處理器搭建的MPD系統(tǒng)性價比提升1.53倍.
未來的工作中,我們將增加結(jié)點緩存功能,進一步優(yōu)化MPD系統(tǒng)的一致性協(xié)議實現(xiàn),提升大規(guī)模系統(tǒng)性能.