專利名稱:多路徑網(wǎng)絡(luò)中路由的分布式選擇的路由生成方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及具有共享通信架構(gòu)的通信網(wǎng)絡(luò)和多處理系統(tǒng)或網(wǎng)絡(luò)。更具體地說,本發(fā)明涉及便于多路徑網(wǎng)絡(luò)的節(jié)點之間信息的傳送的有效路由生成技術(shù),以及網(wǎng)絡(luò)內(nèi)路由的分布式生成。
背景技術(shù):
并行計算機系統(tǒng)已證明是迄今實現(xiàn)超出常規(guī)計算體系結(jié)構(gòu)的能力的大大增加的處理速度的有利解決方案。隨著諸如IBMRS/6000SP1TM和IBMRS/6000SP2TM之類大型并行處理機的出現(xiàn),可有效地管理大量的數(shù)據(jù),并且可快速進行復(fù)雜計算(IBM和RS/6000是本申請的受讓人,Old Orchard Road,Armonk,N.Y.的國際商用機器公司的注冊商標(biāo))。
典型的大型并行處理系統(tǒng)可包括相當(dāng)大量的,通常幾百個甚至數(shù)千個獨立但是相當(dāng)簡單的基于微處理器的節(jié)點,所述節(jié)點通過包含高速分級交換網(wǎng)絡(luò)的通信架構(gòu)互連。通過網(wǎng)絡(luò)在其間能夠進行通信的節(jié)點間路由分組形式的消息。作為一個例子,節(jié)點可包含微處理器和相關(guān)的配套電路,例如隨機存取存儲器(RAM),只讀存儲器(ROM)和輸入/輸出(I/O)電路,輸入/輸出(I/O)電路還包括具有使節(jié)點能夠通過網(wǎng)絡(luò)通信的接口的通信子系統(tǒng)。
在目前存在的各種可用形式的分組網(wǎng)絡(luò)中,最傳統(tǒng)的體系結(jié)構(gòu)多半實現(xiàn)較小的交叉點交換機的多級互連布置,每個交換機一般是一個N端口雙向路由器,N通常為4或8,N端口中的每個端口通過交叉點矩陣內(nèi)部互連。為此,該交換機可被認(rèn)為是8端口路由器交換機。在這樣的網(wǎng)絡(luò)中,從網(wǎng)絡(luò)的一側(cè)(所謂的輸入端)開始的一級中的每個交換機通過唯一的路徑(一般是字節(jié)寬的物理連接)與下一級中的交換機連接,依次類推,直到最后一級到達網(wǎng)絡(luò)的相對側(cè)(所謂的輸出端)為止。一般可以單集成電路(即“交換機芯片”)的形式得到包括在該網(wǎng)絡(luò)中的雙向路由器交換機,所述交換機芯片在操作上是無阻塞的,因此是流行的設(shè)計選擇。在1996年8月31日頒發(fā)的P.Hochschild等的美國專利No.5546391,“A Central Shared Queue Based TimeMultiplexed Packet Switch With Deadlock Avoidance”中描述了這樣的交換機芯片。
交換網(wǎng)絡(luò)一般包含組織成互連的兩級的許多交換機芯片;一個四交換機芯片輸入級和后面的一個四交換機芯片輸出級,所有這八個交換機芯片包括在單一交換板上。就這樣的布置來說,在輸入級中的不同交換機芯片上的任意兩個端口間傳遞的消息會首先通過包含源或輸入端口的輸入級中的交換機芯片被路由到構(gòu)成輸出級的四個交換機中的任意一個,隨后通過輸出級中的交換機芯片,消息會被發(fā)送回到(即消息分組會倒轉(zhuǎn)其方向)包括消息的目的地(輸出)端口的輸入級中的交換機芯片。另一方面,在包括多個這樣的交換板的較大系統(tǒng)中,消息可通過交換板的輸入級中的交換機芯片從處理節(jié)點路由到交換板的輸出級中的交換機芯片,并從輸出級交換機芯片路由到另一互連的交換板(隨后立刻路由到輸入級中的交換機芯片)。在例證的交換板中,直接與節(jié)點鏈接的交換機芯片被稱為節(jié)點交換機芯片(NSC),直接與其它交換板連接的那些交換機芯片被稱為鏈路交換機芯片(LSC)。
上述這種交換板可簡單地互連多個節(jié)點,另一方面,在較大的系統(tǒng)中,多個互連的交換板可使它們的輸入級與節(jié)點連接,使它們的輸出級與其它交換板連接,這些交換板被稱為節(jié)點交換板(NSB)。更復(fù)雜的交換網(wǎng)絡(luò)可包含插入多個NSB之間并且互連所述多個NSB的中間級交換板。這些中間交換板(ISB)充當(dāng)在與第一和第二NSB中的交換機耦接的節(jié)點間路由消息分組的管道。
在美國專利No.6021442;5884090;5812549;5453978和5355364中進一步描述了交換網(wǎng)絡(luò),這些專利均在此整體引為參考。
任何交換網(wǎng)絡(luò)的操作方面的一個考慮因素是應(yīng)選擇用于移動消息的路由,以致所需的帶寬可以用于通信。帶寬損耗的一個原因是源-目的地對間的路線的不平衡分配和它們間的競爭。雖然不可能避免所有通信模式(traffic pattern)的競爭,不過目標(biāo)應(yīng)是降低競爭。通過一組全局均衡的路由的生成,可部分實現(xiàn)該目標(biāo)。路由生成的復(fù)雜性取決于網(wǎng)絡(luò)的類型和規(guī)模,以及在任意源-目的地對之間使用的路由的數(shù)目。各種技術(shù)已被用于在多路徑網(wǎng)絡(luò)中生成路由。雖然一些技術(shù)動態(tài)生成路由,不過其它技術(shù)根據(jù)網(wǎng)絡(luò)的連通性產(chǎn)生靜態(tài)路由。動態(tài)方法通常相對于通信模式的變化自動調(diào)整,并且往往會盡可能實現(xiàn)平衡的通信流。另一方面,靜態(tài)方法是預(yù)先計算的,在網(wǎng)絡(luò)的正常操作期間并不改變。
雖然預(yù)先計算看起來更簡單,但是產(chǎn)生對各種通信模式最佳的一組可接受路由的負擔(dān)主要取決于使用的算法。一般來說,路由的全局均衡由這些算法來解決,而由于所涉及的復(fù)雜性的緣故,局部均衡的問題未被注意到。
作為另一種考慮因素,多數(shù)(即使不是全部)現(xiàn)有路由生成技術(shù),包括預(yù)先計算的路由方法是集中的路由生成技術(shù)(例如,在網(wǎng)絡(luò)的一個處理節(jié)點上實現(xiàn)),一般不可按照分布式處理來實現(xiàn)例如,國際商用機器公司已發(fā)布高性能交換機(HPS),在“An Introduction to the NewIBM eServer pSeriesHigh Performance Switch”,SG24-6978-00,2003年12月(在此整體引為參考)中描述了它的一個實施例。目前可用的HPS采用集中式路由生成技術(shù),其中網(wǎng)絡(luò)被分成不同大小的積木塊類型。不同大小的積木塊類型包括網(wǎng)絡(luò)的不同數(shù)目的交換點。從單一的處理節(jié)點,通過考慮網(wǎng)絡(luò)中的每個源節(jié)點-目的地節(jié)點對,識別源節(jié)點-目的地節(jié)點對所屬的最小積木塊類型,并從該積木塊類型的可用路由中為該源節(jié)點-目的地節(jié)點對選擇至少一個路由,靜態(tài)生成路由。盡管集中式實現(xiàn)效率較高,但是當(dāng)需要在網(wǎng)絡(luò)的單個處理節(jié)點上進行路由生成時,該技術(shù)非常低效。以分布方式實現(xiàn)該技術(shù)的嘗試要求處理節(jié)點按某種方式排列,并且在任何特定的處理節(jié)點上,需要從列表中的第一處理節(jié)點開始生成路由,直到當(dāng)前的處理節(jié)點被處理為止。這顯然需要額外的計算時間以及空間。
從而,本領(lǐng)域需要另外的路由生成技術(shù),尤其需要支持源節(jié)點-目的地節(jié)點對之間的多個路徑的網(wǎng)絡(luò)的分布式路由生成技術(shù)。
發(fā)明內(nèi)容
通過提供生成路由,以便于互連節(jié)點的網(wǎng)絡(luò)中數(shù)據(jù)分組的路由的分布式方法,克服現(xiàn)有技術(shù)的缺點,并提供額外的優(yōu)點,在互連節(jié)點的網(wǎng)絡(luò)中,節(jié)點由鏈路和交換點互連。網(wǎng)絡(luò)包括不同大小的積木塊(building block)類型,每個積木塊類型包括網(wǎng)絡(luò)的至少一個節(jié)點和網(wǎng)絡(luò)的至少一個交換機芯片。不同大小的積木塊類型包括網(wǎng)絡(luò)的不同數(shù)目的交換機芯片。該方法包括在實現(xiàn)節(jié)點識別網(wǎng)絡(luò)的節(jié)點所屬的積木塊類型,并且對于每個積木塊類型(i)選擇該積木塊類型內(nèi)不屬于較小的積木塊類型的目的地芯片;(ii)根據(jù)扇形展開條件(fanningcondition),選擇到目的地芯片的至少一個目的地節(jié)點的至少一個路由;和(iii)對積木塊類型內(nèi)的每個目的地芯片重復(fù)這兩個選擇步驟。
在增強的方面,所述選擇(ii)包括根據(jù)扇形展開條件,選擇到目的地芯片上的所有目的地節(jié)點的所需數(shù)目的路由。此外,該分布式方法在網(wǎng)絡(luò)的多個源節(jié)點中的每個節(jié)點獨立實現(xiàn)。對于每個積木塊類型,該方法還可包括創(chuàng)建積木塊類型的網(wǎng)絡(luò)子圖,其中選擇(ii)可包括從根據(jù)網(wǎng)絡(luò)子圖識別的積木塊類型內(nèi)的各對交換機芯片間的可用路由中,選擇到至少一個目的地節(jié)點的至少一個路由。此外,選擇(ii)可包括根據(jù)扇形展開條件,選擇源節(jié)點和目的地芯片的至少一個目的地節(jié)點之間的至少一個最短路由。扇形展開條件可包括選擇的路由從源節(jié)點基本均勻地扇出(fan out)到網(wǎng)絡(luò)的中央,并從網(wǎng)絡(luò)的中央扇入(fanin)到目的地節(jié)點;和實現(xiàn)經(jīng)過位于網(wǎng)絡(luò)的相同層次的鏈路的路由的全局均衡。
這里還描述和要求保護與上面總結(jié)的方法對應(yīng)的系統(tǒng)和計算機程序產(chǎn)品。
此外,通過本發(fā)明的技術(shù)實現(xiàn)了另外的特征和優(yōu)點。這里詳細說明了本發(fā)明的其它實施例和方面,這些其它實施例和方面被視為要求保護的發(fā)明的一部分。
本發(fā)明的主題在說明書完結(jié)后的權(quán)利要求中特別指出和明確要求保護。結(jié)合附圖,根據(jù)下面的詳細說明,本發(fā)明的上述和其它目的、特征和優(yōu)點將是顯而易見的,其中圖1描述具有八個交換機芯片的交換板的一個實施例,它可被用在將利用根據(jù)本發(fā)明的一個方面的路由生成的通信網(wǎng)絡(luò)中;圖2描述采用根據(jù)本發(fā)明的一個方面的扇形展開路由生成技術(shù)的128節(jié)點系統(tǒng)中的交換板的一種邏輯布局;圖3描述圖的128節(jié)點系統(tǒng)布局,表示節(jié)點交換板1(NSB1)和節(jié)點交換板4(NSB4)之間的鏈路連接;圖4描述圖3的源組A的節(jié)點和目的地組B的節(jié)點之間的16條可能路徑;圖5描述圖2的128節(jié)點系統(tǒng)布局,表示節(jié)點交換板1(NSB1)和節(jié)點交換板5(NSB5)之間的鏈路連接;圖6描述圖5的網(wǎng)絡(luò)的抽象化,表示源組A和目的地組C的節(jié)點之間的64條可能路徑;圖7描述利用常規(guī)的路由算法,例如在上面引入的美國專利中描述的常規(guī)路由算法,在源組A和目的地組C的節(jié)點間選擇的16條不分離的路由的一個例子;圖8描述利用根據(jù)本發(fā)明的一個方面的扇形展開路由生成技術(shù),在源組A和目的地組C的節(jié)點間選擇的16條分離的路由的一個例子;圖9是根據(jù)本發(fā)明的一個方面的扇形展開路由生成技術(shù)的一個流程圖實施例;圖10A和10B是在IBM SP系統(tǒng)內(nèi)實現(xiàn)的根據(jù)本發(fā)明的一個方面的扇形展開路由生成技術(shù)的一個流程圖實施例;圖11是根據(jù)本發(fā)明的一個方面的圖10A和10B的路由生成技術(shù)的步驟4的一個實施例的流程圖;圖12根據(jù)本發(fā)明的一個方面,描述具有八個交換機芯片的交換板的一個實施例,它可用在通信網(wǎng)絡(luò)中,從而利用這里公開的分布式分治路由生成,其中通信網(wǎng)絡(luò)的一種積木塊類型被識別;圖13根據(jù)本發(fā)明的一個方面,描述圖12的交換板,其中通信網(wǎng)絡(luò)的第二種不同大小的積木塊類型被識別;圖14根據(jù)本發(fā)明的一個方面,描述其中識別多個另外的不同大小的積木塊類型,供分布式分治路由生成之用的通信網(wǎng)絡(luò)的一個實施例;圖15是根據(jù)本發(fā)明的一個方面,可在網(wǎng)絡(luò)的多個處理節(jié)點分布式實現(xiàn)的分治路由生成技術(shù)的一個流程圖實施例;圖16是根據(jù)本發(fā)明的一個方面,用于識別通信網(wǎng)絡(luò)布局中不同大小的積木塊類型的一個流程圖實施例;圖17根據(jù)本發(fā)明的一個方面,描述圖14的通信網(wǎng)絡(luò)布局的一部分,表示不同節(jié)點交換板上的源芯片-目的地芯片對之間的積木塊類型內(nèi)的鏈路連接,源芯片A和目的地芯片B間的16條可能路徑示于圖4中;圖18根據(jù)本發(fā)明的一個方面,描述圖14的通信網(wǎng)絡(luò)布局的源交換機芯片C和目的地交換機芯片D之間的不同大小的積木塊類型內(nèi)的鏈路連接的另一例子;圖19根據(jù)本發(fā)明的一個方面,描述圖18的源芯片C和目的地芯片D對之間的32條可用路由。
具體實施例方式
一般來說,這里提供的是用于在具有源和目的地間的多條路徑的網(wǎng)絡(luò)中產(chǎn)生均衡路由的各種路由生成方法。下面描述一種應(yīng)用中,雙向多級分組交換網(wǎng)絡(luò)用扇形展開路由生成技術(shù)。具體地說,這里在大型并行處理系統(tǒng)的上下文,尤其在Armonk,New York的國際商用機器(IBM)制造的Scalable Parallel Processing Systems的IBMRS/6000SPTM和IBM eServer pSeries系列內(nèi)采用的高性能通信網(wǎng)絡(luò)內(nèi)舉例說明本發(fā)明的各個方面。
根據(jù)本發(fā)明的一個方面,這里給出的扇形展開路由生成技術(shù)規(guī)定選擇的路由將從源均勻扇出,并均勻扇入目的地,其中在網(wǎng)絡(luò)的介入鏈路上保持路由加載的全局和局部均衡。不管網(wǎng)絡(luò)中的交叉點是否與源和/或目的地連接,或者源和目的地是否位于復(fù)雜網(wǎng)絡(luò)的外圍,這種一般原理都適用。路由的這種分布有助于避免多數(shù)通信模式的競爭,有助于提供常規(guī)網(wǎng)絡(luò)中系統(tǒng)的統(tǒng)一認(rèn)識。
假定在網(wǎng)絡(luò)中的每個源-目的地對間將產(chǎn)生n條路由,那么這里描述的扇形展開路由生成技術(shù)規(guī)定在從源節(jié)點到網(wǎng)絡(luò)中的下一組交叉點的可用鏈路上將以n種方式發(fā)生扇出。類似地,均勻地從通向目的地節(jié)點的最后一組交叉點發(fā)生到目的地節(jié)點的扇入。該過程持續(xù)到路由在網(wǎng)絡(luò)的中心相遇為止。當(dāng)存在偶數(shù)的中繼段(hop)時,路由將在中間的一組交叉點相遇,或者當(dāng)在源節(jié)點和目的地節(jié)點間存在奇數(shù)中繼段時,直到它們到達可被直接鏈接,從而完成路由的相鄰的多組交叉點為止。該過程適用于每個源-目的地對,導(dǎo)致網(wǎng)絡(luò)中的鏈路被路由均勻使用。選擇中間交叉點的一種考慮是使路由上的中繼段的數(shù)目最小,以及獲得互斥路由的低計數(shù)和訪問交叉點的低均勻概率,同時保持扇形展開條件。
如上簡要所述,下面結(jié)合多級分組交換網(wǎng)絡(luò)舉例說明本發(fā)明的扇形展開路由生成技術(shù),并對照用于相同網(wǎng)絡(luò)的公知的路由生成方法進行比較。所分析的網(wǎng)絡(luò)是在IBM的SPTM系統(tǒng)中采用的交換網(wǎng)絡(luò)。SP系統(tǒng)中的節(jié)點由雙向多級網(wǎng)絡(luò)互連。每個節(jié)點以分組的形式發(fā)送消息和從其它節(jié)點接收消息。源節(jié)點將路由信息包含到分組報頭中,以致交換部件能夠沿著正確的路徑把分組轉(zhuǎn)發(fā)到目的地。路由表生成器(RTG)實現(xiàn)計算所有源-目的地對間的多條路徑(標(biāo)準(zhǔn)為4)的IBMSP2TM方法。按照慣例,RTG以寬度優(yōu)先搜索(breadth first search)算法為基礎(chǔ)。
在進一步說明之前,定義說明中采用的一些術(shù)語SP系統(tǒng)對于本文獻來說,IBM的SPTM系統(tǒng)一般意味著由交換機架構(gòu)互連的一組節(jié)點。
節(jié)點術(shù)語節(jié)點指的是例如通過交換機架構(gòu)在它們間通信的處理器。
N-way系統(tǒng)SP系統(tǒng)被分類為N-way系統(tǒng),其中N是配置可支持的節(jié)點的最大數(shù)目。
交換機架構(gòu)交換機架構(gòu)是通過通信鏈路互連的一組交換部件或交換機芯片。不是交換機架構(gòu)上的所有交換機芯片都與節(jié)點連接。
交換機芯片交換機芯片是具有雙向端口的8端口縱橫(cross-bar)設(shè)備,它能夠把進入8個輸入信道任意之一的分組路由到8個輸出信道任意之一。
交換板物理上,交換板是交換機架構(gòu)的基本單元。在一個例子中,它包含8個交換機芯片。根據(jù)系統(tǒng)的配置,一定數(shù)目的交換板被鏈接在一起,形成交換機架構(gòu)。不是系統(tǒng)中的所有交換板都可與節(jié)點直接鏈接。
鏈路術(shù)語鏈路用于表示相同交換板或者不同交換板上的兩個交換機芯片間的連接。
節(jié)點交換板直接與節(jié)點鏈接的交換板被稱為節(jié)點交換板(NSB)。多達16個節(jié)點可與一個NSB鏈接。
中間交換板鏈接大型SP系統(tǒng)中的NSB的交換板被稱為中間交換板(ISB)。節(jié)點不能直接與ISB鏈接。具有ISB的系統(tǒng)一般包含4、8或16個ISB。通常,一個ISB也可被看作一個中間級。
路由路由是系統(tǒng)中的任意一對節(jié)點之間的路徑,根據(jù)需要,包括交換機芯片和鏈路。
全局均衡如果相同數(shù)目或者基本相同數(shù)目的路由通過位于網(wǎng)絡(luò)的相同層次的鏈路,那么系統(tǒng)是全局均衡的。即,全局均衡的網(wǎng)絡(luò)是其中位于網(wǎng)絡(luò)的相同層次的鏈路傳送相同的靜態(tài)負載的網(wǎng)絡(luò)。
局部均衡這里使用的局部均衡指的是其路由通過網(wǎng)絡(luò)的單個鏈路的源-目的地對的擴展。局部均衡指的是在其路由能夠通過某一鏈路的完整一組源-目的地對中,其路由通過某一鏈路的源-目的地對的基本一致的選擇。
積木塊類型這里使用的積木塊類型是在指定的網(wǎng)絡(luò)拓撲內(nèi)出現(xiàn)的網(wǎng)絡(luò)組件的唯一的基本積木塊。網(wǎng)絡(luò)可具有一個或多個不同大小的積木塊類型,每個積木塊類型可具有一個或多個成員。每個積木塊類型具有網(wǎng)絡(luò)的至少一個節(jié)點和網(wǎng)絡(luò)的至少一個交換點,其中不同大小的積木塊類型具有網(wǎng)絡(luò)的不同數(shù)目的交換點。圖12-14圖解說明了一種網(wǎng)絡(luò)布局的四種不同大小的積木塊類型。
圖1中描述了交換板100的一個實施例。該交換板包含8個交換機芯片0-7。作為一個例子,芯片4-7被假定為與節(jié)點鏈接,同時標(biāo)記了四個節(jié)點(即N1-N4)。由于交換板100被假定與節(jié)點連接,因此交換板構(gòu)成節(jié)點交換板或NSB。
圖2描述了128節(jié)點系統(tǒng)200中的交換反的邏輯布局的一個實施例。在系統(tǒng)200內(nèi),與節(jié)點連接的交換板是節(jié)點交換板(標(biāo)記為NSB1-NSB8),而鏈接NSB的交換板是中間交換板(標(biāo)記為ISB1-ISB4)。NSB1-NSB8的每個輸出端實際上能夠與四個節(jié)點連接。
圖3描述圖2的128節(jié)點系統(tǒng),表示了NSB1和NSB4之間的鏈路連接。圖4是圖3中源組A上的節(jié)點和目的地組B上的節(jié)點之間的16條路徑的推斷。這些路徑被標(biāo)記為1-16,每個圓代表交換網(wǎng)絡(luò)內(nèi)的一個交換機芯片或交換點。如圖所示,這16條路徑在中心分離。從而,出自A上的每個源節(jié)點的路由將從出自A的一條不同鏈路開始,并在一條完全分離的路徑上到達B上的目的地節(jié)點。當(dāng)在組A上的任意源節(jié)點和組B上的任意目的地節(jié)點間產(chǎn)生多條路由時,產(chǎn)生多達四條分離的路由。源組A和目的地組B間的所有路由均勻分布在這16條路徑上。
圖5描述圖2的128節(jié)點布局,表示NSB1和NSB5之間的鏈路連接。圖6表示圖5的抽象化,表示源組A上的一個節(jié)點和目的地組C上的一個節(jié)點之間的64條可能路徑。由于交換板,即中間交換板上的各組四個交換機芯片之間的交叉連接,事實上圖6的第三列中的16個交換機芯片均具有到達下一列的四條途徑,因此得到數(shù)目64。注意圖6中有圓圈的交換點均代表交換網(wǎng)絡(luò)中的一個交換機芯片。源-目的地對A-C不同于源-目的地對A-B,因為在網(wǎng)絡(luò)的中央存在交叉連接。
由于局部均衡不是IBM的SP2TM路由方案的標(biāo)準(zhǔn),因此SP2方案選擇圖7中所示的16條路徑把消息從源A上的節(jié)點路由到目的地C上的節(jié)點。如圖所示,在源組A上的節(jié)點和目的地組C上的節(jié)點之間存在利用常規(guī)的SP2風(fēng)格路由算法選擇的16條不分離的路徑。這些不分離的路徑被發(fā)現(xiàn)在到組C的倒數(shù)第二級造成競爭。在本例中,從A到C的所有路徑通過一條鏈路到達C。
本質(zhì)上,圖7圖解說明的是如果作為選擇路由的一個條件,均勻的擴展或局部均衡未被解決,那么可能得出和由目前的SP2TM方案產(chǎn)生的圖7的選擇類似的選擇。從而,在一個方面,本發(fā)明具有要求在具有相同起始鏈路和終止鏈路的各組源節(jié)點和目的地節(jié)點間經(jīng)過的路由從源節(jié)點均勻扇出,并均勻扇入目的地節(jié)點。這樣,實現(xiàn)局部均衡。
圖8描述了采用本發(fā)明的扇形展開路由生成技術(shù),所得到的路由的分布的一個實施例。如圖8中所示,該技術(shù)在網(wǎng)絡(luò)中央的分離路徑上展開路由,并使用到達C的所有四條路徑。
總結(jié)起來,IBM的SP2TM路由生成方案確保位于網(wǎng)絡(luò)的相同層次的鏈路上,路由的全局均衡。例如,NSB上的單板(onboard)鏈路在網(wǎng)絡(luò)的一個層次上,而NSB-ISB鏈路在網(wǎng)絡(luò)的一個不同層次上。通過確保相同總數(shù)的路由通過位于相同層次的鏈路,實現(xiàn)全局均衡。目前的SP方案并不關(guān)心這些集合路由的源-目的地擴展。從而,這種實現(xiàn)方法產(chǎn)生在一些節(jié)點組之間重疊并且導(dǎo)致如圖7中所示的網(wǎng)絡(luò)中的競爭的路由。
根據(jù)本發(fā)明的一個方面,通過要求不同交換機芯片上的節(jié)點之間的路由盡可能地分離,確保通過鏈路的路由的均勻展開或者扇形展開,或者說局部均衡。這意味著路由從源芯片扇出一直到網(wǎng)絡(luò)的中央,隨后扇入目的地芯片。如圖8中所示,這樣的散布確保工作期間的最小競爭。
IBM的SP2TM系統(tǒng)的路由表生成器進行寬度優(yōu)先搜索,以分配均衡鏈路上的全局權(quán)重的路由。SP方案建立在每個源節(jié)點路由的生成樹(spanning tree),隨后使用該生成樹來定義源節(jié)點和每個其它目的地節(jié)點間最短路徑的所需數(shù)目(標(biāo)準(zhǔn)為4)。為了均衡鏈路上的負載,根據(jù)其出站鏈路的權(quán)重,交換機芯片上的可用交換端口被區(qū)分優(yōu)先次序,為權(quán)重較小的鏈路分配較高的優(yōu)先級。當(dāng)兩個或更多的出站鏈路具有相同的權(quán)重時,端口號最小的端口接受優(yōu)于其它鏈路的優(yōu)先級。
相反,本發(fā)明的扇形展開路由生成技術(shù)可按照許多方式來實現(xiàn)。一種方法涉及創(chuàng)建從每個源交換機芯片和每個目的地交換機芯片扇出的路由,隨后通過介入交換機芯片結(jié)合所述路由,同時保持鏈路權(quán)重的全局均衡。一旦在源芯片和目的地芯片扇形展開路由,那么系統(tǒng)的連通性將確保連接路由的兩端的最短路徑將是分離的,從而實現(xiàn)局部均衡。
本發(fā)明的另一種實現(xiàn)是修改目前的IBM SP2TM路由生成方案,以便對中間交換機芯片施加選擇出站鏈路的恰當(dāng)?shù)膬?yōu)先化規(guī)則,以致滿足扇形展開條件。這種方案中只需要處理中間交換機芯片的原因是因為在起始交換機芯片,扇形展開條件由目前的SP2方案滿足。SP2方案隨后選擇四個ISB之一來選擇在網(wǎng)絡(luò)的不同側(cè)的一對芯片,例如A和C之間的路由。在ISB內(nèi)的16條路徑中,SP2方案選擇退出該ISB上的相同交換機芯片的四條路徑。存在圖7的路徑1-4或5-8或9-12或13-16。
通過對ISB上的第一級芯片的路由選擇應(yīng)用優(yōu)先化條件,本發(fā)明的扇形展開生成技術(shù)選擇經(jīng)過四個不同的ISB芯片進入目的地NSB的四條路徑,如圖8中所示。更具體地說,根據(jù)本發(fā)明的一個方面,對于芯片對A和C之間的路由,仍然選擇四個ISB之一。不同在于在ISB內(nèi)選擇一組四條路徑,以致它們是分離的。為相同的源交換板上的不同源芯片A選擇不同的ISB。注意假定構(gòu)成源列表,以致按照順序選擇節(jié)點,例如第一個交換機芯片上的所有四個節(jié)點,隨后下一交換機芯片上的所有四個節(jié)點,依次類推。源交換板也被順序處理。本發(fā)明的扇形展開路由生成技術(shù)確保相同交換機芯片上的目的地被順序推送,以致它們被順序處理。另外,不同的目的地交換機芯片被順序處理。本質(zhì)上,共享相同源鏈路的一組四個節(jié)點被相繼處理。在源節(jié)點的處理期間,共享相同目的地鏈路的一組四個目的地節(jié)點被相繼處理。參考圖9-11的處理將更好地理解這一點。同樣,雖然128節(jié)點SP網(wǎng)絡(luò)被用于舉例說明,不過這里公開的原理更普遍,適用于各種網(wǎng)絡(luò)。
圖9描述根據(jù)本發(fā)明的一個方面的扇形展開路由生成技術(shù)900的概述。當(dāng)開始處理910時,通過讀入布局信息,包括任何路由規(guī)范920,獲得網(wǎng)絡(luò)連接信息。該信息可在文件中提供或者通過數(shù)據(jù)結(jié)構(gòu)傳遞。選擇930具有鏈路的共同起點和終點組的源-目的地(S-D)組,隨后在該組內(nèi)的每個S-D對間選擇最短的路由,以致路由從交換機芯片上的源均勻地扇出到網(wǎng)絡(luò)的中央,隨后集中到目的地交換機芯片,同時保持通過位于網(wǎng)絡(luò)的相同層次的鏈路的路由的全局均衡940。選擇的路由被保存,全局鏈路利用數(shù)據(jù)被更新950。處理隨后確定所有S-D組是否已被處理960,并繼續(xù)循環(huán)以選擇下一S-D組,直到所有S-D組已被處理為止,之后處理退出該例程970。
根據(jù)本發(fā)明的一個方面,在圖10A和10B中給出了扇形展開路由生成技術(shù)對SP網(wǎng)絡(luò)的一種應(yīng)用。通過讀入布局信息,包括任何路由限制,開始1010該處理1000。SP網(wǎng)絡(luò)具有關(guān)于某些配置的一些路由限制。隨后形成源節(jié)點的列表1020(步驟1)。之后,通過向網(wǎng)絡(luò)中的所有鏈路分配為0的權(quán)重值,初始化全局均衡數(shù)據(jù)1030(步驟2)。從源列表中選擇源節(jié)點,并形成該源節(jié)點的目的地列表1040(步驟3)。
隨后探索該網(wǎng)絡(luò),直到到達一個目的地節(jié)點為止。所述探索包括根據(jù)所有NSB芯片的鏈路的最小全局權(quán)重,區(qū)分每一級的輸出端口的優(yōu)先次序,和在根據(jù)ISB芯片的鏈路的全局權(quán)重區(qū)分優(yōu)先次序之前,依據(jù)等級,根據(jù)下一級的利用率對輸出端口排序1050(步驟4)。下面參考圖11進一步說明步驟4的詳細過程實現(xiàn)。
繼續(xù)參見圖10B,處理沿著探索的路徑建立從源到目的地的路由,并從目的地列表中除去該目的地1060(步驟5)。在處理了當(dāng)前目的地之后,處理從目的地列表中選擇下一目的地1070,并返回以便為新的S-D對探索網(wǎng)絡(luò)。一旦對于選擇的源節(jié)點來說,目的地列表為空,那么從源列表中除去該源節(jié)點1080(步驟6),處理確定源列表是否為空。如果否,那么在步驟3選擇新的源節(jié)點。否則,處理結(jié)束,退出該例程1095。
圖11提供圖10A和10B的扇形展開路由生成技術(shù)的步驟4的其它實現(xiàn)細節(jié)。利用通過保持在探索網(wǎng)絡(luò)時遇到的交換機芯片和節(jié)點的先進先出(FIFO)列表而實現(xiàn)的寬度優(yōu)先搜索,可實現(xiàn)所述探索。首先,源節(jié)點被推送到FIFO中1110。該第一項也將是從FIFO除去的第一項。隨后詢問該列表是節(jié)點,NSB芯片還是ISB芯片1130。如果是節(jié)點或NSB芯片,那么處理根據(jù)與本級的鄰居(即輸出端口)連接的鏈路的最小全局權(quán)重,區(qū)分這些端口的優(yōu)先次序。由于來自FIFO的列表包含節(jié)點,那么判定1130指示該節(jié)點只有一個鄰居,所述鄰居是與之連接的交換機芯片。該交換機芯片被推入FIFO中,因為它還未被處理1170。源也是它本身的目的地;從而產(chǎn)生它本身的路由。目的地列表還不為空1180,從而處理返回。與該源節(jié)點連接的交換機芯片從FIFO中被除去。還未向出自該交換機芯片的鏈路分配任何權(quán)重,從而從端口0上的鏈路開始到端口7上的鏈路區(qū)分它們的優(yōu)先次序。除源節(jié)點外的全部將都被推入FIFO中。源節(jié)點不被推入FIFO中,因為它已被處理。該項目,即交換機芯片不是目的地。從而算法返回,從FIFO中移除下一項目。每當(dāng)從FIFO彈出一個節(jié)點時,其鄰居理應(yīng)已被處理。探索信息被用于形成源節(jié)點和目的地節(jié)點間的路由。
如果除去的項目是ISB芯片,那么采用鄰居的等級排序,其中較少被訪問的端口具有較高的等級1150。如果一個以上的鄰居具有相同的等級,那么對等級重新排序,其鏈路的全局權(quán)重最低的端口獲得最高的優(yōu)先級1160。從具有最高優(yōu)先級的那個鄰居開始,把未在FIFO中的所有鄰居加入到FIFO中。
在訪問在另一源節(jié)點的處理期間已被訪問的NSB芯片的時候,某些輸出鏈路可能具有關(guān)于它們的權(quán)重。如果這樣,那么按照對下一選擇來說,具有最小權(quán)重的輸出鏈路將具有較高優(yōu)先級的方式對輸出鏈路排序。如果兩個鏈路具有相同的權(quán)重,那么具有較小端口標(biāo)識符的一個鏈路將獲得較高的優(yōu)先級。易于看出在實現(xiàn)本發(fā)明的技術(shù)的時候,將按順序循環(huán)使用交換機上出自源交換機芯片的輸出鏈路,由此滿足扇形展開條件。NSB上的第二級交換機芯片的情況也是一樣的。在處理目的地一側(cè)的NSB芯片時,除了按照某一順序到達目的地之外,區(qū)分優(yōu)先次序不具有任何影響。這是因為從網(wǎng)絡(luò)的中央到特定目的地的路由沒有任何路徑選擇。
如果對ISB芯片使用相同的優(yōu)先化方法,那么存在路由集中在相同鏈路上的可能。圖7表示在芯片A上的源和芯片C上的目的地之間,將由IBM的目前的SP2TM算法選擇的16條路徑。如果源芯片標(biāo)識符為4,那么它將選擇路徑1、2、3和4來到達任意目的地芯片4-7上的目的地。同樣地,源芯片5會選擇路徑5-8,源芯片6會選擇路徑9-12,源芯片7會選擇路徑13-16。如果需要多個路由,那么對于每條所需的路徑,這些會被改變次序。當(dāng)為系統(tǒng)生成所有路由時,將存在鏈路的權(quán)重的全局均衡。
圖8描述利用根據(jù)本發(fā)明的一個方面的扇形展開路由生成技術(shù)選擇的16條路徑。在處理不同NSB上的源芯片時,圖9-11的扇形展開方法的等級排序和優(yōu)先化條件將選擇ISB上的兩級ISB芯片之間不同的一組分離鏈路,并確保ISB上的所有16個鏈路被用于提供該層次的鏈路的全局均衡。由于避免了在輸出ISB芯片上的集中,因此扇形展開條件被滿足。
上面描述的集中式扇形展開路由生成方法整體致力于通信網(wǎng)絡(luò),同時仍然包括路由的全局和局部均衡的標(biāo)準(zhǔn)。從而,對于在網(wǎng)絡(luò)的處理節(jié)點(主處理器)的分布式路由生成來說,該方法不易于實現(xiàn)。例如,如果上述集中式路由生成方法將在網(wǎng)絡(luò)內(nèi)的多個處理節(jié)點上實現(xiàn),那么處理節(jié)點需要按照一定的方式排序。在任何特定節(jié)點上,需要從列表中的第一處理節(jié)點開始生成路由,直到當(dāng)前處理節(jié)點被處理為止。這會需要必需的計算的額外時間以及空間。從而,下面參考圖12-19公開的是本發(fā)明的另一方面,其中采用分布式分治法來增強路由生成過程,并擴展上面描述的扇形展開路由生成技術(shù)。
一般來說,下面公開的分布式分治法利用了指定網(wǎng)絡(luò)布局的規(guī)則性,所述規(guī)則性使網(wǎng)絡(luò)可被分解成一組分級按大小排列的積木塊類型。在指定的積木塊類型中,僅僅計算一次每個積木塊類型內(nèi)的交換機芯片間的可用路由(即路徑)就足夠了。積木塊類型內(nèi)的交換機芯片間的路徑隨后可被用于選擇類似積木塊元件上的對應(yīng)交換點間的一個或多個路由。這里公開的分布式分治路由生成方法允許處理節(jié)點(即網(wǎng)絡(luò)的主處理器)通過建立到處理節(jié)點所屬的相應(yīng)積木塊類型中的其它目的地節(jié)點的可用路徑,產(chǎn)生路由,隨后選擇積木塊類型內(nèi)的路由,以致上面描述的扇形展開技術(shù)的全局和局部均衡條件被滿足。提出的分治法特別適合于分布式路由生成。
同樣,這里給出的說明假定作為網(wǎng)絡(luò)的基本網(wǎng)絡(luò)積木塊,在IBMeServer pSeries群集中存在IBM高性能交換機(HPS),以解釋分治路由生成方法及其實現(xiàn)。
通信網(wǎng)絡(luò)的拓撲使網(wǎng)絡(luò)可被邏輯分割成為4的乘方,即4、16、4、256等的組件的同樣積木塊類型或組。這是可能的,因為為系統(tǒng)的物理積木塊的交換板按照規(guī)則的模式被連接,以形成較大的交換機架構(gòu)。如圖12中所示的交換板100包括兩組四個8端口雙向交換機芯片,它們之間存在完美的混洗互連。交換板100具有32個端口,它們可利用網(wǎng)絡(luò)與源節(jié)點或目的地節(jié)點連接,或者與較大網(wǎng)絡(luò)的其它交換板連接。從而,交換機芯片1200是網(wǎng)絡(luò)的最小積木塊類型,較大的積木塊類型,例如交換板1300(圖13),或者多組交換板1400和1500(圖14)可被識別。如圖13和14中所示,積木塊類型1300是一組16個處理節(jié)點,而積木塊1400是一組64個處理節(jié)點,積木塊類型1450是一組256個處理節(jié)點。本質(zhì)上,圖14的網(wǎng)絡(luò)可被看作互連數(shù)目以4的乘方增長的許多節(jié)點的不同大小的積木塊類型的分級形成。
對于理想的(完美的)布局,任意積木塊元件內(nèi)的路由將與相同類型的另一積木塊元件內(nèi)的路由相同。雖然在相同交換機芯片上的節(jié)點間只存在一條唯一的路由,但是在16個處理節(jié)點的積木塊內(nèi)的節(jié)點間存在4條可能的路由,在64個處理節(jié)點的積木塊內(nèi)的節(jié)點間存在16條可能的路由,依次類推。盡管源節(jié)點-目的地節(jié)點對間的可能路由的數(shù)目隨著該節(jié)點對所屬的積木塊類型的大小而增大,不過只選擇n條截然不同的路由(通常n=4)(如果可用的話)。當(dāng)n條以上的路由可用時,選擇n條路由以便提供積木塊類型內(nèi)的所有鏈路上路由的靜態(tài)均衡。從而,能夠產(chǎn)生指定大小的一個積木塊元件內(nèi)的路由,隨后把這些路由用于該類型的其它積木塊元件。
在處理節(jié)點的數(shù)目不是16的乘方的網(wǎng)絡(luò)中,可在網(wǎng)絡(luò)的不同的最大尺寸的積木塊中的節(jié)點間產(chǎn)生路由。通過每次考慮一對積木塊類型,并為積木塊類型間的每個源節(jié)點-目的地節(jié)點對選擇n條路徑,可選擇這些路由,同時保持鏈路上的負載均衡。除了全局均衡之外,該方法將提供鏈路上的負載的更一致的局部均衡。
重新說明,這里提出的分布式分治法把網(wǎng)絡(luò)邏輯分割成不同大小的積木塊類型。每個積木塊類型包括網(wǎng)絡(luò)的至少一個節(jié)點和該節(jié)點所連接的至少一個交換機芯片。網(wǎng)絡(luò)內(nèi)的一個節(jié)點(例如源節(jié)點)被選擇,該源節(jié)點所屬的每個積木塊類型被識別。創(chuàng)建該節(jié)點所屬的每個積木塊類型的網(wǎng)絡(luò)子圖。對于該節(jié)點所屬的每個積木塊類型,選擇該積木塊類型內(nèi)的目的地芯片,以致該芯片不是源節(jié)點的任意較小的積木塊類型的一部分,并識別該節(jié)點和目的地芯片的所有目的地節(jié)點之間的路由。隨后從可用路由中選擇一條或多條路由,而不需要了解經(jīng)過所選路由的路徑中的鏈路的任何其它路由。選擇路由以確保該路由把鏈路加入其路徑中,以致對于選擇的積木塊內(nèi)的所有源-目的地對,它保持每個鏈路(在選擇的路由的路徑中)上的負載的均衡。
有利的是,這里提出的原理可在網(wǎng)絡(luò)的多個處理節(jié)點實現(xiàn),每個處理節(jié)點不需要有關(guān)網(wǎng)絡(luò)的其它節(jié)點的路由的知識。當(dāng)需要所述知識時,和集中式方法中一樣,算法的量級變成O(N2),而這里描述的分布式路由生成技術(shù)把算法的量級降低到O(N),即(量級N)。
圖15是根據(jù)本發(fā)明的一個方面,分布式路由生成技術(shù)的計算機實現(xiàn)邏輯的一個流程圖實施例。處理1500從識別源節(jié)點的積木塊類型(即處理節(jié)點進行路由生成算法)1510開始。選擇積木塊類型1520,創(chuàng)建該積木塊類型的網(wǎng)絡(luò)子圖1530。所述邏輯隨后選擇該積木塊類型內(nèi)的不屬于該積木塊類型內(nèi)的較小積木塊類型的目的地芯片1540,并根據(jù)扇形展開條件,選擇到目的地芯片上的所有目的地節(jié)點的所需數(shù)目的路由。所述邏輯確定該積木塊內(nèi)的所有目的地芯片是否已被處理1560,如果否,那么對每個未處理的目的地芯片重復(fù)步驟1540和1550。一旦選擇的積木塊類型已被處理,那么所述邏輯確定該處理節(jié)點的所有積木塊類型是否已被處理1570,如果否,那么對每個未處理的積木塊類型重復(fù)步驟1520-156。一旦所有的積木塊已被處理,那么完成該處理節(jié)點的路由生成1580。
圖16描述識別當(dāng)前網(wǎng)絡(luò)布局內(nèi)的積木塊類型的一個流程圖實施例。該處理1600從讀入為網(wǎng)絡(luò)布局提供的連通信息開始1610。識別網(wǎng)絡(luò)的最小的積木塊類型1620,邏輯確定該積木塊類型是否包含在較大的積木塊類型內(nèi)1630。如果否,那么當(dāng)前網(wǎng)絡(luò)布局的所有積木塊類型已被識別,處理結(jié)束1650。假定該積木塊類型包含在較大的積木塊類型中,那么處理識別網(wǎng)絡(luò)的下一較大的積木塊類型,再次詢問該積木塊類型是否包含在一個更大的積木塊類型中1630。處理繼續(xù)該循環(huán),直到網(wǎng)絡(luò)布局內(nèi)的所有積木塊類型已被識別為止。
圖17描述包含64個節(jié)點的積木塊類型,即圖14的積木塊類型1400的網(wǎng)絡(luò)子圖的例子。在本例中,表示了網(wǎng)絡(luò)子圖和圖14中描述的各個交換板上的交換機芯片A和交換機芯片B之間的可用路由。圖16的網(wǎng)絡(luò)子圖的交換機芯片A和B之間的16條可用路由或路徑等同于圖4中描述的16條可能路徑。
圖18描述圖14中描述的最大組,即256個節(jié)點的一組的積木塊元件的網(wǎng)絡(luò)子圖的另一例子,其中圖14的交換機芯片C和交換機芯片D之間的可用路由被識別。在圖19中,表示了圖18的網(wǎng)絡(luò)子圖中,所選交換機芯片C和D之間的32條可用路由。
雖然存在可選擇路由的許多方法,不過當(dāng)和IBM的eServerpSeries群集系統(tǒng)一起使用時,上面描述的圖1-11的路由生成技術(shù)被認(rèn)為特別有益。上述技術(shù)的利用確保路由在網(wǎng)絡(luò)中的鏈路上的良好的局部和全局均衡。該組條件的使用使分治法適合于分布式實現(xiàn),該方法在所有節(jié)點上運行,每個節(jié)點計算它自己的路由。當(dāng)這樣使用時,扇形展開條件確保每個節(jié)點不需要為其它節(jié)點產(chǎn)生的路由的網(wǎng)絡(luò)使用信息。
下面陳述滿足上述扇形展開條件的路由選擇的一個例證。提供該例證只是作為一個例子。對該例證,定義下述變量route_index=計算的路由索引;src_index=src_id模smallest_block;dest_index=dest_id模smallest_block;scr_skew=fan_factor/smallest_block;dest_skew=1+fan_factor/smallest_block;multiplicity=avail_paths/fan_factor;offset=floor((dest_id模next_block)/avail_paths)·fan_factorfan_factor=與源節(jié)點相關(guān)的最小塊和至少一個目的地節(jié)點之間的source_destination對的總數(shù);src_id=源標(biāo)識符;dest_id=目的地標(biāo)識符;smallest_block=最小塊的大?。?
next_block=當(dāng)前塊內(nèi)的最大塊的大?。缓蚢vail_paths=可用路徑的數(shù)目。
通過向可用路徑分配唯一的索引,并根據(jù)上面陳述的變量計算所需的索引,可從可用路徑中選擇從源節(jié)點到目的地節(jié)點的路由。節(jié)點可被賦予從0~N-1的標(biāo)識符,其中N是網(wǎng)絡(luò)的大小。“fan factor”被選為源芯片上的節(jié)點的數(shù)目與目的地芯片上的節(jié)點的數(shù)目的乘積,以致在芯片對的每個源-目的地對之間可分配一條唯一的路由(如果可用的話)。網(wǎng)絡(luò)的規(guī)則性確??捎寐窂降臄?shù)目為fan factor的倍數(shù)或約數(shù)。當(dāng)可用路徑是fan factor的約數(shù)時,每個路徑被分配給多條路由。當(dāng)可用路徑是fan factor的倍數(shù)時,通過把恰當(dāng)?shù)钠屏吭O(shè)為計算的路由索引,在目的地中均勻分配路徑??衫糜嬎愕仁接嬎懵酚伤饕齣f multiplieity≤1 then route_index被計算為route_index=(src_index·src_skew+dest_index·dest_skew)%fan_factor+1else該值為偏移量,以得到route_index=offset+(src_index·src_skew+dest_index·dest_skew_%fan_factor+1對于圖14的例證網(wǎng)絡(luò),就圖12-14中所示的積木塊來說,smallest_block=4。scr_index和dest_index從0到3。對于該網(wǎng)絡(luò),fan_factor為16,src_skew為4,dest_skew為5。對于4個節(jié)點的積木塊來說,multiplicity的值為1/16,對于16個節(jié)點的積木塊來說,multiplicity的值為1/4,對于64個節(jié)點的積木塊來說,multiplicity的值為1,對于256個節(jié)點的最大積木塊來說,multiplicity的值為2。
下面表示了當(dāng)multiplicity為1時(如圖4中一樣)時,選擇的路由的例子(route_index)
當(dāng)應(yīng)用于圖19的例子時,該例子具有為2的multiplicity,選擇的路由索引將按照上述表格或者下述表格之一,取決于目的地標(biāo)識符。
如果需要選擇一個以上的路由,那么通過把dest_index遞增每個額外路由的路由數(shù),可選擇額外的路由。例如,如果要選擇四個路由,那么src_index 0將選擇所有四個1、6、11和16,以便去往具有索引0-3的四個目的地。
本發(fā)明的一個或多個方面的能力可用軟件、固件、硬件或者它們的某一組合來實現(xiàn)。
本發(fā)明的一個或多個方面可被包括在制造產(chǎn)品(例如一個或多個計算機程序產(chǎn)品中),所述制造產(chǎn)品具有計算機可用介質(zhì)。所述介質(zhì)中具有例如計算機可讀程序代碼裝置或者邏輯(例如指令,代碼,命令等),以便提供和簡化本發(fā)明的能力。所述制造產(chǎn)品可被包括為計算機系統(tǒng)的一部分或者單獨銷售。
另外,可以提供機器可讀的至少一種程序存儲裝置,所述程序存儲裝置包含可由機器執(zhí)行,以便實現(xiàn)本發(fā)明的能力的指令的至少一個程序。
這里描述的流程圖只是例子。在不脫離本發(fā)明的精神的情況下,可對這里描述的這些圖或步驟(或操作)做出許多變化。例如,可按照不同的步驟進行所述步驟,或者可以增加、刪除或修改步驟。所有這些變化被視為要求保護的發(fā)明的一部分。
雖然這里說明了優(yōu)選實施例,不過對本領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明的精神的情況下,顯然可做出各種修改,增加,替換等,于是,這些修改,增加,替換等被認(rèn)為在由下述權(quán)利要求限定的本發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種生成路由以便于互連節(jié)點的網(wǎng)絡(luò)中數(shù)據(jù)分組的路由的分布式方法,所述節(jié)點由鏈路和交換機芯片互連,所述網(wǎng)絡(luò)包括不同大小的積木塊類型,每個積木塊類型包括網(wǎng)絡(luò)的至少一個節(jié)點和網(wǎng)絡(luò)的至少一個交換機芯片,其中不同大小的積木塊類型包括網(wǎng)絡(luò)的不同數(shù)目的交換機芯片,所述方法包括識別網(wǎng)絡(luò)的節(jié)點所屬的積木塊類型,并且對于每個積木塊類型(i)選擇該積木塊類型內(nèi)不屬于較小的積木塊類型的目的地芯片;(ii)根據(jù)扇形展開條件,選擇到目的地芯片的至少一個目的地節(jié)點的至少一個路由;和(iii)對積木塊類型內(nèi)的每個目的地芯片重復(fù)選擇(i)和選擇(ii)。
2.按照權(quán)利要求1所述的方法,其中選擇(ii)包括根據(jù)扇形展開條件,選擇到目的地芯片上的所有目的地節(jié)點的所需數(shù)目的路由。
3.按照權(quán)利要求1所述的方法,還包括在網(wǎng)絡(luò)的多個源節(jié)點中的每個源節(jié)點實現(xiàn)該分布式方法。
4.按照權(quán)利要求1所述的方法,其中對于每個積木塊類型,所述方法還包括創(chuàng)建積木塊類型的網(wǎng)絡(luò)子圖,并且其中選擇(ii)包括從根據(jù)網(wǎng)絡(luò)子圖識別的積木塊類型內(nèi)的各對交換機芯片間的可用路由中,選擇到至少一個目的地節(jié)點的至少一個路由。
5.按照權(quán)利要求1所述的方法,其中選擇(ii)包括根據(jù)扇形展開條件,選擇源節(jié)點和目的地芯片的至少一個目的地節(jié)點之間的至少一個最短路由。
6.按照權(quán)利要求5所述的方法,其中選擇至少一個路由還包括選擇至少一個最短的路由,以便于跨越所有源節(jié)點-目的地節(jié)點對滿足扇形展開條件,所述扇形展開條件包括(a)選擇的路由從源節(jié)點基本均勻地扇出到網(wǎng)絡(luò)的中央,并從網(wǎng)絡(luò)的中央扇入到目的地節(jié)點;和(b)實現(xiàn)經(jīng)過位于網(wǎng)絡(luò)的相同層次的鏈路的路由的全局均衡。
7.按照權(quán)利要求5所述的方法,其中選擇至少一個路由還包括通過對應(yīng)的路由索引選擇所述至少一個路由,所述路由索引如下計算if multiplicity≤1 then route_index被計算為route_index=(src_index·src_skew+dest_index·dest_skew)%fan_factor+1else該值為偏移量,以提供route_index=offset+(src_index·src_skew+dest_index·dest_skew_%fan_factor+1其中route_index=計算的路由索引;src_index=src_id模smallest_block;dest_index=dest_id模smallest_block;scr_skew=fan_factor/smallest_block;dest_skew=1+fan_factor/smallest_block;multiplicity=avail_paths/fan_factor;offset=floor((dest_id模next_block)/avail_paths)·fan_factorfan_factor=與源節(jié)點相關(guān)聯(lián)的最小塊和至少一個目的地節(jié)點之間的source_destination對的總數(shù);src_id=源標(biāo)識符;dest_id=目的地標(biāo)識符;smallest_block=最小塊的大小;next_block=當(dāng)前塊內(nèi)的最大塊的大??;和avail_paths=可用路徑的數(shù)目。
8.一種生成路由以便于互連節(jié)點的網(wǎng)絡(luò)中數(shù)據(jù)分組的路由的分布式系統(tǒng),所述節(jié)點由鏈路和交換機芯片互連,所述網(wǎng)絡(luò)包括不同大小的積木塊類型,每個積木塊類型包括網(wǎng)絡(luò)的至少一個節(jié)點和網(wǎng)絡(luò)的至少一個交換機芯片,其中不同大小的積木塊類型包括網(wǎng)絡(luò)的不同數(shù)目的交換機芯片,所述系統(tǒng)包括識別網(wǎng)絡(luò)的源節(jié)點所屬的積木塊類型的裝置,并且對于每個積木塊類型,所述裝置(i)選擇該積木塊類型內(nèi)不屬于較小的積木塊類型的目的地芯片;(ii)根據(jù)扇形展開條件,選擇到目的地芯片的至少一個目的地節(jié)點的至少一個路由;和(iii)對積木塊類型內(nèi)的每個目的地芯片重復(fù)選擇(i)和選擇(ii)。
9.按照權(quán)利要求8所述的系統(tǒng),其中選擇(ii)的裝置包括根據(jù)扇形展開條件選擇到目的地芯片上的所有目的地節(jié)點的所需數(shù)目的路由的裝置。
10.按照權(quán)利要求8所述的系統(tǒng),還包括在網(wǎng)絡(luò)的多個源節(jié)點中的每個源節(jié)點實現(xiàn)分布式方法的裝置。
11.按照權(quán)利要求8所述的系統(tǒng),其中對于每個積木塊類型,所述系統(tǒng)還包括創(chuàng)建積木塊類型的網(wǎng)絡(luò)子圖的裝置,并且其中選擇(ii)的裝置包括從根據(jù)網(wǎng)絡(luò)子圖識別的積木塊類型內(nèi)的各對交換機芯片間的可用路由中,選擇到至少一個目的地節(jié)點的至少一個路由的裝置。
12.按照權(quán)利要求8所述的系統(tǒng),其中選擇(ii)的裝置包括根據(jù)扇形展開條件,選擇源節(jié)點和目的地芯片的至少一個目的地節(jié)點之間的至少一個最短路由的裝置。
13.按照權(quán)利要求12所述的系統(tǒng),其中選擇至少一個路由的裝置還包括選擇至少一個最短的路由,以便于跨越所有源節(jié)點-目的地節(jié)點對滿足扇形展開條件的裝置,所述扇形展開條件包括(a)選擇的路由從源節(jié)點基本均勻地扇出到網(wǎng)絡(luò)的中央,并從網(wǎng)絡(luò)的中央扇入到目的地節(jié)點;和(b)實現(xiàn)經(jīng)過位于網(wǎng)絡(luò)的相同層次的鏈路的路由的全局均衡。
14.按照權(quán)利要求12所述的系統(tǒng),其中選擇至少一個路由的裝置還包括通過對應(yīng)的路由索引選擇所述至少一個路由的裝置,所述路由索引如下計算if multiplicity≤1 then route_index被計算為route_index=(src_index·src_skew+dest_index·dest_skew)%fan_factor+1else該值為偏移量,以提供route_index=offset+(src_index·src_skew+dest_index·dest_skew_%fan_factor+1其中route_index=計算的路由索引;src_index=src_id模smallest_block;dest_index=dest_id模smallest_block;scr_skew=fan_factor/smallest_block;dest_skew=1+fan_factor/smallest_block;multiplicity=avail_paths/fan_factor;offset=floor((dest_id模next_block)/avail_paths)·fan_factorfan_factor=與源節(jié)點相關(guān)聯(lián)的最小塊和至少一個目的地節(jié)點之間的source_destination對的總數(shù);src_id=源標(biāo)識符;dest_id=目的地標(biāo)識符;smallest_block=最小塊的大小;next_block=當(dāng)前塊內(nèi)的最大塊的大??;和avail_paths=可用路徑的數(shù)目。
15.可由處理節(jié)點讀取的至少一個程序存儲裝置,所述至少一個程序存儲裝置確實包含可由處理節(jié)點執(zhí)行,以實現(xiàn)按照權(quán)利要求1-7任意之一所述的方法的指令的至少一個程序。
全文摘要
提供一種簡化互連節(jié)點的網(wǎng)絡(luò)中數(shù)據(jù)分組的路由的分布式分治路由生成技術(shù)。所述網(wǎng)絡(luò)包括不同大小的積木塊類型,每個積木塊類型包括網(wǎng)絡(luò)的至少一個節(jié)點和網(wǎng)絡(luò)的至少一個交換機芯片,其中不同大小的積木塊類型包括網(wǎng)絡(luò)的不同數(shù)目的交換機芯片。該技術(shù)包括識別網(wǎng)絡(luò)的源節(jié)點所屬的積木塊類型,對于每個積木塊類型選擇該積木塊類型內(nèi)不屬于較小的積木塊類型的目的地芯片;根據(jù)扇形展開條件,選擇到目的地芯片的至少一個目的地節(jié)點的至少一個路由;和對積木塊類型內(nèi)的每個目的地芯片重復(fù)這兩個選擇步驟。
文檔編號H04L12/56GK1874316SQ20061008774
公開日2006年12月6日 申請日期2006年5月30日 優(yōu)先權(quán)日2005年5月31日
發(fā)明者阿魯納·拉馬寧 申請人:國際商業(yè)機器公司