1引 言
通過高性能互連系統將多個CPU構成并行計算機集群系統,是獲得高性能計算的有效途徑。為了提高互連系統的性能,人們從許多方面進行了大量研究,如互連硬件設備性能、并行系統的網絡拓撲結構和路由算法等等[1]。由于硬件性能受限于當前的工藝水平,且網絡拓撲結構的研究非常成熟,路由算法就成了研究熱點。
在路由的實現過程中,互連網絡所采用的信息交換技術決定了信息可以沿著路徑傳輸的延時和帶寬。因此信息交換技術是反映互聯網性能的一個重要因素。最基本的信息交換技術有電路交換(Circuit Switch)和報文交換(Packet Switch)兩種[2],其他許多改進方法都是針對這兩種技術的性能改善方法,比如蟲孔交換(Wormhole Switch)[3]是對報文交換中有的路徑上信息單元不足一個報文;虛跨步交換(Virtual Cut-through Switch)是鑒于電路交換與報文交換之間的技術。這些技術的改進是針對物理鏈路的要求而來的,而不是針對應用特點的延時與帶寬需求進行的。
從應用的角度來看,一個集群系統上往往運行了多種應用程序[4]。不同應用的數據有不同的特點,對信息交換的性能有不同的要求,比如有的要求是低延時,而有的要求高帶寬,這就要求有與之相適應的信息交換技術。電路交換與報文交換二者有不同的特點,任何一種方法都不能同時滿足所有應用。為此,需要研究與多種應用需求相適應的信息交換技術。
為了提高信息交換對應用需求的適應性,文獻[2]提出了一種基于高性能輸入隊列的交換技術。該技術通過改進鏈路上設備的緩沖區來提高系統的交換性能,其優點是能適應一定范圍內的信息提供高帶寬低延時的服務,其缺點是需要增設緩沖區,對底層進行修改[5]。文獻[3]提出網絡路由的緩沖區管理與調度算法進行研究,來改進網絡的QoS。但是不同應用的QoS標準不同,其方法只能針對應用的低延時或高帶寬的多種要求同時進行優化。本文提出自適應信息交換技術的思想,是為了提高網絡的信息交換性能并且可以滿足不同應用的多種需求。
2 傳統的信息交換技術
2.1 電路交換
電路交換的方法如圖一所示,在數據傳輸前要在源和目的之間首先建立一條物理路徑,然后在這條路徑上一次將數據傳送完,再釋放該物理路徑。
其中物理路徑的建立是通過向網絡注入路由頭微片來實現的(這個路由頭微片包括目的地址和其他控制信息,路由探測頭向目的前進,在通過中間路由器傳輸的同時保留物理鏈路。當探測頭到達目的時,就建立了一條完整的路徑,并向源結點返回應答)。路徑建立后,消息內容就可以以硬件路徑的整個帶寬傳送[4] [5]。
電路交換的優點是:①簡單,就類似于源與目的之間建立一條物理專線;②傳送帶寬高,因為其傳送可以占領整個帶寬性能。當應用中需要傳送的消息很長時(消息傳輸時間遠遠大于路徑建立時間),這種交換技術非常有效。
電路交換的缺點是:①路徑建立延時很長。路徑的建立要求路徑的每個器件都空閑;②整個消息發送期間都要占領該物理路徑,有可能阻塞其他的消息,影響網絡的整體利用率。
2.2 報文交換
針對電路交換要占用整個路徑的缺點,報文交換如圖二所示,是將消息劃分成固定長度的許多報文,每個報文從源結點到目的結點獨立路由,報文在向下一個結點轉發之前完全緩沖在每個中間結點,不需要占領獨立的物理通道。為了便于控制,每個報文的前幾個字節包含路由和控制信息,稱作報文頭。中間路由器析取頭信息,確定報文轉發的輸出鏈路[4] [5]。
報文交換的優點是:①不需要建立物理路徑,消息傳送的延時小,對消息較短和延時受限的應用來說很有意義;②在報文交換中,只要某段預留路徑空閑有效的時間段,有數據需要傳輸時通信鏈路就可以充分利用,器件的并行性較好,網絡的利用率高。
報文交換的缺點是:①消息需要進行分片,會帶來額外開銷;②由于每個消息片獨立路由,一條消息的多個報文會出現亂序等現象,整個傳送的完成需要等待傳送最慢的消息片;③消息傳送需要有超時機制對是否傳送完成進行判斷,和報文重復丟棄等復雜情況進行管理[6]。
圖一 電路交換示意圖 圖二 報文交換示意圖
3. 自適應信息交換
不同的應用對消息交換有不同的要求。比如在集群系統上運行科學計算中的障礙同步操作(Barrie),消息較短,操作的延時直接決定了多機并發工作的性能。這種情況就是延時受限。而對于數據挖掘應用,數據庫服務器需要將某一維的所有數據進行傳送,數據量大,傳送的及時完成對應用服務性能有直接影響。這種需要高帶寬的應用就是帶寬受限。一個集群系統同時運行這些應用,就要求網絡交換技術具有一定的適應性。
3.1 兩種交換方式的互補性
經分析,電路交換的優點是帶寬高,但是建立鏈路時間太長時,同樣會影響數據傳遞的效果[6] [7];在報文交換機制中,每個片會帶來額外的數據包處理開銷等,如果這些開銷太大,同樣會引起系統的整體性能。二者結合起來,則有較理想的效果。
電路交換與報文交換相互補的方法是指對于一個消息,如果能很快建立一條物理鏈路,則可以選擇進行電路交換;如果在鏈路上的某幾個結點之間能很快建立一條物理鏈路,則這些結點間能進行電路交換,而路徑上的其余結點間采用報文交換。如圖三所示。
互補交換是自適應交換中的一種交換方式。在互補交換中,只需要少量的鏈路建立時間。
圖三 互補交換示意圖
3.2 自適應信息交換思想
所謂自適應信息交換技術就是根據實際應用的需要,自適應地選擇數據交換方法,如算法一所示。算法一中,對有延時要求的短消息,自適應信息交換會選擇報文交換機制進行數據傳遞;而對有帶寬要求的長消息且比較易于建立鏈路,自適應信息交換會選擇電路交換;對鏈路建立時間很長的,自適應信息交換會選擇電路交換與報文交換互補的方式。
輸入:目的結點T、源結點S、數據信息M、網絡拓撲結構、各結點間鏈路建立的統計時間 信息交換的延時
輸出:信息交換方法
算法開始: 如果 M短 且有 要求延時短, 則輸出 報文交換 如果 T與S間的鏈路建立時間 ≤ 閾值, 則 輸出 電路交換 輸出 互補交換
算法結束
算法一 信息交換機制的選擇算法
在算法一中,需要直到各結點之間路由鏈路的建立時間統計情況。這些統計情況是一些歷史信息,并且根據每次鏈路的建立情況進行修改。
3.3 自適應信息交換機制
分別設置數據信息量的信息交換下閥值x1和上閥值x2;
分別設置數據信息量的信息交換下閥值y1和上閥值y2。
設置數據記憶長度N。
近期歷史記錄中采用電路交換的N個數據信息,記為n1i (i=1,2,…, N),其信息量大小為s1i,完成信息交換的延時為t1i。
近期歷史記錄中提取采用電路交換的N個數據信息,記為n2j (j=1,2,…, N),其信息量大小為s2j,完成信息交換的延時為t2j。
具體算法實現方式如下:
如果數據信息位于灰色區域,采用電路交換;
否則,
如果數據信息位于綠色區域,采用報文交換
否則,
如果 可接受延時/數據信息量 ,采用報文交換
否則,采用電路交換
具體算法計算公式:(略)
4 結束語
針對當今信息交換不能滿足集群中多種應用需求,本文研究提出了自適應交換的思想。在研究中提出了互補交換的思想,并給出了自適應交換選擇的算法。今后的工作需要將該思想進行工程實現和驗證。
<