《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于樹型MPI并行計算系統(tǒng)的設計與實現(xiàn)
基于樹型MPI并行計算系統(tǒng)的設計與實現(xiàn)
來源:電子技術應用2011年第12期
王 巍, 張杰敏
(集美大學 計算機工程學院, 福建 廈門361021)
摘要: 針對單層型MPI集群通信效率不高的特點,通過對比分析單層型結構和樹型結構在集群聚合通信中的不同,提出了一種基于樹型結構的MPI集群系統(tǒng)設計方案。用以降低全局通信流量和均衡主控節(jié)點負載,從而改善集群通信效率,使集群的擴展更加靈活,通過實驗驗證了該方案的可行性。
關鍵詞: MPI 聚合通信 廣播 收集
中圖分類號: TP393
文獻標識碼: A
文章編號: 0258-7998(2011)12-0126-04
Design and implementation of MPI parallel computing system based on tree structure
Wang Wei, Zhang Jiemin
Computer Engineering College, Jimei University,Xiamen 361021, China
Abstract: In accordance with the feature of flat-structure MPI cluster communication, a design of MPI parallel computing system based on tree structure is proposed in this paper by studying the difference of converged communications between flat-structure and tree-structure in order to induce global traffic and balance master node load. This design improves the efficiency of cluster communication and makes the cluster expansion more flexible. Finally, we demonstrate the effectiveness of this design through experiments.
Key words : MPI; converged communications; broadcast; gather


    近年來隨著各種應用計算需求的不斷增長,集群計算的規(guī)模也在不斷擴大。然而集群規(guī)模的增大并不意味著絕對計算速度和并行效率的提升,其中影響并行應用程序計算性能發(fā)揮的主要瓶頸之一是消息傳遞通信設計不理想或使用不合理,導致全局通信使用頻率過高,造成通信堵塞、各種操作的響應時間持續(xù)延長和計算性能的下降。有數(shù)據(jù)表明,在大多數(shù)集群通信中,聚合通信開銷往往占據(jù)全部消息傳遞通信開銷的80%以上。因此,合理調整消息傳遞中聚合通信機制、降低全局通信流量應是改善現(xiàn)有集群計算環(huán)境的有效手段之一[1]。
     本文基于MPI集群框架結構,通過分析單層型集群和樹型結構集群的聚合通信原理,提出了一種采用樹型結構的MPI集群系統(tǒng)設計方案,用以降低聚合通信的開銷,改善集群計算環(huán)境,同時也為集群的擴展提供更加靈活的手段。聚合通信包括很多全局操作(如廣播、同步、歸約、分發(fā)、收集)等,但很多聚合通信是由其他聚合通信的組合來實現(xiàn)的,本文選擇了有代表性的廣播和收集作為主要研究對象。
1 單層型結構與樹型結構
1.1 單層型結構介紹

     單層型結構是目前大多數(shù)MPI集群工具所采用的框架結構。如圖1所示。該結構由一個主控節(jié)點和多個從屬節(jié)點組成,主控節(jié)點和每個從屬節(jié)點之間都建立了通信連接,實現(xiàn)聚合通信,從屬節(jié)點相互之間可以實現(xiàn)點到點通信[2]。

 主控節(jié)點的功能主要包括與用戶進行交互,向從屬節(jié)點廣播、分發(fā)消息,收集、歸納從屬節(jié)點發(fā)來的消息,以及系統(tǒng)認證、網(wǎng)絡管理和遠程控制等。
    從屬節(jié)點的功能主要用于計算、接收主控節(jié)點發(fā)來的各種控制命令、數(shù)據(jù),根據(jù)控制命令在其節(jié)點機上進行相應的執(zhí)行,然后將執(zhí)行后的結果傳回給主控節(jié)點。
 單層型結構集群的實現(xiàn)相對簡單,易于操作,且集群工具和應用軟件較多,所以應用廣泛。但是由于集群中只有一個主控節(jié)點,在聚合通信時,無論是一對多模式,多對多模式還是多對一模式,都要圍繞著主控節(jié)點進行,使得集群中全局通信流量所占比重較大。當集群節(jié)點數(shù)增加或計算量很大時,網(wǎng)絡負載極易到達額定上限,使得主控節(jié)點無法正常運行,計算性能下降。
 單層型結構的消息廣播和消息收集的時間復雜度均為:O(n)
