• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于天河互連MPI聚合通信歸約操作卸載優(yōu)化 *

      2020-11-30 07:36:32浩,張偉,謝旻,董
      關(guān)鍵詞:網(wǎng)絡(luò)接口描述符樹形

      王 浩,張 偉,謝 旻,董 勇

      (國防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073)

      1 引言

      在高性能計(jì)算領(lǐng)域,聚合通信在并行科學(xué)計(jì)算應(yīng)用中扮演著非常重要的角色,許多并行應(yīng)用程序使用聚合通信來滿足一系列的通信請求,例如迭代數(shù)值求解器中剩余向量的大小、執(zhí)行分布式數(shù)據(jù)歸約、傅里葉變換。在許多基于MPI(Message Passing Interface)消息傳遞編程模型的并行科學(xué)計(jì)算應(yīng)用中聚合通信占據(jù)大部分的通信時間消耗,對應(yīng)用的運(yùn)行性能和可擴(kuò)展性有重要影響,并且影響程度隨著應(yīng)用規(guī)模的增加而增大[1]。MPI聚合通信接口中的歸約操作MPI_Reduce和MPI_Allreduce被廣泛應(yīng)用于科學(xué)計(jì)算應(yīng)用中,迭代求解器(如共軛梯度等)是許多科學(xué)模擬應(yīng)用的重要組成部分,在每一次迭代過程中均使用多次歸約來計(jì)算點(diǎn)積或范數(shù)[2]。Reduce操作是將所有進(jìn)程提供的值進(jìn)行歸約計(jì)算后將計(jì)算結(jié)果發(fā)送到一個目的進(jìn)程,Allreduce操作則是將歸約計(jì)算結(jié)果發(fā)回所有進(jìn)程。有研究表明,在一些MPI并行應(yīng)用中,有超過40%的時間消耗在歸約操作上[3]。一些科學(xué)應(yīng)用程序和基準(zhǔn)測試?yán)绱笠?guī)模原子分子并行模擬器[4]、Fluent[5]、OpenFOAM[6]在MPI_Allreduce操作上消耗的時間占比總的通信時間超過50%[7]。在當(dāng)前軟件層聚合通信實(shí)現(xiàn)中,Reduce操作的算法使用基于樹形結(jié)構(gòu)的歸約算法實(shí)現(xiàn),Allreduce操作的算法則是通過基于樹形結(jié)構(gòu)的歸約/廣播算法,或者是遞歸倍增算法實(shí)現(xiàn)[8]。Reduce和Allreduce操作的算法通常基于點(diǎn)對點(diǎn)通信操作實(shí)現(xiàn),使用網(wǎng)絡(luò)接口來執(zhí)行結(jié)點(diǎn)間的消息通信,以及結(jié)點(diǎn)上的CPU來進(jìn)行歸約計(jì)算,可能受到操作系統(tǒng)噪聲的影響[9,10];而且當(dāng)系統(tǒng)規(guī)模增大時,通信的計(jì)算步驟、計(jì)算量、進(jìn)程距離將會相應(yīng)增大,消息傳輸延遲帶來很大的時間開銷,且隨著系統(tǒng)規(guī)模增加,這種時間開銷增加是迅速的,使得軟件實(shí)現(xiàn)的聚合通信可擴(kuò)展性較差。

      天河互連網(wǎng)絡(luò)是國防科技大學(xué)自主研制的高性能計(jì)算機(jī)互連通信網(wǎng)絡(luò),由網(wǎng)絡(luò)接口和互連交換2種專用芯片構(gòu)成。網(wǎng)絡(luò)接口在結(jié)點(diǎn)之間提供數(shù)據(jù)通信服務(wù),互連交換芯片用于構(gòu)造多種互連拓?fù)涞慕粨Q網(wǎng)絡(luò)架構(gòu)。網(wǎng)絡(luò)接口芯片支持PCIe 3.0x16接口,支持用戶級通信來減少軟件層開銷,提供無連接模式的RDMA和短報(bào)文傳輸操作,并通過非阻塞通信模式來實(shí)現(xiàn)計(jì)算通信重疊執(zhí)行[11 - 13]?;ミB交換芯片采用高階路由結(jié)構(gòu)降低互連網(wǎng)絡(luò)跳步數(shù),從而提高互連拓?fù)渚W(wǎng)絡(luò)的帶寬、可靠性和靈活性。面向聚合通信操作的性能優(yōu)化和可擴(kuò)展性問題,天河互連網(wǎng)絡(luò)接口中設(shè)計(jì)了一種基于觸發(fā)的通信卸載機(jī)制,其核心思想是將一些聚合通信操作卸載到互連網(wǎng)絡(luò)中自主觸發(fā)執(zhí)行,減少主機(jī)處理器對聚合通信中數(shù)據(jù)通信過程的介入,實(shí)現(xiàn)計(jì)算與通信重疊執(zhí)行,優(yōu)化聚合通信的延遲和帶寬。并且互連網(wǎng)絡(luò)接口中還實(shí)現(xiàn)了計(jì)算邏輯部件,可以支持歸約操作中的各種計(jì)算操作,從而消除聚合通信過程中將數(shù)據(jù)傳輸?shù)街鳈C(jī)處理器進(jìn)行運(yùn)算的過程,優(yōu)化聚合通信的延遲。

      目前已有一些針對聚合通信操作優(yōu)化的研究工作,例如IBM的BG/L[14]集成有專門用來支持聚合通信操作的專用網(wǎng)絡(luò)硬件,其功能專有,硬件復(fù)雜度高。Myrinet[15]網(wǎng)絡(luò)接口包含嵌入處理器,支持特定聚合通信操作的卸載,但更新集合操作時需要更改網(wǎng)絡(luò)接口上運(yùn)行的控制程序。Mellanox開發(fā)的SHArP協(xié)議[16]在物理拓?fù)涞幕A(chǔ)上建立邏輯聚合通信樹形結(jié)構(gòu),其設(shè)計(jì)的網(wǎng)絡(luò)接口芯片與互連交換芯片硬件都具備數(shù)據(jù)聚合處理能力,共同構(gòu)成邏輯樹中的聚合結(jié)點(diǎn),消息通信效率高,延遲低,但網(wǎng)絡(luò)接口芯片與互連交換芯片硬件復(fù)雜度高,且要求構(gòu)建的邏輯通信樹與物理拓?fù)浠緦?yīng);類似的基于觸發(fā)的通信卸載機(jī)制有可編程的網(wǎng)絡(luò)接口API——Portals 4.0[17],在網(wǎng)絡(luò)接口加入Portals單元和DMA引擎來卸載聚合通信,但其加入的部件較多,增加了網(wǎng)絡(luò)接口的硬件復(fù)雜性,且網(wǎng)絡(luò)接口控制這些部件運(yùn)行的程序存在額外開銷;Fujistu設(shè)計(jì)的片上系統(tǒng)互連結(jié)構(gòu)Tofu-2[18],處理器芯片上集成了Tofu網(wǎng)絡(luò)接口和Tofu同步接口,結(jié)點(diǎn)間采用會話模式的控制報(bào)文觸發(fā)進(jìn)行聚合通信操作的卸載,與天河互連網(wǎng)絡(luò)通信卸載實(shí)現(xiàn)機(jī)制較為相似。不同的是天河互連網(wǎng)絡(luò)僅在獨(dú)立的網(wǎng)絡(luò)接口芯片加入簡單的硬件觸發(fā)邏輯就能實(shí)現(xiàn)卸載功能,構(gòu)造的通信卸載樹形結(jié)構(gòu)與物理拓?fù)洫?dú)立,可靈活實(shí)現(xiàn)于多種拓?fù)浣Y(jié)構(gòu)中。

      本文利用天河互連網(wǎng)絡(luò)的觸發(fā)操作特性,設(shè)計(jì)實(shí)現(xiàn)了歸約操作的聚合通信卸載算法,并通過實(shí)驗(yàn)評估了基于不同樹形結(jié)構(gòu)的Allreduce和Reduce通信卸載算法的性能。

      2 天河互連網(wǎng)絡(luò)通信卸載技術(shù)

      天河互連網(wǎng)絡(luò)在網(wǎng)絡(luò)接口中實(shí)現(xiàn)了虛擬端口(Virtual Port)的機(jī)制,這種機(jī)制支持硬件資源的虛擬化來靈活實(shí)現(xiàn)用戶級通信,它為每個進(jìn)程提供了獨(dú)占使用通信硬件的編程視角[13]。當(dāng)多個進(jìn)程并發(fā)運(yùn)行時,來自不同進(jìn)程的通信操作相互獨(dú)立,彼此不會產(chǎn)生干擾。每個虛擬端口是一組內(nèi)存映射寄存器和一組相關(guān)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)的組合,不同虛擬端口中的寄存器地址范圍的間隔至少與物理頁的長度相同。所有這些地址范圍都可以映射到用戶空間,這樣就可以在用戶空間中進(jìn)行受保護(hù)的并發(fā)訪問,過程如圖1所示。

      Figure 1 Process diagram of virtual ports realize user level communication圖1 虛擬端口實(shí)現(xiàn)用戶通信過程

      內(nèi)存數(shù)據(jù)結(jié)構(gòu)包括:(1)通信請求描述符隊(duì)列DQ(Descriptor Queue),是物理地址連續(xù)的內(nèi)存緩沖區(qū)。用戶可以在DQ中構(gòu)建一個通信請求,互連網(wǎng)絡(luò)接口通過DQ來接受用戶提交的通信操作請求,然后通知網(wǎng)絡(luò)接口用DMA(Direct Memory Access)方式讀取描述符到網(wǎng)絡(luò)接口中并執(zhí)行通信操作。用戶還可以通過PIO(Programming Input/Output model)方式直接提交通信請求到網(wǎng)絡(luò)接口的內(nèi)部描述符隊(duì)列中,但網(wǎng)絡(luò)接口中的DQ的容量是有限的。(2)MP報(bào)文接收隊(duì)列MPQ(Mini-Packet Queue),一種用于雙向通信的短報(bào)文機(jī)制。Mini-Packet以下簡稱MP報(bào)文,每個MP報(bào)文是128 B,其中前8 B是報(bào)文頭,其余則是有效負(fù)載。網(wǎng)絡(luò)接口向MPQ中順序存儲其它虛擬端口發(fā)送到本端口的MP報(bào)文,但MPQ的容量是有限的,如果MPQ滿了,新到達(dá)的MP報(bào)文將被丟棄,因此必須有一個軟件層協(xié)議來防止MPQ溢出。通常,MPQ也是在物理地址連續(xù)的內(nèi)存中分配的,但也可以使用虛擬地址方式,利用網(wǎng)絡(luò)接口中的地址轉(zhuǎn)換表映射到用戶空間。(3)事件狀態(tài)隊(duì)列EQ(Event Queue),互連網(wǎng)絡(luò)接口在其中記錄用戶提交的RDMA通信請求的執(zhí)行狀態(tài),事件內(nèi)容可以由用戶控制。用戶在初始化時可以對這些資源大小進(jìn)行配置,對這些資源的訪問操作是直接在用戶地址空間上進(jìn)行的。

      為了加速聚合通信的執(zhí)行,互連網(wǎng)絡(luò)接口芯片基于現(xiàn)有的通信機(jī)制,設(shè)計(jì)實(shí)現(xiàn)了一種軟硬件結(jié)合的觸發(fā)機(jī)制,來進(jìn)行聚合通信的通信卸載處理。在網(wǎng)絡(luò)接口中加入一種特殊的硬件觸發(fā)邏輯部件,該部件在滿足觸發(fā)條件時自動執(zhí)行數(shù)據(jù)的復(fù)制、替換、接收或發(fā)送,不需要處理器的參與。用戶設(shè)置一組通信請求描述符序列,在描述符序列頭部定義對通信請求的控制操作,比如觸發(fā)控制條件值、報(bào)文數(shù)據(jù)復(fù)制或替換的選項(xiàng)等。描述符序列被提交到虛擬端口中后,并不會立即執(zhí)行,需要等待觸發(fā)條件。在進(jìn)行聚合通信操作時,當(dāng)從網(wǎng)絡(luò)接口接收到的數(shù)據(jù)報(bào)文設(shè)定了描述符序列的觸發(fā)條件時,觸發(fā)邏輯部件將會自動執(zhí)行描述符序列,并根據(jù)描述符序列的設(shè)置選項(xiàng)完成復(fù)制、替換或轉(zhuǎn)發(fā)等操作。這種觸發(fā)機(jī)制由控制報(bào)文CP(Control Packet)處理,互連端口中有控制報(bào)文的計(jì)數(shù)器(CP Counter),當(dāng)網(wǎng)絡(luò)接口接收到新的CP時,CP Counter計(jì)數(shù)加一,當(dāng)達(dá)到計(jì)數(shù)閾值時,就立即觸發(fā)描述符序列的執(zhí)行,結(jié)點(diǎn)的觸發(fā)原理如圖2所示。

      Figure 2 Schematic diagram of node trigger principle圖2 結(jié)點(diǎn)觸發(fā)原理示意圖

      該機(jī)制有多種優(yōu)勢:邏輯設(shè)計(jì)簡單;可以構(gòu)造多種樹形拓?fù)浣Y(jié)構(gòu)的通信卸載算法,算法構(gòu)造的拓?fù)渑c物理拓?fù)洳灰欢ㄍ耆珜?yīng),靈活性好;處理器不參與數(shù)據(jù)傳輸,受到系統(tǒng)噪聲影響較小;數(shù)據(jù)傳輸由硬件自動完成,在結(jié)點(diǎn)規(guī)模增加時延遲增幅較小,可擴(kuò)展性好;消息在網(wǎng)絡(luò)接口中自行復(fù)制,減少跨PCIe的數(shù)據(jù)傳輸。為了支持歸約操作,網(wǎng)絡(luò)接口還加入了計(jì)算邏輯單元ALU,硬件支持最多同時對7個歸約數(shù)據(jù)進(jìn)行歸約計(jì)算,可供支持的歸約操作有浮點(diǎn)/整型求和、最大值、最小值,邏輯/位與、或、異或操作,通過計(jì)算卸載操作來進(jìn)一步提高歸約操作的通信性能。

      3 基于觸發(fā)機(jī)制的Reduce/Allreduce通信卸載算法

      3.1 K-nomial與K-ary樹形結(jié)構(gòu)

      Figure 3 2-nomial tree and 4-nomial tree for 16 nodes圖3 16結(jié)點(diǎn)的2-nomial樹和4-nomial樹

      Figure 4 2-ary tree and 4-ary tree for 16 nodes圖4 16結(jié)點(diǎn)的2-ary樹和4-ary樹

      以上構(gòu)造樹中的結(jié)點(diǎn)分為根結(jié)點(diǎn)(Root Node)、葉結(jié)點(diǎn)(Leaf Node)和中間結(jié)點(diǎn)(Inner Node) 3類,根結(jié)點(diǎn)最上層的1個結(jié)點(diǎn);葉結(jié)點(diǎn)每條分支中最下層的結(jié)點(diǎn);其余結(jié)點(diǎn)是中間結(jié)點(diǎn)。樹中的邊表示為父子關(guān)系,隸屬于同一父結(jié)點(diǎn)的同一層子結(jié)點(diǎn)互為兄弟關(guān)系。結(jié)點(diǎn)間的通信只在父子結(jié)點(diǎn)之間進(jìn)行,但每個結(jié)點(diǎn)上的通信操作則根據(jù)結(jié)點(diǎn)類型和子結(jié)點(diǎn)個數(shù),而有所不同。

      3.2 基于觸發(fā)機(jī)制的Allreduce通信卸載算法

      基于樹形結(jié)構(gòu)通信,不同類型的結(jié)點(diǎn)執(zhí)行不同的通信原語操作。Allreduce的通信卸載算法如算法1所示。

      算法1基于觸發(fā)機(jī)制的Allreduce通信卸載算法

      (1)根結(jié)點(diǎn):①準(zhǔn)備1個待觸發(fā)的MP歸約數(shù)據(jù)報(bào)文,目的地址為本結(jié)點(diǎn),觸發(fā)計(jì)數(shù)器值為子結(jié)點(diǎn)數(shù)目,觸發(fā)條件為接收到所有子結(jié)點(diǎn)帶有觸發(fā)標(biāo)志的歸約數(shù)據(jù)報(bào)文;并將歸約計(jì)算結(jié)果替換為報(bào)文數(shù)據(jù)發(fā)送到本結(jié)點(diǎn)的報(bào)文接收隊(duì)列。

      ②準(zhǔn)備1個待觸發(fā)的MP歸約結(jié)果數(shù)據(jù)報(bào)文序列,目的地址為所有子結(jié)點(diǎn),觸發(fā)計(jì)數(shù)器值為1,觸發(fā)條件為接收到發(fā)送給本結(jié)點(diǎn)的歸約計(jì)算結(jié)果報(bào)文;等待接收歸約計(jì)算結(jié)果,并將接收到的數(shù)據(jù)替換為報(bào)文序列中的數(shù)據(jù),發(fā)送到所有子結(jié)點(diǎn)的報(bào)文接收隊(duì)列。

      (2)中間結(jié)點(diǎn):①準(zhǔn)備1個待觸發(fā)的MP歸約數(shù)據(jù)報(bào)文,目的地址為父結(jié)點(diǎn),觸發(fā)計(jì)數(shù)器值為子結(jié)點(diǎn)數(shù)目,觸發(fā)條件為接收到所有子結(jié)點(diǎn)帶有觸發(fā)標(biāo)志的歸約數(shù)據(jù)報(bào)文;并將歸約計(jì)算結(jié)果替換為報(bào)文數(shù)據(jù)發(fā)送給父結(jié)點(diǎn)。

      ②準(zhǔn)備1個待觸發(fā)的MP歸約結(jié)果數(shù)據(jù)報(bào)文序列,目的地址為所有子結(jié)點(diǎn),觸發(fā)計(jì)數(shù)器值為1,觸發(fā)條件為接收到來自父結(jié)點(diǎn)的歸約計(jì)算結(jié)果報(bào)文;等待接收歸約計(jì)算結(jié)果,并將接收到的數(shù)據(jù)替換為報(bào)文序列中的數(shù)據(jù),發(fā)送到所有子結(jié)點(diǎn)的報(bào)文接收隊(duì)列。

      (3)葉結(jié)點(diǎn):準(zhǔn)備1個MP歸約數(shù)據(jù)報(bào)文,目的地址為父結(jié)點(diǎn),立即發(fā)送給父結(jié)點(diǎn);等待接收歸約計(jì)算結(jié)果。

      根結(jié)點(diǎn)和中間結(jié)點(diǎn)都準(zhǔn)備2個描述符序列,一個是參與歸約計(jì)算的數(shù)據(jù)報(bào)文,一個是將歸約計(jì)算結(jié)果發(fā)給通信域中所有子節(jié)點(diǎn)的廣播數(shù)據(jù)報(bào)文,葉結(jié)點(diǎn)只準(zhǔn)備參與歸約計(jì)算的數(shù)據(jù)報(bào)文。所有結(jié)點(diǎn)準(zhǔn)備并提交報(bào)文到描述符隊(duì)列后,先由葉結(jié)點(diǎn)啟動通信序列發(fā)送報(bào)文并向上觸發(fā)父結(jié)點(diǎn)的通信序列。根結(jié)點(diǎn)接收到所有子結(jié)點(diǎn)的報(bào)文后進(jìn)行歸約計(jì)算,并觸發(fā)計(jì)算結(jié)果向下廣播發(fā)送到所有子結(jié)點(diǎn),直到所有的結(jié)點(diǎn)都接收到歸約計(jì)算結(jié)果。算法執(zhí)行的具體過程如下所示:根結(jié)點(diǎn)將待歸約的數(shù)據(jù)打包為MP歸約報(bào)文,等待接收到所有子結(jié)點(diǎn)的MP歸約報(bào)文觸發(fā)執(zhí)行歸約計(jì)算操作;并將歸約計(jì)算結(jié)果廣播報(bào)文發(fā)送給所有子結(jié)點(diǎn),此報(bào)文的數(shù)據(jù)由自身的歸約計(jì)算結(jié)果替換,由自身MP歸約報(bào)文執(zhí)行后觸發(fā)執(zhí)行。中間結(jié)點(diǎn)承擔(dān)“向上歸約”和“向下廣播”的任務(wù),準(zhǔn)備2類MP交換報(bào)文,第1類是打包本結(jié)點(diǎn)待歸約的數(shù)據(jù)為MP歸約報(bào)文,等待接收子結(jié)點(diǎn)的歸約數(shù)據(jù)報(bào)文,當(dāng)接收到來自所有子結(jié)點(diǎn)的歸約數(shù)據(jù)時,觸發(fā)執(zhí)行歸約計(jì)算操作,并將歸約計(jì)算結(jié)果向上發(fā)送給父結(jié)點(diǎn)參與下一輪歸約計(jì)算;第2類的MP廣播數(shù)據(jù)報(bào)文是用等待接收來自父結(jié)點(diǎn)的計(jì)算結(jié)果報(bào)文替換報(bào)文數(shù)據(jù),并廣播報(bào)文給所有子結(jié)點(diǎn),由接收到父結(jié)點(diǎn)的計(jì)算結(jié)果報(bào)文觸發(fā)執(zhí)行。葉結(jié)點(diǎn)將本結(jié)點(diǎn)待歸約的數(shù)據(jù)打包為MP歸約報(bào)文,準(zhǔn)備好后立即發(fā)送給父結(jié)點(diǎn)參與歸約計(jì)算。所有結(jié)點(diǎn)準(zhǔn)備好參與通信的報(bào)文,按照預(yù)定設(shè)置自動執(zhí)行,結(jié)點(diǎn)各自提交所有報(bào)文的發(fā)送操作后,等待接收歸約的計(jì)算結(jié)果,接收完畢后解析歸約結(jié)果報(bào)文,將歸約計(jì)算結(jié)果存入緩沖區(qū)。

      3.3 基于觸發(fā)機(jī)制的Reduce通信卸載算法

      樹形結(jié)構(gòu)的Reduce通信卸載算法實(shí)現(xiàn)過程相比Allreduce的實(shí)現(xiàn),減少了向下廣播歸約計(jì)算結(jié)果的過程,最終的歸約計(jì)算結(jié)果只存在于根結(jié)點(diǎn)。基于觸發(fā)機(jī)制的Reduce通信卸載算法如算法2所示。

      算法2基于觸發(fā)機(jī)制的Reduce通信卸載算法

      (1)根結(jié)點(diǎn):①準(zhǔn)備1個待觸發(fā)的MP歸約數(shù)據(jù)報(bào)文,目的地址為本結(jié)點(diǎn),觸發(fā)計(jì)數(shù)器值為子結(jié)點(diǎn)數(shù)目,觸發(fā)條件為接收到所有子結(jié)點(diǎn)帶有觸發(fā)標(biāo)志的歸約數(shù)據(jù)報(bào)文;并將歸約計(jì)算結(jié)果替換為報(bào)文數(shù)據(jù)發(fā)送到本結(jié)點(diǎn)的報(bào)文接收隊(duì)列。

      ②準(zhǔn)備1個待觸發(fā)的MP歸約結(jié)果數(shù)據(jù)報(bào)文,目的地址為本結(jié)點(diǎn),觸發(fā)計(jì)數(shù)器值為1,觸發(fā)條件為接收到發(fā)給本結(jié)點(diǎn)帶觸發(fā)標(biāo)志的歸約計(jì)算結(jié)果報(bào)文;等待接收歸約計(jì)算結(jié)果,并將接收到的數(shù)據(jù)替換為歸約結(jié)果報(bào)文中的數(shù)據(jù),發(fā)送到本結(jié)點(diǎn)的報(bào)文接收隊(duì)列。

      (2)中間結(jié)點(diǎn):準(zhǔn)備1個待觸發(fā)的MP歸約數(shù)據(jù)報(bào)文,目的地址為父結(jié)點(diǎn),觸發(fā)計(jì)數(shù)器值為子結(jié)點(diǎn)數(shù)目,觸發(fā)條件為接收所有子結(jié)點(diǎn)帶有觸發(fā)標(biāo)志的歸約數(shù)據(jù)報(bào)文,并將歸約計(jì)算結(jié)果替換為報(bào)文數(shù)據(jù)發(fā)送給父結(jié)點(diǎn)。

      (3)葉結(jié)點(diǎn):準(zhǔn)備1個MP歸約數(shù)據(jù)報(bào)文,目的地址為父結(jié)點(diǎn),立即發(fā)送給父結(jié)點(diǎn)。

      根結(jié)點(diǎn)準(zhǔn)備2個描述符,一個是參與歸約計(jì)算的報(bào)文,一個是發(fā)送歸約計(jì)算結(jié)果的報(bào)文,中間結(jié)點(diǎn)和葉結(jié)點(diǎn)只準(zhǔn)備一個參與計(jì)算的報(bào)文。所有結(jié)點(diǎn)準(zhǔn)備并提交報(bào)文到描述符隊(duì)列后,先由葉結(jié)點(diǎn)執(zhí)行發(fā)送報(bào)文并向上觸發(fā)父結(jié)點(diǎn)的報(bào)文發(fā)送處理,待根結(jié)點(diǎn)接收到所有子結(jié)點(diǎn)的數(shù)據(jù)報(bào)文進(jìn)行歸約計(jì)算后,觸發(fā)歸約計(jì)算結(jié)果發(fā)送到本結(jié)點(diǎn)的報(bào)文接收隊(duì)列。算法執(zhí)行的具體過程如下:根結(jié)點(diǎn)準(zhǔn)備好本結(jié)點(diǎn)參與歸約計(jì)算的數(shù)據(jù)報(bào)文,等待接收所有子結(jié)點(diǎn)參與計(jì)算的歸約MP報(bào)文,當(dāng)接收到所有子結(jié)點(diǎn)的歸約MP報(bào)文后觸發(fā)歸約操作,執(zhí)行完畢后將觸發(fā)歸約計(jì)算結(jié)果發(fā)送到本結(jié)點(diǎn)的報(bào)文接收隊(duì)列;中間結(jié)點(diǎn)準(zhǔn)備本結(jié)點(diǎn)參與歸約計(jì)算的MP數(shù)據(jù)報(bào)文,等待接收來自所有子結(jié)點(diǎn)的歸約數(shù)據(jù)報(bào)文,接收完畢后觸發(fā)歸約計(jì)算執(zhí)行,并將計(jì)算結(jié)果的數(shù)據(jù)報(bào)文向上發(fā)送給父結(jié)點(diǎn);葉結(jié)點(diǎn)準(zhǔn)備各自的歸約數(shù)據(jù)MP報(bào)文發(fā)送給父結(jié)點(diǎn),不需要觸發(fā)立即執(zhí)行。中間結(jié)點(diǎn)和葉結(jié)點(diǎn)提交完通信描述請求后即完成本結(jié)點(diǎn)任務(wù),根結(jié)點(diǎn)提交完通信請求后,等待接收歸約結(jié)果,待完成歸約計(jì)算后,接收歸約計(jì)算結(jié)果并解析報(bào)文數(shù)據(jù)。

      4 性能測試與分析

      4.1 實(shí)驗(yàn)測試環(huán)境

      實(shí)驗(yàn)測試環(huán)境為搭載天河互連網(wǎng)絡(luò)的超算系統(tǒng),每個結(jié)點(diǎn)搭載1個FT-1500A/16核處理器,結(jié)點(diǎn)內(nèi)存大小為32 GB,操作系統(tǒng)為Linux 4.19內(nèi)核版本。

      4.2 實(shí)驗(yàn)過程

      將實(shí)現(xiàn)的Allreduce和Reduce通信卸載算法部署在天河互連網(wǎng)絡(luò)中,參與歸約的實(shí)驗(yàn)結(jié)點(diǎn)數(shù)量從8個增加到256個(2的冪次倍增),每個結(jié)點(diǎn)上運(yùn)行一個進(jìn)程,每種問題規(guī)模下測試5 000次歸約操作的迭代完成時間,然后計(jì)算平均時間。單個消息大小為48 B(歸約計(jì)算同時支持6個浮點(diǎn)數(shù));如果分叉度設(shè)置更大,雖通信步驟較少,但結(jié)點(diǎn)的通信負(fù)載較為不平衡,會影響算法性能,樹形結(jié)構(gòu)分叉度K設(shè)置為2,4,8。在同等結(jié)點(diǎn)規(guī)模下,對基于觸發(fā)機(jī)制的Allreduce和Reduce通信卸載算法與MPICH-3.3.2版本中基于點(diǎn)對點(diǎn)實(shí)現(xiàn)的MPI_Allreduce和MPI_Reduce接口進(jìn)行了對比測試,并對測試結(jié)果進(jìn)行了詳細(xì)分析。

      4.3 實(shí)驗(yàn)結(jié)果與分析

      4.3.1 Allreduce測試結(jié)果

      Figure 5 Results comparison diagram of Allreduce offloading algorithm and MPICH implementation圖5 Allreduce通信卸載算法與MPICH對比圖

      圖5所示為采用不同樹形結(jié)構(gòu)的Allreduce通信卸載算法與MPICH系統(tǒng)中的MPI_Allreduce實(shí)現(xiàn)的對比測試結(jié)果,圖中橫軸為結(jié)點(diǎn)數(shù)量,縱軸為歸約操作的延遲,其中mpich表示MPICH的MPI_Allreduce實(shí)現(xiàn)算法,K-nomial和K-ary表示基于不同分叉度的K-nomial樹和K-ary樹Allreduce通信卸載算法的性能數(shù)據(jù)。從測試結(jié)果可以看出,相比于MPICH的實(shí)現(xiàn),基于觸發(fā)操作實(shí)現(xiàn)的2種樹形結(jié)構(gòu)Allreduce通信卸載算法減少了歸約操作的延遲,并且隨著結(jié)點(diǎn)數(shù)增加,性能提升效果越明顯。對于P(2的冪次)個結(jié)點(diǎn)的短消息通信,MPICH實(shí)現(xiàn)的通信步驟為log2P步,樹形結(jié)構(gòu)Allreduce通信卸載算法的通信步驟為2 logKP步。當(dāng)分叉度K=4時,兩者的通信步驟數(shù)相等。在結(jié)點(diǎn)數(shù)為64,128,256時,4-nomial樹形結(jié)構(gòu)的Allreduce通信卸載算法的延遲時間分別為24.94 μs,31.21 μs,38.42 μs,MPICH實(shí)現(xiàn)的延遲時間分別為34.22 μs, 45.23 μs, 58.73 μs。為進(jìn)一步探究Allreduce通信卸載算法的性能優(yōu)化參數(shù),本文對比了2種樹形結(jié)構(gòu)和不同分叉度設(shè)置的測試結(jié)果。改變分叉度大小能改變通信步驟數(shù),當(dāng)K-nomial樹的的分叉度改變?yōu)?和8,結(jié)點(diǎn)數(shù)為16,32,64時,2-nomial樹的Allreduce通信卸載算法性能較另2種分叉度(K=4,8)更好。當(dāng)結(jié)點(diǎn)數(shù)增加到128,256時,4-nomial樹形結(jié)構(gòu)的Allreduce通信卸載算法性能更優(yōu)。當(dāng)結(jié)點(diǎn)數(shù)量較小時,分叉度較大的樹形結(jié)構(gòu) Allreduce通信卸載算法的實(shí)現(xiàn)性能優(yōu)勢不明顯,這是因?yàn)榻Y(jié)點(diǎn)數(shù)較少時通信時間較短,且通信卸載算法中父結(jié)點(diǎn)為多個子結(jié)點(diǎn)構(gòu)造通信請求描述符序列時存在一定的開銷。改變樹形結(jié)構(gòu),將K-nomial樹改為K-ary樹,則K-ary樹形結(jié)構(gòu)的整體性能相對于于K-nomial樹形結(jié)構(gòu)有較好提升,原因在于觸發(fā)機(jī)制下的通信卸載算法中各層結(jié)點(diǎn)間的通信負(fù)載不同。K-ary樹形結(jié)構(gòu)較對稱,各層結(jié)點(diǎn)的通信負(fù)載差異較小,K-nomial樹形結(jié)構(gòu)各層結(jié)點(diǎn)間的通信負(fù)載差異較大。在文獻(xiàn)[11]中提到的基于SHArP的Allreduce通信卸載算法測試結(jié)果,64 B在32,64,128結(jié)點(diǎn)下的延遲時間分別為2.89 μs, 2.92 μs, 3.04 μs,具有更好的延遲特性,但其測試用的主機(jī)CPU和互連平臺有所不同,并且其通過專用的互連交換結(jié)點(diǎn)來實(shí)現(xiàn)數(shù)據(jù)的處理計(jì)算,硬件設(shè)計(jì)復(fù)雜度高,而天河互連僅對網(wǎng)絡(luò)接口芯片進(jìn)行簡單的硬件擴(kuò)展就能實(shí)現(xiàn)通信卸載的功能。

      4.3.2 Reduce測試結(jié)果

      圖6中比較了不同結(jié)點(diǎn)規(guī)模下Reduce操作的性能,同樣圖中mpich表示MPICH系統(tǒng)中MPI_Reduce的實(shí)現(xiàn)算法,K-nomial和K-ary是基于不同分叉度的K-nomial樹和K-ary樹Reduce通信卸載算法的測試結(jié)果。對于短消息通信和P(2的冪次)個結(jié)點(diǎn),MPICH的MPI_Reduce接口是基于2-nomial樹形算法實(shí)現(xiàn),通信步驟為log2P步,與同等通信步驟的2-nomial樹形結(jié)構(gòu)Reduce通信卸載算法相比較,可以看出基于觸發(fā)操作的通信卸載算法明顯減少了歸約操作的延遲,主機(jī)處理器參與接收消息和執(zhí)行歸約計(jì)算操作的軟件層開銷被消除,使得整個歸約過程中受到系統(tǒng)噪聲干擾的影響很少。通過改變nomial樹形結(jié)構(gòu)的分叉度為4和8,來進(jìn)一步探究樹形結(jié)構(gòu)Reduce通信卸載算法的性能優(yōu)化參數(shù),分叉度的大小對2種樹形結(jié)構(gòu)的Reduce通信卸載算法有著顯著影響,且隨著分叉度增大,通信卸載算法的優(yōu)化效果更明顯。這是因?yàn)樵赗educe的通信卸載實(shí)現(xiàn)中,通過增加分叉度降低了樹的層數(shù),有效減少了數(shù)據(jù)的傳輸步驟。將K-nomial樹形結(jié)構(gòu)改變?yōu)镵-ary樹形結(jié)構(gòu),在各個結(jié)點(diǎn)規(guī)模下,2種樹形結(jié)構(gòu)對Reduce通信卸載實(shí)現(xiàn)的延遲差異不大,測試結(jié)果中當(dāng)結(jié)點(diǎn)數(shù)為128時,8-nomial樹的通信卸載實(shí)現(xiàn)延遲為5.61 μs,8-ary樹的通信卸載實(shí)現(xiàn)延遲為4.79 μs,此時延遲差最大為0.82 μs,不超過1 μs。在Reduce通信卸載算法中各結(jié)點(diǎn)的單次歸約執(zhí)行過程是:葉結(jié)點(diǎn)僅將本結(jié)點(diǎn)參與歸約計(jì)算的數(shù)據(jù)報(bào)文發(fā)送到網(wǎng)絡(luò)接口即完成任務(wù),中間結(jié)點(diǎn)等待接收完子結(jié)點(diǎn)的歸約計(jì)算報(bào)文并將計(jì)算結(jié)果向上發(fā)送給父結(jié)點(diǎn)后完成任務(wù),根節(jié)點(diǎn)需要接收所有子結(jié)點(diǎn)的歸約數(shù)據(jù)并將計(jì)算結(jié)果發(fā)到本結(jié)點(diǎn)的報(bào)文接收隊(duì)列里,發(fā)送完報(bào)文后一直等待接收歸約計(jì)算結(jié)果并完成解析才完成任務(wù)。與Allreduce的通信卸載算法實(shí)現(xiàn)相比,Reduce的通信卸載算法實(shí)現(xiàn)不包含向下廣播數(shù)據(jù)的隱式同步過程,通信任務(wù)更為簡單,對樹形結(jié)構(gòu)不敏感,性能提升更明顯。

      Figure 6 Comparison diagram of Reduce communication offloaded algorithm and MPICH implementation圖6 Reduce通信卸載算法與MPICH實(shí)現(xiàn)對比圖

      5 結(jié)束語

      本文描述了面向聚合通信優(yōu)化的基于觸發(fā)操作的通信卸載機(jī)制,并基于這種通信卸載機(jī)制優(yōu)化了MPI接口中的Allreduce和Reduce 2種歸約操作,通過設(shè)計(jì)與實(shí)現(xiàn)在互連網(wǎng)絡(luò)硬件中自動觸發(fā)執(zhí)行的樹形結(jié)構(gòu)歸約算法,去優(yōu)化歸約操作的性能。實(shí)驗(yàn)測試評估了在天河互連網(wǎng)絡(luò)上,針對不同結(jié)點(diǎn)規(guī)模和樹形分叉度的歸約操作性能。測試結(jié)果表明,利用通信卸載實(shí)現(xiàn)的歸約操作,比基于點(diǎn)對點(diǎn)通信的軟件層歸約操作有更好的延遲性能和可擴(kuò)展性,并且在樹形結(jié)構(gòu)通信卸載算法中選用合適的分叉度能實(shí)現(xiàn)最優(yōu)的性能。下一步工作將利用觸發(fā)操作,實(shí)現(xiàn)多種其它聚合通信操作卸載算法,并更好地集成到MPI實(shí)現(xiàn)系統(tǒng)中。

      猜你喜歡
      網(wǎng)絡(luò)接口描述符樹形
      花光卉影
      花卉(2024年1期)2024-01-16 11:29:12
      變電站網(wǎng)絡(luò)接口物理防護(hù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      蘋果高光效樹形改造綜合配套技術(shù)
      河北果樹(2022年1期)2022-02-16 00:41:10
      基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
      Linux單線程并發(fā)服務(wù)器探索
      獼猴桃樹形培養(yǎng)和修剪技術(shù)
      休眠季榆葉梅自然開心樹形的整形修剪
      利用CNN的無人機(jī)遙感影像特征描述符學(xué)習(xí)
      淺析CTC與GSM-R系統(tǒng)網(wǎng)絡(luò)接口及路由配置改進(jìn)措施
      網(wǎng)絡(luò)設(shè)置管理
      论坛| 芦山县| 紫云| 宜良县| 台东市| 应城市| 惠来县| 宁津县| 府谷县| 泗水县| 沙湾县| 桦甸市| 贵南县| 修武县| 丰台区| 古田县| 苏尼特左旗| 土默特右旗| 石嘴山市| 漳平市| 石河子市| 凯里市| 防城港市| 阜宁县| 龙门县| 勃利县| 突泉县| 平遥县| 鲜城| 同江市| 冷水江市| 石景山区| 东港市| 民丰县| 子洲县| 扎赉特旗| 东安县| 天台县| 禄丰县| 宜宾市| 沧州市|