張眾欽
(漳州職業(yè)技術(shù)學(xué)院 福建 漳州 363000)
網(wǎng)絡(luò)性能一直是制約高性能計(jì)算技術(shù)發(fā)展的瓶頸,無論是面向計(jì)算的網(wǎng)絡(luò)還是面向存儲(chǔ)的網(wǎng)絡(luò),通信速度的發(fā)展遠(yuǎn)落后于CPU的發(fā)展,InfiniBand互連結(jié)構(gòu)能夠縮短網(wǎng)絡(luò)和CPU之間的性能差距,使高性能計(jì)算機(jī)的性能趨于平衡。在這項(xiàng)工作中,我們建議使用DRB作為InfiniBand網(wǎng)絡(luò)的擁塞控制機(jī)制。實(shí)驗(yàn)表明,與原始的基于消息節(jié)流的InfiniBand技術(shù)相比,我們的方法實(shí)現(xiàn)了顯著的性能改進(jìn)。對于分析中的網(wǎng)絡(luò),延遲和吞吐量分別提高了66%和35%。最后,建議的機(jī)制使用InfiniBand規(guī)范中定義的管理模型,因此提供了完全的兼容性。
在InfiniBand協(xié)議發(fā)展初期,國家并行計(jì)算機(jī)工程技術(shù)研究中心就在國家“八六三”計(jì)劃的支持下開始對InfiniBand協(xié)議展開了深入研究,旨在改進(jìn)高性能計(jì)算特別是集群系統(tǒng)的互連性能,研制出符合InfiniBand標(biāo)準(zhǔn)規(guī)范的高性能互連部件。目前的商業(yè)互連網(wǎng)絡(luò),如InfiniBand、Myrinet和Quadrics,旨在滿足HPC系統(tǒng)的要求,如高數(shù)據(jù)傳輸速度和低行程延遲。高速互連網(wǎng)絡(luò)適用于具有不同性能要求的計(jì)算機(jī)系統(tǒng)(即系統(tǒng)局域網(wǎng)(SAN)和PC集群)。此外,對具有大量計(jì)算或數(shù)據(jù)管理需求的并行應(yīng)用程序的需求不斷增加,這是上述標(biāo)準(zhǔn)和商業(yè)實(shí)現(xiàn)不斷增加的主要原因。這些應(yīng)用旨在解決“重大挑戰(zhàn)問題”,包括:分子動(dòng)力學(xué)、預(yù)測、核反應(yīng)、地質(zhì)活動(dòng)等。隨著計(jì)算機(jī)系統(tǒng)規(guī)模的增加,互連網(wǎng)絡(luò)成為瓶頸。目前,互連網(wǎng)絡(luò)的成本和功耗遠(yuǎn)遠(yuǎn)高于處理器。為了解決這個(gè)問題,盡可能減少網(wǎng)絡(luò)組件的數(shù)量。但是,使用較少的網(wǎng)絡(luò)組件會(huì)導(dǎo)致網(wǎng)絡(luò)的利用率(吞吐量)接近飽和點(diǎn)。如果擁塞得不到有效控制,這些資源可能會(huì)飽和,應(yīng)用程序可能會(huì)減速。當(dāng)網(wǎng)絡(luò)無法處理通信負(fù)載時(shí),數(shù)據(jù)包會(huì)延遲,它們必須等待資源釋放。這種情況會(huì)導(dǎo)致消息延遲增加,并且全局系統(tǒng)性能會(huì)下降,因?yàn)閾砣麜?huì)快速傳播到整個(gè)網(wǎng)絡(luò)[1]。
網(wǎng)絡(luò)接口由一個(gè)或多個(gè)稱為通道適配器(CA)的適配器完成,該適配器通過鏈路連接終端節(jié)點(diǎn)和交換機(jī)。網(wǎng)絡(luò)分為不同的子網(wǎng)。就像端節(jié)點(diǎn)通過交換機(jī)互連一樣,子網(wǎng)也通過路由器互連。InfiniBand指定一個(gè)協(xié)議棧,將體系結(jié)構(gòu)劃分為多個(gè)獨(dú)立的層:物理層、鏈路層、網(wǎng)絡(luò)層和傳輸層。鏈路層和傳輸層是IBA體系結(jié)構(gòu)的核心,因?yàn)樵谶@些層中,創(chuàng)建數(shù)據(jù)包,建立點(diǎn)對點(diǎn)連接,并執(zhí)行子網(wǎng)交換。IBA規(guī)范中提供了虛擬通道機(jī)制(VL),以便在物理鏈路上創(chuàng)建多個(gè)虛擬鏈路,從而提高鏈路吞吐量。每個(gè)IBA網(wǎng)絡(luò)設(shè)備由16位本地標(biāo)識符(LID)表示。所有數(shù)據(jù)包頭都包括源和目標(biāo)LID,交換機(jī)利用它們來確定輸出端口并實(shí)現(xiàn)數(shù)據(jù)包轉(zhuǎn)發(fā)[2]。IBA子網(wǎng)使用定義良好的管理模型進(jìn)行獨(dú)立控制,其中多個(gè)實(shí)體或代理相互通信以配置網(wǎng)絡(luò)設(shè)備和操作。名為子網(wǎng)管理器(SM)的實(shí)體負(fù)責(zé)在網(wǎng)絡(luò)啟動(dòng)時(shí)發(fā)現(xiàn)子網(wǎng)組件,分配LID并發(fā)現(xiàn)它們之間的路徑。這些操作由管理包(管理數(shù)據(jù)報(bào),MAD)完成,這些管理包在SM和位于每個(gè)網(wǎng)絡(luò)設(shè)備中的代理之間傳輸信息。SM使用LID和一條路徑查找和配置每個(gè)設(shè)備,默認(rèn)情況下,會(huì)在端點(diǎn)節(jié)點(diǎn)之間查找。但是,IBA體系結(jié)構(gòu)提供了多路徑支持。這是通過LID屏蔽機(jī)制實(shí)現(xiàn)的,該機(jī)制允許為單個(gè)網(wǎng)絡(luò)組件分配多個(gè)名稱。此名稱多樣性提供了在同一對節(jié)點(diǎn)之間建立多條路徑的方法。下一節(jié)將提供有關(guān)多路徑實(shí)現(xiàn)的LID掩蔽的更多詳細(xì)信息[3]。管理模型的另一個(gè)重要組件是擁塞控制管理器(CCM)。該組件執(zhí)行擁塞檢測并生成通知包以通知其外觀。IBA CCM指定了一種監(jiān)控機(jī)制,以測量資源利用率。在緩沖區(qū)占用超過閾值的情況下,將激活擁塞控制機(jī)制。在檢測到擁塞后,交換機(jī)使用包頭中的一對通知位完成包標(biāo)記。標(biāo)記后,數(shù)據(jù)包被轉(zhuǎn)發(fā)到目的地。當(dāng)源CA從結(jié)構(gòu)接收到關(guān)于擁塞的信息時(shí),擁塞控制代理降低屬于擁塞路徑的端口處的分組注入速率。這種方法允許擁塞的端口釋放緩沖區(qū)中包含的數(shù)據(jù)包過載,并防止擁塞擴(kuò)散。根據(jù)接收到的通知數(shù)據(jù)包的數(shù)量,注入減少將更具限制性。限制速率由整數(shù)IRD(注入速率延遲)值指定,該值產(chǎn)生B/(1+IRD)的速率限制,其中B是源CA鏈路的帶寬[4]。
每個(gè)CCT條目包含不同的IRD值。當(dāng)收到更多通知時(shí),將選擇具有更高IRD值的表?xiàng)l目。最終堵塞消失,注入速率必須恢復(fù)。擁塞控制代理使用計(jì)時(shí)器執(zhí)行注入恢復(fù)。每當(dāng)計(jì)時(shí)器過期時(shí),如果未收到擁塞通知,則逐漸恢復(fù)注入(選擇具有較低IRD值的表?xiàng)l目)。如上所述,消息限制機(jī)制的主要缺點(diǎn)在于,將數(shù)據(jù)包爭用從交換機(jī)緩沖區(qū)傳輸?shù)皆垂?jié)點(diǎn)可以消除擁塞。因此,擁塞被消除,但全局延遲無論如何都會(huì)增加,并且在出現(xiàn)突發(fā)流量負(fù)載時(shí)可能會(huì)達(dá)到較高的值。為了解決InfiniBand網(wǎng)絡(luò)中因擁塞而導(dǎo)致的性能下降問題,我們提出了通過利用SM多徑特性、分組傳輸報(bào)頭中的通知位以及CCM提供的監(jiān)控機(jī)制來實(shí)現(xiàn)動(dòng)態(tài)路由平衡的應(yīng)用。DRB技術(shù)可以有效地進(jìn)行擁塞控制,因?yàn)樗梢蕴岣哝溌防寐什⑻峁┹^低的消息延遲。與IBA默認(rèn)機(jī)制(IBA_CC)中的消息限制不同,這種改進(jìn)是通過在多條路徑上分配流量負(fù)載來實(shí)現(xiàn)的。本文提出的IBA擁塞控制機(jī)制的動(dòng)態(tài)路由平衡是在InfiniBand體系結(jié)構(gòu)環(huán)境下實(shí)現(xiàn)的。未修改IBA標(biāo)準(zhǔn)定義和操作,因此實(shí)現(xiàn)了完全兼容性。
IBA交換機(jī)配備一組監(jiān)控組件,用于測量每個(gè)交換機(jī)端口的每個(gè)虛擬通道中的緩沖區(qū)占用情況。IBA標(biāo)準(zhǔn)建立了一個(gè)可配置的閾值,該閾值與檢測到擁塞的緩沖區(qū)大小有關(guān)。如果緩沖區(qū)占用超過此閾值,則會(huì)激活擁塞控制機(jī)制。閾值由CCM設(shè)置,可配置為數(shù)字0到15之間的多個(gè)可能值。值0表示端口上未標(biāo)記任何數(shù)據(jù)包,值15指定非常嚴(yán)格的閾值。當(dāng)檢測到擁塞時(shí),交換機(jī)將標(biāo)記屬于虛擬通道緩沖區(qū)且超過閾值的所有數(shù)據(jù)包。標(biāo)記在分組傳輸報(bào)頭中完成,設(shè)置前向顯式擁塞通知位(FECN)。通知消息被發(fā)送回源節(jié)點(diǎn)。最終,將在向擁塞區(qū)域注入數(shù)據(jù)包的源節(jié)點(diǎn)中接收擁塞通知。此時(shí),擁塞控制代理(CCA)配置并評估可能的替代路徑,以避免擁塞。路徑擴(kuò)展是逐步執(zhí)行的,它基于接收到的擁塞通知的分布。換言之,根據(jù)接收到的擁塞通知分組的倒數(shù)來選擇屬于擁塞路徑的端口,以便進(jìn)行后續(xù)注入。
IBA型號具有IBA標(biāo)準(zhǔn)體系結(jié)構(gòu)中規(guī)定的功能:虛擬穿透交換、流量控制機(jī)制、多路徑、虛擬通道、端口監(jiān)控、可靠傳輸?shù)?。Endnode包括一個(gè)處理器節(jié)點(diǎn),用于執(zhí)行生成和使用數(shù)據(jù)包的應(yīng)用程序,還包括一個(gè)網(wǎng)絡(luò)接口,用于將處理器節(jié)點(diǎn)與網(wǎng)絡(luò)交換機(jī)連接。在endnode模型中執(zhí)行的功能和能力。endnode中的處理器節(jié)點(diǎn)根據(jù)應(yīng)用程序的特定流量模式生成鏈路層數(shù)據(jù)消息。網(wǎng)絡(luò)接口包括一個(gè)端口。與交換機(jī)端口的情況一樣,它支持使用虛擬通道控制器的虛擬通道,并且通過將網(wǎng)絡(luò)接口連接到物理鏈路的鏈路控制器來實(shí)現(xiàn)流量控制。發(fā)送方接收處理器節(jié)點(diǎn)生成的消息,并根據(jù)網(wǎng)絡(luò)接口的MTU將其拆分為多個(gè)數(shù)據(jù)包。對數(shù)據(jù)包進(jìn)行編號以測量無序交付的程度,這可能是由某些自適應(yīng)路由算法引起的。最后,發(fā)送方選擇一個(gè)虛擬通道來轉(zhuǎn)發(fā)數(shù)據(jù)包。類似地,接收器負(fù)責(zé)收集虛擬通道上的數(shù)據(jù)包,分析數(shù)據(jù)包順序,將數(shù)據(jù)包合并到消息中,最后將消息傳遞給處理器節(jié)點(diǎn)。該管理模型也在端節(jié)點(diǎn)級別實(shí)現(xiàn),以便執(zhí)行FECN位分析、確認(rèn)擁塞通知包、配置和評估可能的備選路徑,以及在沒有擁塞的情況下執(zhí)行路徑壓縮。
動(dòng)態(tài)路由平衡技術(shù),可以有效地處理更大的通信負(fù)載。由于負(fù)載分布在多條路徑上,動(dòng)態(tài)路由技術(shù)比IBA_-CC方法具有更高的性能。這一改進(jìn)在所研究的兩種拓?fù)渲卸伎梢钥吹?,其中延遲分別減少了66%和42%。此外,對于更高的流量負(fù)載值,支持平坦的延遲曲線區(qū)域,從而提高網(wǎng)絡(luò)可用性。必須注意的是,減少是由于DRB利用網(wǎng)絡(luò)路徑多樣性將數(shù)據(jù)包發(fā)送到目的地。
本文提出了一種針對InfiniBand網(wǎng)絡(luò)的擁塞預(yù)防方案。該技術(shù)基于動(dòng)態(tài)路由平衡機(jī)制。DRB消除了因網(wǎng)絡(luò)資源中的數(shù)據(jù)包爭用而導(dǎo)致的性能下降。擁塞消除是通過將通信負(fù)載分配到多條備選路徑來完成的。與IBA規(guī)范中提出的消息限制技術(shù)不同,DRB允許源節(jié)點(diǎn)保持注入速率。因此,減少了消息延遲,提高了網(wǎng)絡(luò)性能[5]。