1.2 樹型結構介紹
      樹型結構是針對單層型結構在消息廣播和消息收集方面速度慢、可擴展性差的弱點而提出的新的消息傳輸結構。圖2所示為典型的樹型結構,和單層型結構一樣,樹型結構也有主控節(jié)點(根節(jié)點)和從屬節(jié)點(葉子節(jié)點),且功能與單層型結構類似。不同的是,樹型結構中還包含分支節(jié)點,這些分支節(jié)點是樹的內部節(jié)點,沒有計算功能,也沒有系統(tǒng)認證、網(wǎng)絡管理和遠程控制等功能,只有對消息的轉發(fā)、分發(fā)和收集功能,所以也叫路由節(jié)點。圖2中,根節(jié)點與其下一層的分支節(jié)點有直接的通信連接,同樣每個分支節(jié)點都與其下一層的節(jié)點有直接通信連接,上層節(jié)點與下層節(jié)點可以實現(xiàn)聚合通信,而擁有同一個父親的同層節(jié)點之間可以進行點到點通信。除此以外,其他非同父節(jié)點相互之間沒有建立直接的通信連接。

      樹型結構集群可以將全局通信域劃分為多個子通信域,并且可以將主控節(jié)點的負載量分擔到各個分支節(jié)點上,降低全局通信量進而改善集群計算環(huán)境。同時隨著樹的深度增加,使得集群更易于擴展。但該集群實現(xiàn)起來比較復雜,且沒有專用的協(xié)議、應用軟件或集群工具的支持[3]。
      樹型結構的消息廣播和消息收集的時間復雜度均為:O(logn)
