專利名稱:大規模集群系統的數據傳輸網絡及其構建方法
技術領域:
本發明涉及一種用于數據傳輸的通信網絡及其構建方法,特別是應用于大規模計 算機集群網絡的數據傳輸的通信網絡及其構建方法。
背景技術:
傳統的集群網絡監測工具一般采用C/S架構,1對η的通信模型,當計算規模在幾 十個節點以下時還可以獲得較好的性能,而當計算規模擴展到幾百甚至幾千、上萬時,這樣 的通信模型顯然無法滿足網絡監測工具通信的性能需求。本發明旨在解決這一問題,通過 研究傳統模型的通信瓶頸,使用經典的LogP模型對并行計算網絡進行分析,證明了使用基 于樹形網絡的層次通信模式的必要性和優越性,并開發出基于樹形的通信網絡,以滿足大 規模計算環境下的網絡監測工具的通信需求,并可提供給其他具有相似需求的并行工具或 相關平臺使用。LogP模型是一個比較經典的分析并行計算機網絡通信性能的模型,具有簡單、精 確、適用范圍廣等特點,本發明通過對LogP模型分析,證明采用樹形的層次通信模型相比 傳統的1對η通信模型更具有合理性和優越性。LogP模型假設并行系統是一個分布式存儲的、點到點通信的結構,包括數以千計 的節點,每個節點具有強大的處理器和內存,使用具有明顯延遲和有限帶寬的網絡進行通 信,使用四個主要參數來描述通信網絡,其分別是■ L(Latency)網絡延遲的上界,通信中消息從源節點到目的節點的時間;Ho(Overhead)額外開銷,表示處理器發送或接收一條消息所消耗的時間(包含 操作系統核心開銷和網絡軟件的開銷),這期間處理器不能做其他計算;■ g(gap):間隔,處理器連續發送和接收消息的最小時間間隔,其倒數相應于處 理器的通信帶寬;HP(Processor)并行系統中的處理器個數或者存儲器模塊數。LogP模型使用L、O、g和P四個簡單的參數精確的描述了并行系統中的網絡通信 特征,同時屏蔽了網絡拓撲、路由算法和通信協議等細節。因為有L和g的限制,這樣的網 絡容量是有限的,任何時刻在任何兩個節點之間最多有L/g個消息在傳遞,處理器試圖發 送超過這個數目的消息則要等待。盡管網絡拓撲對網絡性能的影響也很大,但是LogP模型 中忽略了這一點,因為研究發現包含上千個節點的網絡,不管是超立方體、蝶形或胖樹拓撲 結構,其平均的性能差別僅有2倍,所以忽略網絡拓撲不影響對整個網絡的建模。下面的幾個參數(L、o、g)單位為處理器的CPU周期數,其取值視具體的網絡有所 不同,我們采用的方法是,如果網絡帶寬是w,跳數為H,中繼節點的延遲是r,要傳送的消息 是M位大小,發送開銷和接收開銷分別為Tsmd和Trav,b是處理器對剖寬度,比較合理的選 擇是O = (Tsend+Trecv)/2 (1)L = H*r+M/w(2)
g = M/b(3)下面使用LogP模型簡單分析一下傳統的1對η通信模式和基于樹形的層次通信 模式的不同。首先使用LogP研究人員給出的8節點最優廣播樹作為例子說明這兩種模式 下通信的流程,并計算一下分別的時間消耗。這里按照上文中給出的值取四個參數分別為 P = 8,L = 6,g = 4,ο = 2,這樣的分析并不涉及具體的并行系統,參數的取值并不會影響 對問題性質的分析。圖1中給出了 8個節點時1對η通信模式的拓撲結構和使用LogP模 型對其通信過程的詳細分析,容易看出,根節點逐個向每個葉子節點廣播消息,每個節點上 的數字代表其收到消息的時間,從開始發送到最后一個節點收到消息總共花費了 34個CPU 周期。圖2中給出的是二層的樹形通信結構,圖形中各個數值的含義與圖1相同,只不過根 節點只向1、2、3、5四個節點發消息,這四個節點再分別把消息發送給自己的子節點,最后 消息廣播遍全網的時間是24個CPU周期。下面把上面的兩種情況做一下推廣,假設網絡中有η個節點,而η剛好等于2h_l, 也就是說這些節點恰巧可以用來組成一顆高度為h的滿二叉樹,根節點需要把一個消息廣 播到全網。首先分析1對η的情況,這種情況下一個根節點和其余的η-1個節點直接相連, 必須逐個的把消息發送到每一個子節點,整個廣播的完成時間是Tflat = (2h-3) g+2o+L (4)然后設想這η個節點組成了一顆高度為h的滿二叉樹,節點數為η = 2h_l,第i層 的節點個數為2H,根據LogP模型,整個廣播的完成時間是Ttree = (h-1) (2o+g+L) (5)現在假設樹的高度h = 10,也就是網絡中有1023個節點,把上面假定的四個參數 取值分別代入式(4)和(5),可以計算得到這兩種拓撲結構下廣播的完成時間分別為4094 和126周期,差距是顯而易見的。從算法復雜度上分析也很容易看出,1對η結構是指數的, 而樹形算法的復雜度則是線性的,隨著h的增加兩者的差距必然越來越大。數據匯聚是廣 播的反過程,通過類似的分析方法也可得到相似的結果。同樣節點的樹形結構可以有很多種拓撲,上面討論的所謂最優廣播樹只是其中之 一,是一種從左到右層次逐漸變稀疏的不平衡結構,很容易想到,還可以采用平衡樹的結 構。這里所說的平衡樹包括二叉或者多叉,并不是平衡二叉數(AVL)。下面將再對這兩種 拓撲進行一下分析對比。為了簡化問題并方便對比,采用17個節點層數為2的結構,其結 構如圖3中所示,需注意的是這顆非平衡樹并非是所謂的最優廣播樹,但是仍能說明我們 的問題。首先使用LogP模型按照上面的方法分別分析其廣播時間,非平衡樹中廣播時間是 4g+L+2o,而平衡樹是5g+2L+3o,顯然前者的廣播性能優于后者;然而我們所考慮的樹形通 信網絡主要是服務于并行系統中的監測工具,做大量的數據分發、匯聚和處理之用,對吞吐 量的關心大于對完成一次廣播的時間,在非平衡樹中根節點發送一次的數據需要對每個子 節點進行一次點對點通信,時間為4g,之后才可以進行第二次廣播,而在平衡樹中一次廣播 的時間為3g,優于前者,這主要是因為由于其結構更加緊湊,根節點的子節點比前者更少就 可以容納所有節點,所以一次廣播根節點需要通信次數較少。由此可見,樹形的平衡樹結構 更加適用于對吞吐率要求較高的匯聚等應用。
發明內容
為了解決集群系統的并行計算環境下傳統監測工具存在的問題,特別是面對當前 迅速增大的網絡規模的不足之處,基于背景技術中對不同結構的通信模型的理論分析,本 發明設計出一種用于大規模計算機集群系統的數據傳輸網絡,其特征在于集群系統的節 點構成樹形通信網絡,組成網絡的節點包括根節點,位于樹形通信網絡的最上層,所述根 節點是全局唯一的,其向下層節點通信,其上運行著網絡上層工具的主控程序;至少一個中 間節點,連接于根節點和葉子節點之間,作為根節點和葉子節點的中繼節點,其上運行著通 信程序,同時向下層和上層節點進行通信,并承擔集群相應的計算任務;至少一個葉子節 點,位于樹形通信網絡的最下層,所述葉子節點均是集群系統的計算節點,其向上層節點通 信,其上運行著網絡上層工具的監測程序,并承擔集群相應的計算任務。本發明的另一方面還包括,所述數據傳輸通信網絡優選為平衡樹或準平衡樹網絡。本發明的另一方面還包括,所述至少一個中間節點形成多個層,由計算任務較輕 的計算節點充當高層中間節點,由計算任務較重的計算節點充當低層的中間節點。本發明的另一方面還包括,由計算任務最重的計算節點充當葉子節點。本發明的另一方面還包括,所述根節點通過讀入存有節點IP地址等信息的配置 文件,來生成整個網絡的拓撲結構,并初始化整個網絡。本發明的另一方面還包括,不直接相連的節點之間不進行通信。本發明還提供了一種用于大規模計算機集群的數據傳輸網絡的構建方法,包括下 列步驟(1)啟動計算機集群網絡系統,系統的根節點讀入存有各節點IP地址的配置文 件;(2)根節點根據配置文件信息生成整個集群網絡的拓撲結構;(3)根據上述拓撲結構生成整個集群網絡,包括a.根節點根據直接與其相連的中間節點把整個網絡分為多個部分,以分別對應每 個中間節點;b.根節點啟動與其直接相連的中間節點上的進程,將所述直接相連的中間節點對 應的子樹配置信息傳遞給所述直接相連的中間節點;c.所述直接相連的中間節點根據上述子樹配置信息啟動相應的下一級節點的進 程,并完成其相應的計算任務,上述下一級節點可以是中間節點,也可以是葉子節點。本發明的另一方面進一步包括,所述與根節點直接相連的中間節點將其對應的子 樹配置信息傳遞給下一級中間節點,并啟動該下一級中間節點上的進程,完成其相應的計 算任務,上述過程遞歸進行,直到下一級節點為葉子節點。本發明還提供了一種用于大規模計算機集群系統的數據傳輸網絡的數據采集方 法,其包括如下步驟(1)葉子節點執行計算任務,同時將程序監測信息傳送至與其直接相連的中間節點 (2)中間節點完成自身的計算任務,并接收葉子節點或下一級中間節點傳送的程 序監測信息,中間節點將上述程序監測信息與自身的程序監測信息一并傳送至上一級中間 節點或根節點;
(3)根節點匯聚所有采集的信息,然后進行處理。
圖1是1對η通信結構的LogP模型分析;圖2是樹形層次通信結構的LogP模型分析;圖3是非平衡樹和平衡樹的對比;圖4是樹形傳輸網絡結構;圖5a是2D_Mesh的網絡結構,圖5 (b)是Fat Tree的網絡結構;圖6是通信樹的建立過程,其中圖6(a)是根節點生成拓撲,圖6 (b)是分發到樹形 拓撲的第一層的情況,圖6(c)是通信網絡連接完畢。
具體實施例方式整個網絡的結構如圖4所示。各個節點上的模塊分別調用通信庫的初始化函數,生成樹形網絡。組成網絡的節 點可按照其在網絡中的位置分為三類■根節點。在這個結構中最上端,通信樹的根節點,全局唯一,只向下通信,其上運 行著上層工具的主控程序(前端);■葉子節點。位于樹的葉子位置,均是并行系統中的計算節點,只向上通信,其上 運行著上層工具的監測程序(后端);■中間節點。位于管理節點和葉子節點之中,作為他們的中繼節點,運行著專門的 通信程序,同時向下和向上傳送消息。其中需要注意的是雖然樹形網絡性能優于傳統1對η模式網絡,但是根節點依然 容易成為系統瓶頸,使用中應避免為其分配過大負載,或使用過濾器把它的計算分布在網 絡上。另外值得考慮的是中間節點的角色,按照其用途可分為專用中間節點和兼職中間節 點,專用中間節點,其上不運行監測程序和被監測程序,專門用來做通信中繼之用,但是有 時候可能網絡規模并不大或者通信量較小,專門劃分出一定的中間節點比較浪費資源,一 些計算節點同樣可以擔當中間節點的角色,只要在系統啟動時指定其在拓撲中的位置即 可。本發明就是采用適用面更廣泛的使用計算節點充當中間節點的方式,由計算任務相對 較輕的節點同時充當高層的中間節點,計算任務較重的節點充當相對低層的中間節點,計 算任務最重的計算節點充當葉子節點。系統啟動前用戶需要把網絡中存在的節點IP地址等信息寫入一個配置文件中, 啟動時管理節點讀入這個配置文件,生成整個網絡的拓撲結構,并使用這個結構初始化整 個網絡。如上節所述,為了達到較好的網絡吞吐量,生成的是一棵根據節點數量盡量平衡的 樹,本發明中每個節點的分支數也由配置文件指定。根本上說,這種樹形的通信結構是覆蓋網絡(Overlay Network)的一種,雖然其 中每個節點地位看起來都是相同的,但是事實上不同的節點之間的地位和通信代價是不同 的,與節點間距離和通信網絡的結構有關,在胖樹(Fat Tree)結構的網絡中,共有一個父親 路由器的節點之間通信必然速度較快,而在2D_Mesh結構的網絡中物理上相鄰的節點通信 速度也較快。胖樹和2D-Mesh的網絡結構如圖5所示。因此最好能把物理上相鄰的節點在通信樹中也分配相近的位置,但是覆蓋網絡與實際網絡的出發點是完全不同的,很難使其 具有一定對應關系,而且并行系統的網絡一般也盡量為距離不同的節點提供相近的通信能 力。本發明對于實際網絡結構的依賴性比較小。網絡的啟動方式可分為簡單方式和復合方式兩種,在簡單方式下只需啟動根節點 上的進程,并告訴他要在其他節點上運行的程序,根節點根據它的子節點把整個拓撲分為 多份對應每個子節點,然后根節點啟動樹形拓撲中它的直接子節點(中間節點)上的進程, 并交付給它們其相對應的子樹配置。然后這些子節點使用自己所知的子樹分別啟動它們的 子節點(中間節點或者葉子節點),并交付子節點的拓撲結構,如此迭代直到生成整個網絡 (直到都交付到葉子節點為止)。在復合方式中同樣使用這樣的迭代方法生成網絡,不同的 是除了根節點其他節點上的程序由并行系統上的任務管理系統啟動,這也是絕大多數并行 系統上作業的處理方式,所以本發明中主要討論的是這種方式。這種情況下除根節點外其 他所有節點啟動后都監聽一個特定端口,而根節點主動和直連的子節點建立連接,并交付 子樹,之后子節點也如此迭代建立子樹,最后完成整個通信網絡。整個過程如圖6所示,該 圖表示一個只有三層的樹形網絡,具體如下第一步啟動計算機集群網絡系統,系統的根節點讀入存有各節點IP地址等信息 的配置文件;第二步根節點根據配置文件信息生成整個集群網絡的拓撲結構;第三步根據上述拓撲結構生成整個集群網絡,包括a.根節點根據直接與其相連的中間節點把整個網絡分為多個部分,以分別對應每 個中間節點;b.根節點啟動與其直接相連的中間節點上的進程,將所述直接相連的中間節點對 應的子樹配置信息傳遞給所述直接相連的中間節點;c.所述直接相連的中間節點根據上述子樹配置信息啟動相應的下一級節點的進 程,并完成其相應的計算任務,上述下一級節點可以是中間節點,也可以是葉子節點。如果中間節點存在多個層級,則步驟b中的所述與根節點直接相連的中間節點 將上述子樹配置信息傳遞給下一級中間節點,并啟動該下一級中間節點上的進程,上述過 程遞歸進行,直到下一級是葉子節點,然后啟動葉子節點上的進程,并完成其相應的計算任 務。下面是本發明的樹形通信網絡的數據采集方法(1)葉子節點執行計算任務,同時將程序監測信息傳送至與其直接相連的中間節點。(2)中間節點完成自身的計算任務,并接收葉子節點或下一級中間節點傳送的程 序監測信息,中間節點將上述程序監測信息與自身的程序監測信息一并傳送至上一級中間 節點或根節點;(3)根節點匯聚所有采集的信息,然后進行處理。以上所述,僅是本發明的較佳實例而已,并非對本發明作任何形式上的限制,雖然 本發明已以較佳實施例揭露如上,然而并非用以限定本發明,任何精于本專業的技術人員, 在不脫離本發明技術方案范圍內,當可利用上述揭示的技術內容作出其他種種的改良或修 飾為等同變化的等效實例,但凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發明技術方案的范圍內。
此外,本發明中的術語“節點”是術語“集群系統的計算機節點”的簡稱,其可以是 系統中的一臺計算機,這是本領域的公知常識;“計算節點”是本領域公知的“集群中承擔 計算任務的計算機節點”的簡稱;“管理節點”是“集群中承擔管理任務的計算機節點”的簡 稱;當然不排除有些計算機節點既是管理節點,又是計算節點。
權利要求
一種用于大規模計算機集群系統的數據傳輸網絡,其特征在于集群系統的計算機節點構成樹形通信網絡,組成網絡的計算機節點包括根節點,位于樹形通信網絡的最上層,所述根節點是全局唯一的,其向下層節點通信,其上運行著網絡上層工具的主控程序;至少一個中間節點,連接于根節點和葉子節點之間,作為根節點和葉子節點的中繼節點,其上運行著通信程序,同時向下層和上層節點進行通信,并承擔集群相應的計算任務。至少一個葉子節點,位于樹形通信網絡的最下層,所述葉子節點均是集群系統的計算節點,其向上層節點通信,其上運行著網絡上層工具的監測程序,并承擔集群相應的計算任務。
2.如權利要求2所述的數據傳輸網絡,其特征在于,所述樹形通信網絡優選為平衡樹 或準平衡樹網絡。
3.如權利要求1所述的數據傳輸網絡,其特征在于,所述至少一個中間節點形成多個 層,由計算任務較輕的計算節點充當高層中間節點,由計算任務較重的計算節點充當低層 的中間節點。
4.如權利要求1所述的數據傳輸網絡,其特征在于,由計算任務最重的計算節點充當 葉子節點。
5.如權利要求1所述的數據傳輸網絡,其特征在于,所述根節點通過讀入存有節點IP 地址等信息的配置文件,來生成整個網絡的拓撲結構,并初始化整個網絡。
6.如權利要求1所述的數據傳輸網絡,其特征在于,不直接相連的節點之間不進行通
7.—種如權利要求1所述的用于大規模計算機集群系統的數據傳輸網絡的構建方法, 包括下列步驟(1)啟動計算機集群網絡系統,系統的根節點讀入存有各節點IP地址等信息的配置文件;(2)根節點根據配置文件信息生成整個集群網絡的拓撲結構;(3)根據上述拓撲結構生成整個集群網絡,包括步驟a.根節點根據直接與其相連的中間節點把整個網絡分為多個部分,以分別對應每個中 間節點;b.根節點啟動與其直接相連的中間節點上的進程,將所述直接相連的中間節點對應的 子樹配置信息傳遞給所述直接相連的中間節點;c.所述直接相連的中間節點根據上述子樹配置信息啟動相應的下一級節點的進程,并 完成其相應的計算任務,上述下一級節點可以是中間節點,也可以是葉子節點。
8.如權利要求7所述的用于大規模計算機集群系統的數據傳輸網絡的構建方法,其特 征在于,所述步驟(3)進一步包括如下步驟d 步驟d 所述與根節點直接相連的中間節點將其對應的子樹配置信息傳遞給下一級中 間節點,并啟動該下一級中間節點上的進程,完成其相應的計算任務,上述過程遞歸進行, 直到下一級節點為葉子節點。
9.一種如權利要求1所述的用于大規模計算機集群系統的數據傳輸網絡的數據采集 方法,包括下列步驟(1)葉子節點執行計算任務,同時將程序監測信息傳送至與其直接相連的中間節點;(2)中間節點完成自身的計算任務,并接收葉子節點或下一級中間節點傳送的程序監 測信息,中間節點將上述程序監測信息與自身的程序監測信息一并傳送至上一級中間節點 或根節點;(3)根節點匯聚所有采集的信息,然后進行處理。
全文摘要
一種用于大規模計算機集群的樹形數據傳輸網絡結構,該結構由集群系統的計算機節點構成平衡或者準平衡樹形通信網絡,組成網絡的計算機節點包括唯一的根節點、至少一個中間節點、至少一個葉子節點,每一層節點只與其直接相連的節點進行通信。基于本發明的樹形網絡結構,可以有效解決大規模集群系統的通信瓶頸問題,大大提高網絡監測工具通信的性能。
文檔編號H04L12/44GK101883039SQ201010176149
公開日2010年11月10日 申請日期2010年5月13日 優先權日2010年5月13日
發明者丁毅, 張新宇, 胡凱, 蔣樹, 陳陸佳 申請人:北京航空航天大學