2 樹型MPI的設計與實現(xiàn)        

 


    雖然使用樹型結構的集群系統(tǒng)可以改善聚合通信的效率,但其實現(xiàn)起來則相對復雜。主要原因是常用的MPI計算通信工具基于單層型集群設計,是在主控節(jié)點與若干計算節(jié)點之間的通信基礎之上實現(xiàn)的。為此,本文提出了一種利用IP轉發(fā)技術和MPI并行編程技術實現(xiàn)樹型結構的MPI集群系統(tǒng)設計方案。這里需要注意以下問題:
 (1)根節(jié)點的設計
 在構建集群網(wǎng)絡時,網(wǎng)絡安全和通信效率既相互依賴又相互制衡。若省去頻繁的核實用戶身份等安全方面的檢查,則可以省去一部分系統(tǒng)開銷,進而提高網(wǎng)絡通信效率,但集群網(wǎng)絡的安全性就無法保障;同樣,若犧牲通信效率而實現(xiàn)網(wǎng)絡安全,則集群計算的優(yōu)勢將無法體現(xiàn)。通常的做法是采用內外網(wǎng)模式,即從屬節(jié)點和主控節(jié)點之間由內部網(wǎng)絡互聯(lián),只有主控節(jié)點另有網(wǎng)絡通道通向外部網(wǎng)絡。這樣,由于內外網(wǎng)絡物理隔離,為網(wǎng)絡安全提供了保證,在內部網(wǎng)絡中可以省去頻繁的用戶身份認證等安全方面的開銷,從而為通信效率的提升留出空間。
 根節(jié)點(主控節(jié)點)的設計也將采用內外網(wǎng)模式,在其機器上安裝兩塊網(wǎng)卡(網(wǎng)絡適配器),一塊接集群內部網(wǎng),使用內部網(wǎng)絡設置,提供內部網(wǎng)絡服務(域名服務,NIS,NFS和RSH);另一塊接外部網(wǎng),留出對外聯(lián)系的通道,兩網(wǎng)卡之間不提供路由、轉發(fā)等功能。
 (2)分支節(jié)點的設計
 樹形結構中的分支節(jié)點用于連接根節(jié)點(主控節(jié)點)和葉子節(jié)點(計算節(jié)點),在整個集群中發(fā)揮兩個作用:一個是承上啟下的連接作用,另一個則是對根節(jié)點(主控節(jié)點)的分擔作用,所以分支節(jié)點應具有路由和對消息的傳遞、分發(fā)和收集等功能。
    分支節(jié)點的設計與根節(jié)點有類似之處。也是在其機器上安裝兩塊網(wǎng)卡,一塊連接上層節(jié)點(根節(jié)點或上層的分支節(jié)點),IP地址設置在上層節(jié)點的同一個網(wǎng)段內,默認網(wǎng)關指向上層節(jié)點(父節(jié)點),使其成為上層網(wǎng)絡的成員;另一塊連接下層節(jié)點(下層的分支節(jié)點或葉子節(jié)點),設置IP地址(最好與前一塊網(wǎng)卡的IP地址不同網(wǎng)段),為下層網(wǎng)絡提供網(wǎng)關服務。但若要在上下層兩個網(wǎng)絡實現(xiàn)路由,需要在分支節(jié)點上修改 /etc/sysctl.conf配置文件中的net.ipv4.ip_forward = 1(以Linux操作系統(tǒng)為平臺參考),使得本節(jié)點機IP轉發(fā)功能生效。這樣做的目的是既能實現(xiàn)上下兩層網(wǎng)絡之間的通信,同時又能阻止基于網(wǎng)絡第二層的廣播幀的傳播。
 (3)域名的設計
 在TCP/IP中,計算機之間的通信通過IP訪問來實現(xiàn),但IP地址不容易編程和管理,所以整個集群系統(tǒng)需要為每個節(jié)點提供一套統(tǒng)一的命名機制。如圖3所示,Boot為根節(jié)點內部網(wǎng)卡的網(wǎng)絡標識,bran01-up和bran01-down為同一個分支節(jié)點機上的兩塊網(wǎng)卡上的網(wǎng)絡標識,前一塊為連接上層網(wǎng)絡的接口,后一塊為連接下層網(wǎng)絡的接口,leaf01為葉子節(jié)點的網(wǎng)絡標識。MPI編程環(huán)境可以通過此域名來區(qū)分、訪問運行在各個節(jié)點機上的進程(如MPI_Get_processor_name()函數(shù))。

 對于集群系統(tǒng)來說,集群中所有節(jié)點域名和IP地址的對應關系的建立是在/etc/hosts文件中描述的,不僅是因為它們經(jīng)常用到,而且還因為該文件結構簡單,更易于快速查找。圖3所示的/etc/hosts.equiv文件可以為RSH(遠程shell命令)提供無口令遠程登錄,這也為各節(jié)點載入同一個計算程序二進制代碼和用戶身份的快速驗證提供了可能。
       (4)進程組和通信域的設計
     MPI中的通信域(Communicator)提供了一種組織和管理進程間通信的方法。每個通信域包括一組MPI進程,稱為進程組。這一組進程之間可以相互通信,而且這個通信域內的通信不會跨越通信域的邊界。這樣就提供了一種安全的消息傳遞機制,因為它隔離了內部和外部的通信,避免了不必要的同步。每個進程都至少在某個特定的通信域中,但有可能進程在多個通信域中,這就像某個人可以是多個組織的成員一樣。進程組由一個進程的有序序列進行描述,每個進程根據(jù)在序列中的位置被賦予一個進程號(0, 1, ...,N-1)[4]。
     本文將根節(jié)點與其相鄰的下一層節(jié)點(孩子節(jié)點)劃定為一個進程組0,將分支節(jié)點1與其相鄰的下一層節(jié)點(孩子節(jié)點)劃定為進程組1,…,依此類推,直到所有分支節(jié)點或根節(jié)點都擁有自己的進程組為止,如圖4所示。由于每個分支節(jié)點或根節(jié)點都有兩塊網(wǎng)卡,所以將兩塊網(wǎng)卡分屬不同的進程組中,彼此互不包含。將全局通信域劃分成若干個子通信域,使得大量的消息傳遞開銷被限制在局部范圍內,大大降低了全局通信的頻率,從而提高了集群通信的性能。

   (5)組間通信
 進程組劃分之后,形成相應的通信域,規(guī)避了大量節(jié)點間同步所消耗的開銷。但進程組之間也要進行通信,根節(jié)點需要將消息逐層傳遞到葉子節(jié)點,同樣葉子節(jié)點所計算出來的結果也是要逐層收集、規(guī)約到根節(jié)點,所以組間通信也是本系統(tǒng)實現(xiàn)的關鍵之一。這里,通過使用MPI組間通信函數(shù)(如MPI_Intercomm_create()函數(shù))來實現(xiàn)組間消息的傳遞。
 (6)葉子節(jié)點的設計
  葉子節(jié)點作為主要計算節(jié)點,除了NIS、NFS、RSH客戶端軟件和MPI相關軟件外,盡量不再安裝其他軟件,以減少葉子節(jié)點額外的開銷。設置與其父節(jié)點同屬一個網(wǎng)段的IP地址,并將網(wǎng)關指向其父節(jié)點。如有必要可以精簡操作系統(tǒng)內核,使其盡量占用CPU時間少、占用內存少。
3 實驗結果與分析
3.1 實驗環(huán)境和方法

    本實驗將先后搭建三組環(huán)境對這兩種結構的MPI集群進行測試,測試環(huán)境如下:
    (1)第一組是具有2個計算節(jié)點的集群,單層型和樹型集群均由1個主控節(jié)點和兩個計算節(jié)點構成。
    (2)第二組是擁有4個計算節(jié)點的集群,單層型是指1主控節(jié)點和4個計算節(jié)點構成,而樹型結構則是由1個根節(jié)點(主控節(jié)點),2個分支節(jié)點和4個計算節(jié)點構成,其中每個分支節(jié)點各連接兩個計算節(jié)點,對稱分布。
    (3)第三組是具有6個計算節(jié)點的集群,如圖5所示。左圖為單層型MPI集群,擁有6個計算節(jié)點和1個主控節(jié)點;右圖為樹型集群,擁有1個根節(jié)點,2個分支節(jié)點和6個計算節(jié)點。

    這其中每個節(jié)點包含一顆PIV處理器和2 GB內存,操作系統(tǒng)采用Redhat Linux Enterprise 5,并行集群軟件為OPEN MPI 1.3。由于條件所限,加之實驗規(guī)模較小,所以本實驗采用MPI自帶的函數(shù)MPI_Wtime()來采集MPI計算的開始和結束時間,取兩者的時間差作為程序的運行時間,并對其進行比較和分析,用MPI_Wtick()函數(shù)來監(jiān)測MPI_Wtime()返回結果的精度。
    在實驗用例設計上,考慮到兩種MPI集群的通信機制中的傳輸路徑不同,所以采用計算求解三對角方程組作為測試方案,主要測試通信和計算的平衡。
3.2 測度結果和分析
    測試結果如表1、表2所示。

    測試結果表明,在第一組的測試中,雙方的運行時間沒有明顯差別,這是由于它們都擁有1個主控節(jié)點和2個計算節(jié)點。雖然樹型結構在MPI聚合通信機制上有所改動,但影響有限,測試的結果基本相同。對于第二組的測試,測試結果差異較明顯,在傳輸短消息時,可以發(fā)現(xiàn)單層型集群的運算速度并不比樹型慢多少, 在16 B的情況單層型還優(yōu)于樹型。這是因為樹型結構的集群中除了擁有和單層型相同數(shù)目的計算節(jié)點外,還有兩個分支節(jié)點(也叫路由節(jié)點),分支節(jié)點需要在兩個通信域之間傳遞處理消息,需要處理時間,所以樹型結構的消息傳輸時間除了消息廣播和收集時間外,還有域間轉發(fā)處理的時間。盡管在時間復雜度上樹型結構優(yōu)于單層型結構,但在通信域中節(jié)點數(shù)較少、消息較小的情況下,兩者之間差距不是十分明顯,若再加上域間處理的時間,自然會出現(xiàn)這樣的情況。但當消息增大時,由于樹型結構中每個通信域的廣播和收集時間遠遠小于單層結構的廣播和收集時間,從而抵消了分支節(jié)點處理消息的時間,所以樹型的整體運算時間明顯小于單層型的運算時間。對于第三組的測試,樹型的整體運算時間明顯優(yōu)于單層型集群,幾乎相當于同級別單層型集群的1/2。這是由于隨著計算節(jié)點的增加,樹型MPI集群的優(yōu)勢明顯發(fā)揮出來,尤其是聚合通信方面。
 由上分析表明,基于樹型MPI并行計算集群的設計方案是可行的。在該方案上構建的MPI集群系統(tǒng)可以使消息廣播和消息收集的速度明顯提高,使得全局通信使用頻率明顯下降,從而提升了集群整體計算速度。同時,由于樹型結構的特點,使得集群的擴展更加輕松。盡管從理論上可知隨著節(jié)點數(shù)的增加樹型MPI的集群的優(yōu)勢將更加凸顯,但是由于實驗條件的限制,只能對集群通信系統(tǒng)做初步驗證。所以希望在未來的研發(fā)工作中能夠引入更科學的評測體系,不斷地論證和完善該系統(tǒng),為提升中小型MPI集群性能提供幫助。
參考文獻
[1] 劉洋,曹建文,李玉成. 聚合通信模型的測試與分析[J].計算機工程與應用,2006(9):30-33.
[2] CHEN C P. The parallel technologies (PaCT-2003)[C]. Nizhni Novgorod, Russia.2003.
[3] ROCH P C, ARNOLD D C, MILLER B P. MRNet: A software-based multicast/reduction network for scalable Tools[A]. Phoenix, Arizona, 2003.
[4] 莫則堯,袁國興.消息傳遞并行編程環(huán)境[M].北京:科學出版社,2001.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产一区二区三区四区老人| 黑人巨大精品欧美一区二区| 久久久久在线| 亚洲欧美日韩另类精品一区二区三区| 亚洲精品小视频在线观看| 久久精品国产亚洲一区二区三区| 午夜精品久久久久久久99热浪潮| 一区二区欧美在线观看| 一本大道av伊人久久综合| 日韩视频在线你懂得| 日韩视频免费观看高清在线视频 | 一区二区三区精品久久久| 亚洲精品乱码久久久久久日本蜜臀 | 欧美国产综合视频| 欧美电影免费观看高清完整版| 免费在线视频一区| 欧美黄色aa电影| 欧美日韩精品免费在线观看视频| 欧美日韩精品中文字幕| 欧美性色综合| 国产免费一区二区三区香蕉精| 国产精品午夜久久| 国产亚洲一区在线播放| 国内精品模特av私拍在线观看| 精东粉嫩av免费一区二区三区| 亚洲国产高清高潮精品美女| 亚洲福利av| 99re热这里只有精品视频| 亚洲少妇一区| 欧美亚洲免费在线| 最新成人av在线| 亚洲无毛电影| 欧美中文字幕视频| 免费在线欧美黄色| 欧美午夜精品理论片a级大开眼界| 国产精品欧美久久| 狠狠久久亚洲欧美| 亚洲精品日产精品乱码不卡| 亚洲天堂av电影| 欧美一区精品| 亚洲精品久久久久久下一站| 亚洲天堂av在线免费| 欧美伊人久久| 欧美www在线| 国产精品久久久久77777| 国产曰批免费观看久久久| 亚洲国产综合视频在线观看| 中文av字幕一区| 久久国产加勒比精品无码| 亚洲美女中文字幕| 午夜在线电影亚洲一区| 另类专区欧美制服同性| 欧美视频日韩视频| 国产有码一区二区| 99视频热这里只有精品免费| 性欧美办公室18xxxxhd| 亚洲美女免费精品视频在线观看| 午夜精品福利一区二区蜜股av| 久久综合色综合88| 国产精品爱啪在线线免费观看| 国产一区二区三区四区老人| 亚洲精选在线| 久久精品亚洲一区| 亚洲永久免费视频| 欧美jizz19性欧美| 国产精品尤物| 亚洲国产视频一区| 欧美一区亚洲二区| 亚洲一区二区三区免费在线观看| 久久综合久久久久88| 国产精品久久久久aaaa樱花| 在线成人h网| 亚洲一区二区三区免费观看| 亚洲精品影院| 久久久久久国产精品一区| 欧美日韩影院| 在线观看欧美亚洲| 午夜精品一区二区三区电影天堂| 日韩亚洲精品电影| 久久精品人人爽| 国产精品久久久久77777| 亚洲国产精品尤物yw在线观看| 午夜精品福利视频| 亚洲欧美国产制服动漫| 欧美日韩国产综合视频在线观看| 在线播放视频一区| 欧美伊人久久| 欧美一区二区三区四区在线观看地址| 欧美精品1区| 亚洲高清视频的网址| 久久成人18免费网站| 欧美一级大片在线观看| 欧美色图五月天| 亚洲精品资源| 亚洲精品国产精品乱码不99 | 久久久99精品免费观看不卡| 国产精品久久久久久av下载红粉| 亚洲黄色免费网站| 亚洲国产另类精品专区| 久久久久国产一区二区三区| 国产精品视频久久一区| 亚洲视频欧美在线| 亚洲午夜精品17c| 欧美日韩高清在线观看| 亚洲人成亚洲人成在线观看图片| 91久久国产综合久久| 久久三级福利| 狠狠干综合网| 亚洲高清视频在线观看| 久久久久久久久久久久久久一区| 国产精品一卡二卡| 午夜精品一区二区三区在线视 | 欧美日韩高清在线| 亚洲精品午夜| 99日韩精品| 欧美日韩视频免费播放| 日韩视频一区二区在线观看 | 国产精品亚洲片夜色在线| 亚洲视屏一区| 午夜一级久久| 国产欧美一区二区精品仙草咪| 亚洲免费视频观看| 久久高清一区| 国产亚洲人成a一在线v站| 欧美中文字幕在线观看| 久久偷窥视频| **性色生活片久久毛片| 亚洲激情视频在线播放| 欧美—级a级欧美特级ar全黄| 亚洲国产专区| 亚洲视频自拍偷拍| 国产精品爱久久久久久久| 亚洲欧美国产日韩中文字幕 | 乱中年女人伦av一区二区| 在线日本成人| 9色精品在线| 国产精品不卡在线| 午夜精品成人在线| 老司机午夜精品视频在线观看| 在线日韩欧美| 一区二区三区视频在线看| 国产精品大全| 欧美一区二区视频免费观看 | 亚洲精品国产视频| 亚洲一区三区视频在线观看| 国产精品自在欧美一区| 久久精品一区二区国产| 欧美精品在线观看播放| 在线视频欧美日韩精品| 久久精品理论片| 亚洲国产日韩欧美一区二区三区| 一区二区三区精品视频| 国产精品欧美一区二区三区奶水 | 欧美一区二区视频观看视频| 免费观看日韩av| 99热精品在线| 久久se精品一区精品二区| 激情五月***国产精品| 亚洲精品国精品久久99热| 欧美亚洲第一页| 午夜性色一区二区三区免费视频| 久久综合伊人77777蜜臀| 亚洲精品美女免费| 欧美亚洲一级| 在线欧美一区| 午夜久久黄色| 永久免费视频成人| 亚洲欧美在线播放| 欧美国产免费| 亚洲免费在线播放| 免费视频一区| 亚洲一区日韩| 欧美sm极限捆绑bd| 亚洲一区二区三区四区五区黄| 久久免费国产| 日韩视频在线播放| 久久这里只有精品视频首页| 亚洲人成人一区二区在线观看| 欧美亚洲视频在线看网址| 在线观看日韩一区| 亚洲性图久久| 伊人精品久久久久7777| 宅男66日本亚洲欧美视频| 国产一区二区看久久| 性xx色xx综合久久久xx| 欧美国产一区视频在线观看| 亚洲免费在线看| 欧美高清自拍一区| 香蕉视频成人在线观看| 欧美日韩一区二| 亚洲大黄网站| 国产精品一区二区在线观看不卡 | 亚洲国产欧美在线| 国产精品视频1区| 亚洲精品日韩久久| 国产视频在线观看一区二区三区| 一本色道久久88综合亚洲精品ⅰ| 国产欧美在线| 中文精品视频| 亚洲国产日本|