專利名稱:用于跟蹤網(wǎng)絡(luò)爭用的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域是數(shù)據(jù)處理,或者,更具體地說,是用于跟蹤網(wǎng)絡(luò) 爭用的方法、設(shè)備和產(chǎn) 品。
背景技術(shù):
1948年的EDVAC計(jì)算機(jī)系統(tǒng)的開發(fā)常常,皮視為計(jì)算機(jī)時代 的開端。自那時起,計(jì)算機(jī)系統(tǒng)已經(jīng)逐步發(fā)展成及其復(fù)雜的裝置。當(dāng) 今的計(jì)算機(jī)比諸如EDVAC之類的早期的系統(tǒng)復(fù)雜得多。計(jì)算機(jī)系 統(tǒng)通常包括硬件和軟件組件、應(yīng)用程序、操作系統(tǒng)、處理器、總線、 存儲器、輸入/輸出裝置等等的組合。隨著半導(dǎo)體處理和計(jì)算機(jī)體系結(jié) 構(gòu)的進(jìn)步,使得計(jì)算機(jī)的性能越來越高,已經(jīng)發(fā)展了越來越復(fù)雜的計(jì) 算機(jī)軟件,以利用更高性能的硬件,導(dǎo)致現(xiàn)在的計(jì)算機(jī)系統(tǒng)比幾年前 的計(jì)算機(jī)系統(tǒng)功能強(qiáng)大得多。
并行計(jì)算是已經(jīng)取得了進(jìn)步的計(jì)算機(jī)技術(shù)領(lǐng)域。并行計(jì)算是在多 個處理器上同時執(zhí)行同一個任務(wù)(分解并專門改編),以便更快地獲 取結(jié)果。并行計(jì)算基于這樣的事實(shí)解決問題的進(jìn)程通??梢员环殖?較小的任務(wù),這些較小的任務(wù)可以通過某種協(xié)調(diào)同時執(zhí)行。
并行計(jì)算機(jī)執(zhí)行并行算法。并行算法可以分解,以便在許多不同 的處理裝置上一次一個片斷地執(zhí)行,然后,在結(jié)束時再次組合在一起, 以獲得數(shù)據(jù)處理結(jié)果。某些算法易于分割為多個片段。例如,通過將 數(shù)字的子集分配到每一個可用的處理器,然后,將確定的結(jié)果的列表 放回在一起,可以將檢查從一到十萬的所有數(shù)字以查看哪些數(shù)字是素 數(shù)的任務(wù)分解。在本說明書中,執(zhí)行并行程序的單個片段的多個處理 裝置稱為"計(jì)算節(jié)點(diǎn)"。并行計(jì)算機(jī)由計(jì)算節(jié)點(diǎn)及其他處理節(jié)點(diǎn)構(gòu)成, 包括,例如,輸入/輸出("I/O")節(jié)點(diǎn),以及服務(wù)節(jié)點(diǎn)。
并行算法是有價值的,因?yàn)椋捎诂F(xiàn)代處理器的工作方式通過并行算法執(zhí)行某些大型的計(jì)算任務(wù)比通過串行(非并行)算法執(zhí)行這些 大型任務(wù)更快。利用單一的快速處理器構(gòu)建計(jì)算機(jī)比利用許多具有相 同的吞吐量的慢的處理器構(gòu)建計(jì)算機(jī)要困難得多。對于串行處理器的 潛在速度還有某些理論極限。另一方面,每個并行算法都有串行部分, 因此,并行算法也有飽和點(diǎn)。在該點(diǎn)之后,添加更多的處理器不會產(chǎn) 生任何更大的吞吐量,而只會增大開銷和成本。
并行算法也被設(shè)計(jì)用于優(yōu)化具有并行計(jì)算機(jī)的節(jié)點(diǎn)之間的數(shù)據(jù) 通信要求的多于一個資源。并行處理器有兩種方式進(jìn)行通信,共享 存儲器或消息傳遞。共享存儲器處理需要對數(shù)據(jù)進(jìn)行額外的鎖定,并 增加額外的處理器的開銷和總線周期,還序列化算法的某些部分。消 息傳遞處理使用高速數(shù)據(jù)通信網(wǎng)絡(luò)和消息緩沖區(qū),但是,這種通信增 加了數(shù)據(jù)通信網(wǎng)絡(luò)上傳輸開銷,以及用于消息緩沖區(qū)的額外的存儲器 需求和節(jié)點(diǎn)之間的數(shù)據(jù)通信的延遲。并行計(jì)算機(jī)的設(shè)計(jì)使用專門設(shè)計(jì) 的數(shù)據(jù)通信鏈路,以便通信開銷比較小,但是,真正確定通信量的是 并行算法。
許多數(shù)據(jù)通信網(wǎng)絡(luò)體系結(jié)構(gòu)用于并行計(jì)算機(jī)中的節(jié)點(diǎn)之間的消 息傳遞。計(jì)算節(jié)點(diǎn)可以被組織在如"環(huán)面網(wǎng)絡(luò),,或"網(wǎng)狀網(wǎng)絡(luò),,的網(wǎng)絡(luò) 中。此外,計(jì)算節(jié)點(diǎn)也可以被組織在如樹形的網(wǎng)絡(luò)中。環(huán)面網(wǎng)絡(luò)以環(huán) 繞式鏈路連接三維網(wǎng)狀網(wǎng)絡(luò)中的節(jié)點(diǎn)。每個節(jié)點(diǎn)通過該環(huán)面網(wǎng)絡(luò)連接 到其六個鄰居,每一個節(jié)點(diǎn)都通過其在網(wǎng)狀網(wǎng)絡(luò)中的X, y, z坐標(biāo)
來確定地址。以這種方式,環(huán)面網(wǎng)絡(luò)用于點(diǎn)對點(diǎn)操作。在樹形網(wǎng)絡(luò)中,
節(jié)點(diǎn)通常連接到二叉樹每一個節(jié)點(diǎn)都具有一個父節(jié)點(diǎn)和兩個子節(jié)點(diǎn)
(雖然某些節(jié)點(diǎn)可以只有零個子節(jié)點(diǎn)或一個子節(jié)點(diǎn),這取決于硬件配 置情況)。雖然樹形網(wǎng)絡(luò)通常對于點(diǎn)對點(diǎn)通信效率低,但是,樹形網(wǎng)
絡(luò)對于所有計(jì)算節(jié)點(diǎn)都同時參與的某些集合操作(collective operations),消息傳遞操作(例如,allgather操作)確實(shí)能夠提供 高帶寬和低延遲。在使用環(huán)面和樹形網(wǎng)絡(luò)的計(jì)算機(jī)中,兩個網(wǎng)絡(luò)通常 是彼此獨(dú)立地實(shí)現(xiàn)的,具有單獨(dú)的路由電路,單獨(dú)的物理鏈路,以及 單獨(dú)的消息緩沖區(qū)。在應(yīng)用程序在并行計(jì)算機(jī)中執(zhí)行過程中,通過環(huán)面連接的計(jì)算節(jié) 點(diǎn)可以傳遞許多數(shù)據(jù)通信消息。數(shù)據(jù)通信中的任何延遲都會使應(yīng)用程 序的執(zhí)行效率降低。當(dāng)前有多種在計(jì)算節(jié)點(diǎn)之間路由數(shù)據(jù)通信的典型 的方法用于減少延遲。這樣的方法通常依賴于預(yù)先確定的路由規(guī)則組 或歷史網(wǎng)絡(luò)擁塞模式,來確定計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信路由。然而, 規(guī)則和歷史網(wǎng)絡(luò)擁塞模式可能不能準(zhǔn)確地反映并行計(jì)算機(jī)中的節(jié)點(diǎn) 之間的實(shí)際網(wǎng)絡(luò)擁塞,因此,可能不能降低數(shù)據(jù)通信中的延遲。因此, 本領(lǐng)域技術(shù)人員將認(rèn)識到,需要跟蹤計(jì)算節(jié)點(diǎn)之間的網(wǎng)絡(luò)爭用。
發(fā)明內(nèi)容
說明了用于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組 的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用的方法、裝置以及產(chǎn)品。在本發(fā)
明的實(shí)施例中,每一個計(jì)算節(jié)點(diǎn)都通過鏈路連接到點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng) 絡(luò)中的相鄰計(jì)算節(jié)點(diǎn)。根據(jù)本發(fā)明的實(shí)施例的跟蹤網(wǎng)絡(luò)爭用包括,通 過操作組中的每一個計(jì)算節(jié)點(diǎn)上的網(wǎng)絡(luò)爭用模塊,維護(hù)每一個計(jì)算節(jié)
點(diǎn)的本地爭用計(jì)數(shù)器,每一個本地爭用計(jì)數(shù)器都表示從計(jì)算節(jié)點(diǎn)發(fā)出 的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用;以及維護(hù)全局爭用計(jì)數(shù)器,所
述全局爭用計(jì)數(shù)器表示操作組中的計(jì)算節(jié)點(diǎn)之間的所有鏈路上的當(dāng) 前網(wǎng)絡(luò)爭用。
如附圖所說明的,根據(jù)下文中對本發(fā)明的示范性實(shí)施例的比較詳 細(xì)的說明,本發(fā)明的前面的及其他目的、特征和優(yōu)點(diǎn)將變得顯而易見, 在附圖中,附圖標(biāo)記一般代表本發(fā)明的示范性實(shí)施例的類似的部分。
圖1顯示了根據(jù)本發(fā)明的實(shí)施例的跟蹤網(wǎng)絡(luò)爭用的示范性系統(tǒng)。
圖2顯示了用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的并 行計(jì)算機(jī)中的示范性計(jì)算節(jié)點(diǎn)的方框圖。
圖3A顯示了用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的 系統(tǒng)中的示范性點(diǎn)對點(diǎn)適配器。
圖3B顯示了用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的示范性全局組合網(wǎng)絡(luò)適配器。
圖4顯示了一個線圖,該圖顯示了為用于根據(jù)本發(fā)明的實(shí)施例 的能夠跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的點(diǎn)對點(diǎn)操作而優(yōu)化的示范性數(shù)據(jù)通 信網(wǎng)絡(luò)。
圖5顯示了一個線圖,該圖顯示了為用于根據(jù)本發(fā)明的實(shí)施例 的能夠跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的集合操作而優(yōu)化的示范性數(shù)據(jù)通信 網(wǎng)絡(luò)。
圖6顯示了一個流程圖,該圖顯示了根據(jù)本發(fā)明的實(shí)施例的用 于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組的計(jì)算節(jié)點(diǎn)之 間的鏈路上的網(wǎng)絡(luò)爭用的示范性方法。
圖7顯示了一個流程圖,該圖顯示了根據(jù)本發(fā)明的實(shí)施例的用 于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組的計(jì)算節(jié)點(diǎn)之 間的鏈路上的網(wǎng)絡(luò)爭用的又一個示范性方法。
具體實(shí)施例方式
下面將參考附圖,從圖1開始,描述根據(jù)本發(fā)明的實(shí)施例的用 于跟蹤網(wǎng)絡(luò)爭用的示范性方法、裝置以及產(chǎn)品。圖1顯示了根據(jù)本 發(fā)明的實(shí)施例的跟蹤網(wǎng)絡(luò)爭用的示范性系統(tǒng)。圖1的系統(tǒng)包括并行 計(jì)算機(jī)(100),以數(shù)據(jù)存儲裝置(118)的形式存在的計(jì)算機(jī)的非易失 性存儲器,以打印機(jī)(120)的形式存在的計(jì)算機(jī)的輸出裝置,以及以 計(jì)算機(jī)終端(122)的形式存在的計(jì)算機(jī)的輸入/輸出裝置。圖1的示 例中的并行計(jì)算機(jī)(100)包括多個計(jì)算節(jié)點(diǎn)(102)。
計(jì)算節(jié)點(diǎn)(102)通過多個獨(dú)立的數(shù)據(jù)通信網(wǎng)絡(luò)連接用于進(jìn)行數(shù) 據(jù)通信,所述數(shù)據(jù)通信網(wǎng)絡(luò)包括聯(lián)合測試行動組織("JTAG")網(wǎng)絡(luò) (104),為集合操作而優(yōu)化的全局組合網(wǎng)絡(luò)(106),以及為點(diǎn)對點(diǎn)操作 優(yōu)化的環(huán)面網(wǎng)絡(luò)(108)。全局組合網(wǎng)絡(luò)(106)是包括連接到計(jì)算節(jié)點(diǎn) 以便將計(jì)算節(jié)點(diǎn)組織為樹形的數(shù)據(jù)通信鏈路的數(shù)據(jù)通信網(wǎng)絡(luò)。每一個 數(shù)據(jù)通信網(wǎng)絡(luò)都利用計(jì)算節(jié)點(diǎn)(102)之間的數(shù)據(jù)通信鏈路來實(shí)現(xiàn)。數(shù) 據(jù)通信鏈路為并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)之間的并行操作提供數(shù)據(jù)通信。 計(jì)算節(jié)點(diǎn)之間的鏈路是雙向鏈路,它們通常使用兩個單獨(dú)的方向的數(shù)據(jù)通信路徑來實(shí)現(xiàn)。
此外,并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)(102)被組織成計(jì)算節(jié)點(diǎn)的至少 一個操作組(132),以便在并行計(jì)算機(jī)(100)上進(jìn)行集合并行操作。 計(jì)算節(jié)點(diǎn)的操作組是在其上執(zhí)行集合并行操作的計(jì)算節(jié)點(diǎn)的組。集合 操作是利用操作組的計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信來實(shí)現(xiàn)的。集合操作是 涉及操作組的所有計(jì)算節(jié)點(diǎn)的那些功能。集合操作是由計(jì)算節(jié)點(diǎn)的操 作組中的所有計(jì)算節(jié)點(diǎn)同時,即,在大致相同的時間,執(zhí)行的操作、 消息傳遞計(jì)算機(jī)程序指令。這樣的操作組可以包括并行計(jì)算機(jī)(100) 中的所有計(jì)算節(jié)點(diǎn)或所有計(jì)算節(jié)點(diǎn)的子集。集合操作常常圍繞點(diǎn)對點(diǎn) 操作構(gòu)建。集合操作要求操作組內(nèi)的所有計(jì)算節(jié)點(diǎn)上的所有進(jìn)程都調(diào) 用帶有匹配的參數(shù)的相同的集合操作。"廣播,,是用于在操作組的計(jì)算 節(jié)點(diǎn)之間移動數(shù)據(jù)的集合操作的示例。"歸約,,操作是對在操作組的計(jì) 算節(jié)點(diǎn)之間分布的數(shù)據(jù)上執(zhí)行算術(shù)或邏輯功能的集合操作的示例。操 作組可以實(shí)現(xiàn)為,例如,MPI"傳達(dá)者"。
"MPI"是指"消息傳遞接口",現(xiàn)有技術(shù)的并行通信庫,用于在并 行計(jì)算機(jī)上進(jìn)行數(shù)據(jù)通信的計(jì)算機(jī)程序指令的模塊??梢约右愿纳埔?便用于根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)中的現(xiàn)有技術(shù)的并行通信庫的示 例包括MPI和"并行虛擬機(jī)"(PVM)庫。PVM是由田納西大學(xué)、橡 樹呤國家實(shí)驗(yàn)室以及Emory大學(xué)開發(fā)的。MPI是 MPI論壇發(fā)布 的,該組織是有來自定義和維護(hù)MPI標(biāo)準(zhǔn)的許多組織的代表的開放 性的組織。寫這篇說明書時MPI是用于在分布式存儲器并行計(jì)算機(jī) 上運(yùn)行并行程序的計(jì)算節(jié)點(diǎn)之間進(jìn)行通信的事實(shí)上的標(biāo)準(zhǔn)。為便于說 明,本說明書有時使用MPI術(shù)語,雖然如此使用MPI不是本發(fā)明 的要求或限制。
某些集合操作具有在操作組中的特定計(jì)算節(jié)點(diǎn)上運(yùn)行的單一發(fā) 出或接收進(jìn)程。例如,在"廣播"集合操作中,計(jì)算節(jié)點(diǎn)上的向所有其 他計(jì)算節(jié)點(diǎn)分發(fā)數(shù)據(jù)的進(jìn)程是發(fā)出進(jìn)程(originating process )。例如 在"收集"操作中,計(jì)算節(jié)點(diǎn)上的從其他計(jì)算節(jié)點(diǎn)接收所有數(shù)據(jù)的進(jìn)程 是接收進(jìn)程。這種發(fā)出或接收進(jìn)程在其上面運(yùn)行的計(jì)算節(jié)點(diǎn)稱為邏輯根(logical root)。
大多數(shù)集合操作是四種基本操作的變化或組合廣播、收集、分 散以及歸約。在由MPI論壇發(fā)布的MPI標(biāo)準(zhǔn)中定義了這些集合操 作的接口。然而,在MPI標(biāo)準(zhǔn)中沒有定義用于執(zhí)行集合操作的算法。 在廣播操作中,所有進(jìn)程都指定相同的根進(jìn)程,其緩沖區(qū)內(nèi)容將被發(fā) 送。根之外的進(jìn)程指定接收緩沖區(qū)。在操作之后,所有緩沖區(qū)都包含 來自根進(jìn)程的消息。
在分散操作中,邏輯根將根上的數(shù)據(jù)分割為段,并將不同的段分 發(fā)到操作組中的每一個計(jì)算節(jié)點(diǎn)。在分散操作中,所有進(jìn)程都通常指 定相同的接收計(jì)數(shù)。發(fā)送參數(shù)只對根進(jìn)程(其緩沖區(qū)實(shí)際包含給定數(shù) 據(jù)類型的sendcount *N元素)有效,其中,N是給定計(jì)算節(jié)點(diǎn)的組 中的進(jìn)程的數(shù)量。發(fā)送緩沖區(qū)被分割,并分散到所有進(jìn)程(包括邏輯 根上的進(jìn)程)。每一個計(jì)算節(jié)點(diǎn)都被分配連續(xù)標(biāo)識符,被稱為"等級"。 在操作之后,根以遞增的等級順序向每一個進(jìn)程發(fā)送sendcount數(shù)據(jù) 元素。等級0從發(fā)送緩沖區(qū)接收第一個發(fā)送計(jì)數(shù)數(shù)據(jù)元素。等級1 從發(fā)送緩沖區(qū)接收第二個發(fā)送計(jì)數(shù)數(shù)據(jù)元素,依次類推。
收集操作是多對一集合操作,它是分散操作的完全相反的描述。 即,收集是多對一集合操作,其中,從分等級的計(jì)算節(jié)點(diǎn)將數(shù)據(jù)類型 的元素收集到根節(jié)點(diǎn)中的接收緩沖區(qū)中。
歸約操作也是多對一集合操作,包括在兩個數(shù)據(jù)元素上執(zhí)行的算 術(shù)或邏輯功能。所有進(jìn)程都指定相同的"計(jì)數(shù)"和相同的算術(shù)或邏輯功 能。在歸約之后,所有進(jìn)程都從計(jì)算機(jī)節(jié)點(diǎn)的發(fā)送緩沖區(qū)向根進(jìn)程發(fā) 送計(jì)數(shù)數(shù)據(jù)元素。在歸約操作中,來自對應(yīng)的發(fā)送緩沖區(qū)位置的數(shù)據(jù) 元素通過算術(shù)或邏輯操作以配對的方式被組合,以在根進(jìn)程的接收緩 沖區(qū)中產(chǎn)生單一對應(yīng)元素。在運(yùn)行時可以定義應(yīng)用程序特定的歸約操 作。并行通信庫可以支持預(yù)定義的操作。例如,MPI提供下列預(yù)定 義的歸約操作
MPI—MAX 最大
MPI—MIN 最小
10MPI一一S麗求和
MPI一PROD乘積
MPI—LAND邏輯和
MPIBAND逐位和
MPILOR邏輯或
MPI—隱BOR逐位或
MPI_LXOR邏輯"異或"
MPLJBXOR逐位"異或"
除計(jì)算節(jié)點(diǎn)之外,并行計(jì)算機(jī)(100)還包括通過全局組合網(wǎng)絡(luò) (106)連接到計(jì)算節(jié)點(diǎn)(102)的輸入/輸出("I/0,,)節(jié)點(diǎn)(110, 114)。 并行計(jì)算機(jī)(100)中的計(jì)算節(jié)點(diǎn)被分割為處理組,以便處理組中的每 一個計(jì)算節(jié)點(diǎn)都連接到同一個I/O節(jié)點(diǎn),以便進(jìn)行數(shù)據(jù)通信。因此, 每一個處理組都由一個I/O節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)(102)的子集構(gòu)成。計(jì) 算節(jié)點(diǎn)的數(shù)量與整個系統(tǒng)中的I/O節(jié)點(diǎn)的數(shù)量之間的比率通常取決 于并行計(jì)算機(jī)的硬件配置。例如,在某些配置中,每一個處理組都可 以由八個計(jì)算節(jié)點(diǎn)和一個I/O節(jié)點(diǎn)組成。而在某些其他配置中,每 一個處理組可以由六十四個計(jì)算節(jié)點(diǎn)和一個I/O節(jié)點(diǎn)組成。然而, 這樣的示例只是為了說明,而不是限制。每一個I/O節(jié)點(diǎn)都提供其 處理組的計(jì)算節(jié)點(diǎn)(102)和一組I/O裝置之間的I/0服務(wù)。在圖1 的示例中,I/O節(jié)點(diǎn)(110, 114)通過使用高速以太網(wǎng)實(shí)現(xiàn)的局域網(wǎng) ("LAN" ) (130)連接到I/O裝置(118, 120, 122)以進(jìn)行數(shù)據(jù) 通信。
圖1的并行計(jì)算機(jī)(100)還包括通過其中一個網(wǎng)絡(luò)(104)連 接到計(jì)算節(jié)點(diǎn)的服務(wù)節(jié)點(diǎn)(116)。服務(wù)節(jié)點(diǎn)(116)提供對多個計(jì)算節(jié) 點(diǎn)通用的服務(wù),管理計(jì)算節(jié)點(diǎn)的配置,將程序加載到計(jì)算節(jié)點(diǎn)中,在 計(jì)算節(jié)點(diǎn)上啟動程序執(zhí)行,檢索計(jì)算節(jié)點(diǎn)上程序操作的結(jié)果,等等。 服務(wù)節(jié)點(diǎn)(ll6)運(yùn)行服務(wù)應(yīng)用程序(l24),并通過在計(jì)算機(jī)終端(122) 運(yùn)行的服務(wù)應(yīng)用程序接口 (l26)與用戶(128)進(jìn)行通信。
如下面在本說明書中比較詳細(xì)地描述的,圖1的系統(tǒng)一般操作用于根據(jù)本發(fā)明的實(shí)施例跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中 的操作組的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用。在圖1的系統(tǒng)中,
每一個計(jì)算節(jié)點(diǎn)都通過鏈路連接到點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)(108)中的 相鄰的計(jì)算節(jié)點(diǎn)。網(wǎng)絡(luò)爭用是并行計(jì)算機(jī)中的節(jié)點(diǎn)之間的數(shù)據(jù)通信的 擁塞。圖1的系統(tǒng)中的每一個計(jì)算節(jié)點(diǎn)都包括網(wǎng)絡(luò)緩沖區(qū),存儲用 于在鏈路上向相鄰計(jì)算節(jié)點(diǎn)進(jìn)行傳輸?shù)臄?shù)據(jù)通信。在緩沖區(qū)中存儲的 用于傳輸?shù)臄?shù)據(jù)通信被延遲,直到被傳輸。
為縮小典型的并行計(jì)算機(jī)中的由網(wǎng)絡(luò)爭用所引起的延遲,可以使 用各種網(wǎng)絡(luò)路由方案。這樣的網(wǎng)絡(luò)路由方案可以包括確定性路由或自 適應(yīng)路由。確定性路由是這樣的路由技術(shù),在進(jìn)行傳輸之前確定一對 節(jié)點(diǎn)之間的路由。例如,在圖1的系統(tǒng)中,在點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò) 中,可以基于指定傳輸首先沿著x軸,然后,沿著y軸,然后,沿 著z軸進(jìn)行路由的規(guī)則,預(yù)先確定一對節(jié)點(diǎn)之間的路由。以這種方 式,可以在進(jìn)行傳輸之前準(zhǔn)確地知道計(jì)算節(jié)點(diǎn)之間的所有數(shù)據(jù)通信路 由。
自適應(yīng)路由是這樣的路由技術(shù),響應(yīng)于系統(tǒng)條件的變化,在進(jìn)行 數(shù)據(jù)傳輸過程中可以改變路由。例如,在典型的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò) 中,自適應(yīng)路由可以根據(jù)計(jì)算節(jié)點(diǎn)的網(wǎng)絡(luò)緩沖區(qū),改變每一個計(jì)算節(jié) 點(diǎn)中的數(shù)據(jù)通信路徑,以選擇網(wǎng)絡(luò)擁塞情況最低的計(jì)算節(jié)點(diǎn)的鏈路。 然而,當(dāng)前路由選擇方案,通常依賴于路由網(wǎng)絡(luò)通信中的歷史網(wǎng)絡(luò)擁 塞數(shù)據(jù),而不是當(dāng)前網(wǎng)絡(luò)擁塞數(shù)據(jù)。此外,諸如自適應(yīng)路由方案之類 的典型的路由方案,不能掌握并行計(jì)算機(jī)中的網(wǎng)絡(luò)擁塞的全貌,而是 只能掌握單一節(jié)點(diǎn)的網(wǎng)絡(luò)擁塞的本地情況。
圖1的系統(tǒng)通常操作用于通過操作組中的每一個計(jì)算節(jié)點(diǎn)上的 網(wǎng)絡(luò)爭用模塊,維護(hù)每一個計(jì)算節(jié)點(diǎn)的本地爭用計(jì)數(shù)器,以跟蹤根據(jù)
本發(fā)明的實(shí)施例的并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組的 計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用,所述每一個本地爭用計(jì)數(shù)器都表 示從計(jì)算節(jié)點(diǎn)發(fā)出的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用。本地爭用計(jì) 數(shù)器表示從計(jì)算節(jié)點(diǎn)發(fā)出的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用。本地爭用計(jì)數(shù)器可以被定義為陣列。例如,考慮如上文所述在具有由X,
y, z坐標(biāo)定義的位置的環(huán)面網(wǎng)絡(luò)中配置圖1的系統(tǒng)中的計(jì)算節(jié)點(diǎn)。 在這樣的環(huán)面網(wǎng)絡(luò)中,計(jì)算節(jié)點(diǎn)的本地爭用計(jì)數(shù)器可以是將鏈路方向 和節(jié)點(diǎn)位置進(jìn)行關(guān)聯(lián)的陣列。即,本地爭用計(jì)數(shù)器可以被定義為下列 陣列
LocalContentionCounter{link_directioii} {compute—node—locat
ion} 1
在環(huán)面網(wǎng)絡(luò)的示例中,鏈路方向可以是x+, x-, y+, y-, z+,以及 z-,在本地爭用計(jì)數(shù)器陣列中分別表示為0,1,2,3,4和5。向位于只 包括x+軸的路由上的3,0,0的計(jì)算節(jié)點(diǎn)傳輸五個數(shù)據(jù)包的位置 O,O,O處的計(jì)算節(jié)點(diǎn),可以具有包括下列元素的本地爭用計(jì)數(shù)器,假 設(shè)沒有其他數(shù)據(jù)包被位于O,O,O的節(jié)點(diǎn)傳輸
LocalContentionCounter[O,O,O,O=5
LocalContentionCounter[O, 1 ,O,O=5
LocalContentionCounter
= 5
上面的示范性本地爭用計(jì)數(shù)器的每一個元素表示在計(jì)算節(jié)點(diǎn)的 x+鏈路上傳輸?shù)臄?shù)據(jù)包。上面所列的第一元素表示在位于O,O,O的節(jié) 點(diǎn)的x+鏈路上傳輸5個數(shù)據(jù)包。上面所列的第二元素表示在位于 l,O,O的節(jié)點(diǎn)的x+鏈路上傳輸5個數(shù)據(jù)包。上面所列的第三元素表示 在位于2,0,0的節(jié)點(diǎn)的x+鏈路上傳輸5個數(shù)據(jù)包。雖然這里只描述 了本地爭用計(jì)數(shù)器的三個元素,但是,本領(lǐng)域技術(shù)人員將認(rèn)識到,這 樣的陣列可以包括操作組中的每一個計(jì)算節(jié)點(diǎn)的每一個方向的每一 個鏈路的元素。
圖1的系統(tǒng)還操作用于通過維護(hù)全局爭用計(jì)數(shù)器來跟蹤根據(jù)本 發(fā)明的實(shí)施例的并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組的計(jì) 算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用。全局爭用計(jì)數(shù)器表示操作組中的計(jì) 算節(jié)點(diǎn)之間的所有鏈路上的當(dāng)前網(wǎng)絡(luò)爭用。即,全局爭用計(jì)數(shù)器是操 作組中的所有本地爭用計(jì)數(shù)器的每一個元素所有值的數(shù)學(xué)組合。
圖1中所顯示的構(gòu)成示范性系統(tǒng)的節(jié)點(diǎn)、網(wǎng)絡(luò),以及I/O裝置的布局只是為了說明,而不作為對本發(fā)明的限制。根據(jù)本發(fā)明的實(shí)施 例的能夠跟蹤網(wǎng)絡(luò)爭用的數(shù)據(jù)處理系統(tǒng)可以包括圖1沒有顯示的而 本領(lǐng)域技術(shù)人員可以想到的其他節(jié)點(diǎn)、網(wǎng)絡(luò)、裝置,以及體系結(jié)構(gòu)。
雖然圖1的示例中的并行計(jì)算機(jī)(100)包括十六個計(jì)算節(jié)點(diǎn) (102),但是,讀者將注意到,根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭 用的并行計(jì)算機(jī)可以包括任意數(shù)量的計(jì)算節(jié)點(diǎn)。除以太網(wǎng)和JTAG 之外,這種數(shù)據(jù)處理系統(tǒng)中的網(wǎng)絡(luò)可以支持許多數(shù)據(jù)通信協(xié)議,包括, 例如,TCP (傳輸控制協(xié)議)、IP (因特網(wǎng)協(xié)議)、及其他如本領(lǐng)域 技術(shù)人員可以想到的協(xié)議。本發(fā)明的各個實(shí)施例可以在除了圖1中 所顯示的那些硬件平臺之外的各種硬件平臺上實(shí)現(xiàn)。
根據(jù)本發(fā)明的實(shí)施例的跟蹤網(wǎng)絡(luò)爭用 一般可以在包括多個計(jì)算 節(jié)點(diǎn)的并行計(jì)算機(jī)上實(shí)現(xiàn)。事實(shí)上,這樣的計(jì)算機(jī)可以包括成千上萬 的這樣的計(jì)算節(jié)點(diǎn)。每一個計(jì)算節(jié)點(diǎn)本身又是由一個或多個計(jì)算機(jī)處 理器(或處理內(nèi)核),及其自己的計(jì)算機(jī)存儲器以及其自己的輸入/ 輸出適配器組成的一種計(jì)算機(jī)。因此,為了進(jìn)一步進(jìn)行說明,圖2顯 示了用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的并行計(jì)算機(jī)中 的示范性計(jì)算節(jié)點(diǎn)的方框圖。圖2的計(jì)算節(jié)點(diǎn)(152)包括一個或多 個處理內(nèi)核(164)以及隨機(jī)存取存儲器("RAM" ) (156)。處理內(nèi)核 (164)通過高速存儲器總線(154)連接到RAM(156),并通過總線適 配器(19^)和擴(kuò)展總線(168)連接到計(jì)算節(jié)點(diǎn)(152)的其他組件。 存儲在RAM (156)中的有應(yīng)用程序(158),使用并行算法執(zhí)行并行 的用戶級別的數(shù)據(jù)處理的計(jì)算機(jī)程序指令的模塊。
存儲在RAM (156)中的還有消息傳送模塊(160),在計(jì)算節(jié)點(diǎn) 之間執(zhí)行并行通信的計(jì)算機(jī)程序指令庫,包括點(diǎn)對點(diǎn)操作以及集合操 作。應(yīng)用程序(158)通過調(diào)用消息傳送模塊(160)中的軟件例程來 執(zhí)行集合操作??梢允褂弥T如C編程語言之類的傳統(tǒng)的編程語言, 從零開始開發(fā)并行通信例程庫,用于根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)中, 并使用傳統(tǒng)的編程方法來編寫在兩個獨(dú)立的數(shù)據(jù)通信網(wǎng)絡(luò)上的節(jié)點(diǎn) 之間發(fā)送和接收數(shù)據(jù)的并行通信例程。可替代地,也可以對現(xiàn)有的庫進(jìn)行改進(jìn),以根據(jù)本發(fā)明的實(shí)施例進(jìn)行操作?,F(xiàn)有技術(shù)的并行通信庫
的示例包括"消息傳遞接口"( "MPI")庫和"并行虛擬機(jī)"(PVM)庫。 圖2的消息傳送模塊(160)還包括網(wǎng)絡(luò)爭用模塊(609),這是 根據(jù)本發(fā)明的實(shí)施例的用于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò) 中的操作組的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用的計(jì)算機(jī)程序指令 的模塊。網(wǎng)絡(luò)爭用模塊(609)能夠通過維護(hù)本地爭用計(jì)數(shù)器(608) 和維護(hù)全局爭用計(jì)數(shù)器(616)來跟蹤網(wǎng)絡(luò)爭用,所述全局爭用計(jì)數(shù)器 表示當(dāng)前在操作組中的計(jì)算節(jié)點(diǎn)之間的所有鏈路上的網(wǎng)絡(luò)爭用。為了 清楚而非限制目的,圖2的網(wǎng)絡(luò)爭用模塊(609)被描述為消息傳送 模塊(160)的一部分。本領(lǐng)域技術(shù)人員將認(rèn)識到,用于跟蹤計(jì)算節(jié)點(diǎn) 之間的網(wǎng)絡(luò)爭用的網(wǎng)絡(luò)爭用模塊(60S>)可以是RAM (l56)中的獨(dú) 立應(yīng)用程序,可以包括在應(yīng)用程序(158)中,或者也可以包括為點(diǎn)對 點(diǎn)適配器(180)中的固件。
存儲在RAM (156)中的還有操作系統(tǒng)(l62),這是用于應(yīng)用程
序訪問計(jì)算節(jié)點(diǎn)的其他資源的計(jì)算機(jī)程序指令和例程的模塊。通常并 行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)中的應(yīng)用程序和并行通信庫運(yùn)行單 一線程,沒有
用戶登錄也沒有安全問題,因?yàn)榫€程有權(quán)完全訪問節(jié)點(diǎn)的所有資源。 因此,由并行計(jì)算機(jī)中的計(jì)算節(jié)點(diǎn)上的操作系統(tǒng)執(zhí)行的任務(wù)的數(shù)量和 復(fù)雜性比許多線程同時運(yùn)行的串行計(jì)算機(jī)上的操作系統(tǒng)的任務(wù)數(shù)量 要少,復(fù)雜性要低。此外,在圖2的計(jì)算節(jié)點(diǎn)(152)上也沒有視頻 I/O,這是降低對操作系統(tǒng)的需求的另一個因素。因此,與通用計(jì)算 機(jī)的操作系統(tǒng)相比,該操作系統(tǒng)可以相當(dāng)小的,是過去的版本的縮減 版本,或是專門針對特定并行計(jì)算機(jī)上的操作開發(fā)的操作系統(tǒng)??梢?有用地加以改進(jìn)、簡化以供計(jì)算節(jié)點(diǎn)使用的操作系統(tǒng)包括UNIX 、 Linux 、 Microsoft XP 、 AIX 、 IBM的i5/OS ,及其他本領(lǐng)域才支 術(shù)人員可以想到的操作系統(tǒng)。
圖2的示范性計(jì)算節(jié)點(diǎn)(152)包括多個通信適配器(172, 176, 180, 188),用于實(shí)現(xiàn)與并行計(jì)算機(jī)的其他節(jié)點(diǎn)的數(shù)據(jù)通信??梢酝?過RS-232連接,通過線,通過諸如IP網(wǎng)絡(luò)之類的數(shù)據(jù)通信網(wǎng)絡(luò),以及以本領(lǐng)域技術(shù)人員 可以想到的其他方式,連續(xù)地執(zhí)行這種數(shù)據(jù)通信。通信適配器實(shí)現(xiàn)硬 件級的數(shù)據(jù)通信,通過這些通信適配器, 一臺計(jì)算機(jī)直接或通過網(wǎng)絡(luò) 向另一臺計(jì)算機(jī)發(fā)送數(shù)據(jù)通信。用于根據(jù)本發(fā)明的實(shí)施例的用于跟蹤 網(wǎng)絡(luò)爭用的系統(tǒng)中的通信適配器的示例包括用于進(jìn)行有線通信的調(diào)
制解調(diào)器,用于進(jìn)行有線網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE 802.3 )適配器, 以及用于進(jìn)行無線網(wǎng)絡(luò)通信的802.11b適配器。
圖2的示例中的數(shù)據(jù)通信適配器包括將用于進(jìn)行數(shù)據(jù)通信的示 例計(jì)算節(jié)點(diǎn)(l52)連接到千兆以太網(wǎng)(l74)的千兆以太網(wǎng)適配器 (172)。千兆以太網(wǎng)是IEEE 802.3標(biāo)準(zhǔn)中定義的網(wǎng)絡(luò)傳輸標(biāo)準(zhǔn),提供 每秒l十億(一個千兆)比特的數(shù)據(jù)速率。千兆以太網(wǎng)是在多模光纖 電纜、單模光纖電纜,或非屏蔽雙絞線上運(yùn)行的以太網(wǎng)的變型。
圖2的示例中的數(shù)據(jù)通信適配器包括將用于進(jìn)行數(shù)據(jù)通信的示 例計(jì)算節(jié)點(diǎn)(l52)連接到JTAG主線路(l78)的JTAG從屬線路 (176) 。 JTAG是用于標(biāo)題為 Standard Test Access Port and Boundary-Scan Architecture的IEEE 1149.1標(biāo)準(zhǔn)的常用的名稱,針 對用于使用邊界掃描對印刷電路板進(jìn)行測試的測試訪問端口 。 JTAG 是如此廣泛地被采用,現(xiàn)在,邊界掃描或多或少與JTAG同義。JTAG 不僅用于印刷電路板,而且還用于對集成電路進(jìn)行邊界掃描,還作為 用于調(diào)試嵌入系統(tǒng),提供到系統(tǒng)中的方便的"后門"的機(jī)制。圖2的 示例計(jì)算節(jié)點(diǎn)可以是下列這三種情況的全部它通常包括安裝在印刷 電路板上的一個或多個集成電路,并可以實(shí)現(xiàn)為具有其自己的處理 器、其自己的存儲器,以及其自己的I/O功能的嵌入系統(tǒng)。通過 JTAG從屬(176)的JTAG邊界掃描可以有效地配置計(jì)算節(jié)點(diǎn) (152)中的處理器寄存器和存儲器,用于根據(jù)本發(fā)明的實(shí)施例的跟蹤 網(wǎng)絡(luò)爭用。
圖2的示例中的數(shù)據(jù)通信適配器包括點(diǎn)對點(diǎn)適配器(180),將 用于進(jìn)行數(shù)據(jù)通信的示例計(jì)算節(jié)點(diǎn)(152)連接到對于點(diǎn)對點(diǎn)消息傳 遞操作最適合的網(wǎng)絡(luò)(108),例如,配置為三維環(huán)面或網(wǎng)狀的網(wǎng)絡(luò)。點(diǎn)對點(diǎn)適配器(180)在三個通信軸x, y和z上,通過六個雙向鏈路+x(181)、 -x(182)、 +y(183)、畫y(184),、 +z(185)以及-z (186)在六個方向提供數(shù)據(jù)通信。
圖2的示例中的數(shù)據(jù)通信適配器包括全局組合網(wǎng)絡(luò)適配器(188),將用于進(jìn)行數(shù)據(jù)通信的示例計(jì)算節(jié)點(diǎn)(152)連接到對于例如配置為二叉樹的全局組合網(wǎng)絡(luò)上的集合消息傳遞操作最適合的網(wǎng)絡(luò)(106)。全局組合網(wǎng)絡(luò)適配器(188)通過三個雙向鏈路提供數(shù)據(jù)通信兩個到子節(jié)點(diǎn)(190),以及一個到父節(jié)點(diǎn)(192)。
示例計(jì)算節(jié)點(diǎn)(152)包括兩個算術(shù)邏輯單元("ALU" )。 ALU(166)是每一個處理內(nèi)核(164)的組件,并且單獨(dú)的ALU (170)專用于全局組合網(wǎng)絡(luò)適配器(188)單獨(dú)使用,用于執(zhí)行歸約操作的算術(shù)和邏輯功能。并行通信庫(160)中的歸約例程的計(jì)算機(jī)程序指令可以將用于執(zhí)行算術(shù)或邏輯功能的指令鎖存到指令寄存器(169)中。當(dāng)歸約操作的算術(shù)或邏輯功能是"求和"或"邏輯或",例如,全局組合網(wǎng)絡(luò)適配器(l88)可以通過使用處理器(l64)中的ALU(1M)執(zhí)行算術(shù)或邏輯運(yùn)算,或者,通常通過使用專用的ALU (170)而使執(zhí)行快得多。
圖2的示例計(jì)算節(jié)點(diǎn)(152)包括直接存儲器訪問("DMA")控制器(195),這是用于進(jìn)行直接存儲器訪問的計(jì)算機(jī)硬件,還包括DMA引擎(197),這是用于進(jìn)行直接存儲器訪問的計(jì)算機(jī)軟件。圖2的DMA引擎(l97)通常存儲在DMA控制器(l95)的計(jì)算機(jī)存儲器中。直接存儲器訪問包括從計(jì)算節(jié)點(diǎn)的存儲器進(jìn)行讀取以及向其中進(jìn)行寫入,減少中央處理單元(164)的操作負(fù)擔(dān)。DMA傳輸基本上將存儲器的塊從一個位置復(fù)制到另一個位置,通常從一個計(jì)算節(jié)點(diǎn)復(fù)制到另一個計(jì)算節(jié)點(diǎn)。盡管CPU可以啟動DMA傳輸,但是,CPU卻不執(zhí)行它。
為進(jìn)一步說明,圖3A顯示了用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的示范性點(diǎn)對點(diǎn)適配器(180)。點(diǎn)對點(diǎn)適配器(180)設(shè)計(jì)用于為點(diǎn)對點(diǎn)操作而優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)中,該網(wǎng)絡(luò)以在
17三維環(huán)面或網(wǎng)狀網(wǎng)絡(luò)的形式組織計(jì)算節(jié)點(diǎn)。圖3A的示例中的點(diǎn)對點(diǎn)適配器(180)通過四個單向數(shù)據(jù)通信鏈路沿著x軸,提供往返于-x方向(l82)中的下一個節(jié)點(diǎn),以及往返于+x方向(l81)中的下一個節(jié)點(diǎn)的數(shù)據(jù)通信。點(diǎn)對點(diǎn)適配器(180)還通過四個單向數(shù)據(jù)通信鏈路沿著y軸,提供往返于-y方向(184)中的下一個節(jié)點(diǎn)以及往返于+y方向(183)中的下一個節(jié)點(diǎn)的數(shù)據(jù)通信。圖3A的示例中的點(diǎn)對點(diǎn)適配器(180)還通過四個單向數(shù)據(jù)通信鏈路沿著z軸,提供往返于-z方向(l86)中的下一個節(jié)點(diǎn)以及往返于+z方向(l85)中的下一個節(jié)點(diǎn)的數(shù)據(jù)通信。
為進(jìn)一步說明,圖3B顯示了用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的示范性全局組合網(wǎng)絡(luò)適配器(188)。全局組合網(wǎng)絡(luò)適配器(188)設(shè)計(jì)用于為集合操作而優(yōu)化的網(wǎng)絡(luò)中,該網(wǎng)絡(luò)以二叉樹形式組織并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)的網(wǎng)絡(luò)。圖3B的示例中的全局組合網(wǎng)絡(luò)適配器(188)通過四個單向數(shù)據(jù)通信鏈路(190)提供往返于兩個子節(jié)點(diǎn)的數(shù)據(jù)通信。全局組合網(wǎng)絡(luò)適配器(188)還通過兩個單向數(shù)據(jù)通信鏈路(192)提供往返于父節(jié)點(diǎn)的數(shù)據(jù)通信。
為進(jìn)一步說明,圖4顯示了一個線圖,該圖顯示了為用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的點(diǎn)對點(diǎn)操作而優(yōu)化的示范性數(shù)據(jù)通信網(wǎng)絡(luò)(108)。在圖4的示例中,點(diǎn)表示并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)(102),而點(diǎn)之間的虛線表示計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路(103)。利用類似于例如圖3A中所顯示的那種點(diǎn)對點(diǎn)數(shù)據(jù)通信適配器實(shí)現(xiàn)數(shù)據(jù)通信鏈路,其中數(shù)據(jù)通信鏈路在三個軸x、 y、和z上,并在六個方向+x(181)、 -x(182)、 +y(183)、 -y (184)、 +z (185)以及-z (186)往返。通過該為點(diǎn)對點(diǎn)操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò),將鏈路和計(jì)算節(jié)點(diǎn)組織為三維網(wǎng)狀網(wǎng)絡(luò)(105)。網(wǎng)狀網(wǎng)絡(luò)(105)在每一個軸上具有環(huán)繞鏈路,所述環(huán)繞鏈路連接網(wǎng)狀網(wǎng)絡(luò)(105)中處于網(wǎng)狀網(wǎng)絡(luò)(105 )的相對側(cè)的最外面的計(jì)算節(jié)點(diǎn)。這些環(huán)繞鏈路構(gòu)成環(huán)面(107)的一部分。環(huán)面網(wǎng)絡(luò)中的每一個計(jì)算節(jié)點(diǎn)都具有由一組x, y, z坐標(biāo)唯一指定的在環(huán)面網(wǎng)絡(luò)中的位置。讀者應(yīng)注意,為清楚起見,y和Z方向的環(huán)繞鏈路已經(jīng)省略,而是以與X軸方向所顯示的環(huán)繞鏈路
相似的方式進(jìn)行配置。為清楚起見,圖4的數(shù)據(jù)通信網(wǎng)絡(luò)只有27個計(jì)算節(jié)點(diǎn),但是,讀者應(yīng)認(rèn)識到,用于根據(jù)本發(fā)明的實(shí)施例的跟蹤網(wǎng)絡(luò)爭用的為點(diǎn)對點(diǎn)操作而優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)可以只包含幾個計(jì)算節(jié)點(diǎn),或者可以包含成千上萬個計(jì)算節(jié)點(diǎn)。
為進(jìn)一步說明,圖5顯示了一個線圖,該圖顯示了為用于根據(jù)本發(fā)明的實(shí)施例的能夠跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的集合操作而優(yōu)化的示范性數(shù)據(jù)通信網(wǎng)絡(luò)(106)。圖5的示例數(shù)據(jù)通信網(wǎng)絡(luò)包括連接到計(jì)算節(jié)點(diǎn)的數(shù)據(jù)通信鏈路,以便將計(jì)算節(jié)點(diǎn)組織為樹形。在圖5的示例中,點(diǎn)表示并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)(102),而點(diǎn)之間的虛線(103)表示計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路。數(shù)據(jù)通信鏈路是利用類似于例如圖3B中所顯示的那種全局組合網(wǎng)絡(luò)適配器實(shí)現(xiàn)的,每一個節(jié)點(diǎn)通常提供往返于兩個子節(jié)點(diǎn)之間的數(shù)據(jù)通信,以及往返于父節(jié)點(diǎn)的數(shù)據(jù)通信,并有某些例外。二叉樹(106)中的節(jié)點(diǎn)可以描述為物理根節(jié)點(diǎn)(202)、分支節(jié)點(diǎn)(204)以及葉節(jié)點(diǎn)(206)。根節(jié)點(diǎn)(202)具有兩個子節(jié)點(diǎn),但是沒有父節(jié)點(diǎn)。每一個葉節(jié)點(diǎn)(206)都具有一個父節(jié)點(diǎn),但是,葉節(jié)點(diǎn)沒有子節(jié)點(diǎn)。每一個分支節(jié)點(diǎn)(204)都具有一個父節(jié)點(diǎn)和兩個子節(jié)點(diǎn)。從而,通過該為集合操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò),將鏈路和計(jì)算節(jié)點(diǎn)組織為二叉樹(106)。為清楚起見,圖5的數(shù)據(jù)通信網(wǎng)絡(luò)只有31個計(jì)算節(jié)點(diǎn),但是,讀者應(yīng)認(rèn)識到,用于根據(jù)本發(fā)明的實(shí)施例的跟蹤網(wǎng)絡(luò)爭用的系統(tǒng)中的為集合操作而優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)可以只包含幾個計(jì)算節(jié)點(diǎn),或者可以包含成千上萬個計(jì)算節(jié)點(diǎn)。
在圖5的示例中,給樹中的每一個節(jié)點(diǎn)分配稱為"等級,,(250)的單元標(biāo)識符。節(jié)點(diǎn)的等級唯一地標(biāo)識了節(jié)點(diǎn)在樹形網(wǎng)絡(luò)中的位置,用于樹形網(wǎng)絡(luò)中的點(diǎn)對點(diǎn)的操作和集合操作中。此示例中的等級是作為整數(shù)分配的,從0開始,0分配給根節(jié)點(diǎn)(202), 1分配給樹的第二層中的第一個節(jié)點(diǎn),2分配給樹的第二層中的第二節(jié)點(diǎn),3分配給樹的第三層中的第一節(jié)點(diǎn),4分配給樹的第三層中的第二節(jié)點(diǎn),依次類推。為便于說明,這里只顯示了樹的開頭三層的等級,但是,給樹形網(wǎng)絡(luò)中的所有計(jì)算節(jié)點(diǎn)都分配了唯一的等級。
為了進(jìn)一步說明,圖6顯示了一個流程圖,該圖顯示了根據(jù)本發(fā)明的實(shí)施例的用于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用的示范性方法。在圖6的方法中,每一個計(jì)算節(jié)點(diǎn)都通過鏈路連接到點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的相鄰計(jì)算節(jié)點(diǎn)。
圖6的方法包括通過操作組中的每一個計(jì)算節(jié)點(diǎn)上的網(wǎng)絡(luò)爭用模塊,為每一個計(jì)算節(jié)點(diǎn)維護(hù)(602)本地爭用計(jì)數(shù)器(608)。在圖6的方法中,每一個本地爭用計(jì)數(shù)器(608)都表示從計(jì)算節(jié)點(diǎn)發(fā)出的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用。在圖6的方法中,為每一個計(jì)算節(jié)點(diǎn)維護(hù)(602)本地爭用計(jì)數(shù)器(608)包括根據(jù)操作組中的應(yīng)用程序的執(zhí)行,為操作組中的每一個計(jì)算節(jié)點(diǎn)的鏈路建立(620)本地爭用計(jì)數(shù)器(608)。為每一個計(jì)算節(jié)點(diǎn)建立(620)本地爭用計(jì)數(shù)器可以通過將每一個計(jì)算節(jié)點(diǎn)的本地爭用計(jì)數(shù)器的值初始化為零來實(shí)現(xiàn)。
在圖6的方法中,對于在包括一個或多個鏈路的路徑上從計(jì)算節(jié)點(diǎn)發(fā)出到目的地節(jié)點(diǎn)的每一個數(shù)據(jù)包,維護(hù)(602)本地爭用計(jì)數(shù)器(608)可以通過遞增(604)與路徑中的每一個鏈路關(guān)聯(lián)的本地爭用計(jì)數(shù)器(608)的值以及在預(yù)定義的時間量之后遞減(606)與路徑中的每一個鏈路關(guān)聯(lián)的本地爭用計(jì)數(shù)器(608)的值來實(shí)現(xiàn)。數(shù)據(jù)包可以是
在并行計(jì)算機(jī)的操作組中的計(jì)算節(jié)點(diǎn)和目的地節(jié)點(diǎn)之間傳輸?shù)娜魏晤愋偷臄?shù)據(jù)通信。通常,數(shù)據(jù)包是數(shù)據(jù)通信消息。
預(yù)定義的時間量(618)通常表示進(jìn)入(inject)到鏈路上的數(shù)據(jù)包越過鏈路所需的時間量。時間量可以以毫秒、時鐘周期、指令或本領(lǐng)域技術(shù)人員想到的任何其他方式來表示。在數(shù)據(jù)包越過鏈路之后,數(shù)據(jù)包不再添加到該鏈路上的網(wǎng)絡(luò)爭用。要么與路徑中的每個鏈路關(guān)聯(lián)的值可以同時遞減,要么只與路徑中的特定鏈路關(guān)聯(lián)的值可以在特定時間遞減。為更準(zhǔn)確地反映網(wǎng)絡(luò)爭用,在遞減與更靠近目的地節(jié)點(diǎn)的鏈路關(guān)聯(lián)的值之前,可以遞減與更靠近發(fā)出計(jì)算節(jié)點(diǎn)的鏈路關(guān)聯(lián)的值。如果計(jì)算節(jié)點(diǎn)發(fā)送在十條鏈路的路徑上向目的地節(jié)點(diǎn)傳播的消息,則可以在與路徑中的第十個鏈路關(guān)聯(lián)的值之前遞減與路徑中的第 一個鏈路關(guān)聯(lián)的值。
圖6的方法還包括維護(hù)(610)全局爭用計(jì)數(shù)器(616),全局爭 用計(jì)數(shù)器(616)表示當(dāng)前在操作組中的計(jì)算節(jié)點(diǎn)之間的所有鏈路上 的網(wǎng)絡(luò)爭用。在圖6的方法中,維護(hù)(610)全局爭用計(jì)數(shù)器(616) 可以這樣來實(shí)現(xiàn),在全局爭用計(jì)數(shù)器(616)中,對操作組中的每一個 計(jì)算節(jié)點(diǎn)的每一個本地爭用計(jì)數(shù)器(608)的所有當(dāng)前值進(jìn)行求和 (612);以及將全局爭用計(jì)數(shù)器("6)分發(fā)(6")到操作組中的所有 計(jì)算節(jié)點(diǎn)。對每一個本地爭用計(jì)數(shù)器的所有當(dāng)前值進(jìn)行求和(612)并 將全局爭用計(jì)數(shù)器中的總和值分發(fā)到所有計(jì)算節(jié)點(diǎn)可以以各種方式 實(shí)現(xiàn),例如,通過對樹形網(wǎng)絡(luò)(操作組中的計(jì)算節(jié)點(diǎn)是其組成部分) 執(zhí)行全歸約(allreduce)操作。全歸約操作是多對多集合操作,包括 對多個數(shù)據(jù)元素上執(zhí)行的算術(shù)或邏輯功能。在此情況下,全歸約操作 包括求和算術(shù)功能。在該全歸約操作中,以配對的方式對來自本地爭 用計(jì)數(shù)器中的對應(yīng)的發(fā)送緩沖區(qū)位置的數(shù)據(jù)元素進(jìn)行求和,以在根進(jìn) 程的接收緩沖區(qū)中產(chǎn)生單一對應(yīng)元素。單一對應(yīng)元素是全局爭用計(jì)數(shù) 器中的元素。當(dāng)在根進(jìn)程中完成對每一個本地爭用計(jì)數(shù)器中的每一個 對應(yīng)元素的求和時,根進(jìn)程將全局爭用計(jì)數(shù)器廣播到操作組中的所有 計(jì)算節(jié)點(diǎn)。將下列情況作為示例考慮,位置O,O,O處的節(jié)點(diǎn)只在x+ 軸上的路徑上向位于3,0,0處的節(jié)點(diǎn)傳輸五個數(shù)據(jù)包。位置O,O,O處 的節(jié)點(diǎn)具有其中包括下列元素的本地爭用計(jì)數(shù)器,假設(shè)沒有其他數(shù)據(jù) 包被位于O,O,O處的節(jié)點(diǎn)傳輸
LocalContentionCouiiter[O,O,O,O] =5
LocalContentionCounter[O,l,O,O=5
LocalContentionCounter
= 5
同樣考慮,位置l,O,O處的節(jié)點(diǎn)只在x+軸上的路徑上向位于 3,0,0的同一個節(jié)點(diǎn)傳輸三個數(shù)據(jù)包。位置l,O,O處的節(jié)點(diǎn)將具有包 括下列元素的本地爭用計(jì)數(shù)器
LocalContentionCounter[O, 1 ,0,0=3 LocalContentionCounter[0,2,0,0=3
在預(yù)定義時間段,位于o,o,o處的計(jì)算節(jié)點(diǎn)上的根進(jìn)程執(zhí)行全歸
約操作,對兩個本地爭用計(jì)數(shù)器進(jìn)行求和。在求和之后,根進(jìn)程將包
括下列元素的全局爭用計(jì)數(shù)器廣播到操作組中的所有計(jì)算節(jié)點(diǎn)
GlobalContentionCounter[O,O,O,O=5
GlobalContentionCouiiter[O, 1 ,O,Oj = 8
GlobalContentionCounter[0,2,0,0=8
每一個計(jì)算節(jié)點(diǎn)現(xiàn)在都具有操作組中的所有計(jì)算節(jié)點(diǎn)之間的網(wǎng) 絡(luò)爭用的全局以及本地視圖。這樣的網(wǎng)絡(luò)爭用的全局視圖,無論是獨(dú) 自或者與計(jì)算節(jié)點(diǎn)的本地爭用計(jì)數(shù)器相結(jié)合,都可以用于確定網(wǎng)絡(luò)流 量的路由。
為了進(jìn)一步說明,圖7顯示了一個流程圖,該圖顯示了根據(jù)本 發(fā)明的實(shí)施例的用于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操 作組的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用的又一個示范性方法。圖7 的方法與圖6的方法的相似之處在于,圖7的方法也包括為每一個 計(jì)算節(jié)點(diǎn)維護(hù)(602)本地爭用計(jì)數(shù)器(608)和維護(hù)(610)全局爭用 計(jì)數(shù)器(616)。
然而,圖7的方法與圖6的方法不同之處在于,在圖7的方 法中,維護(hù)(610)全局爭用計(jì)數(shù)器(616)包括更新全局爭用計(jì)數(shù)器 的兩種方法。維護(hù)(610)全局爭用計(jì)數(shù)器可以包括,例如,在預(yù)定義 的時間段(6加),利用所有本地爭用計(jì)數(shù)器(608)的當(dāng)前值更新(M2) 全局爭用計(jì)數(shù)器(616)。可以通過執(zhí)行全歸約操作,對計(jì)算節(jié)點(diǎn)之間 的所有本地爭用計(jì)數(shù)器的所有值進(jìn)行求和,來實(shí)現(xiàn)更新(622)全局爭 用計(jì)數(shù)器。
預(yù)定義的時間段(620)是周期性的"心跳",全局爭用計(jì)數(shù)器按 照它來進(jìn)行更新。心跳之間的時間量可以由用戶指定。用戶可以;恨據(jù) 全局爭用計(jì)數(shù)器在反映計(jì)算節(jié)點(diǎn)之間的當(dāng)前網(wǎng)絡(luò)爭用的所需的準(zhǔn)確 性和更新全局爭用計(jì)數(shù)器所需的計(jì)算開銷,確定心跳之間的時間量。 即,心跳之間的時間長度越短,全局爭用計(jì)數(shù)器就越準(zhǔn)確地反映操作
22組中的當(dāng)前網(wǎng)絡(luò)爭用。然而,每一次更新都會消耗計(jì)算開銷。
因?yàn)楦滤斜镜貭幱糜?jì)數(shù)器的所有值從計(jì)算角度來看是繁重
的,作為替代方案,在圖7的方法中維護(hù)(610)全局爭用計(jì)數(shù)器 (616)可以包括在預(yù)定義的時間段(620),只用自從前一次更新以來更 改的本地爭用計(jì)數(shù)器(608)的值更新(624 )所述全局爭用計(jì)數(shù)器 (616)。在很多情況下,每一個本地爭用計(jì)數(shù)器的某些元素可以在心跳 之間保持不變。通過執(zhí)行只包括自從前一次更新以來更改的本地爭用 計(jì)數(shù)器的值的小的更新,可以降低在更新全局爭用計(jì)數(shù)器時所需的計(jì) 算開銷的量。可以通過在本地爭用中識別指示自從前一次更新以來本 地爭用計(jì)數(shù)器的至少一個值已經(jīng)更改的標(biāo)記,來實(shí)現(xiàn)只用自從前一次 更新以來更改的本地爭用計(jì)數(shù)器的值來更新(624)全局爭用計(jì)數(shù)器。 網(wǎng)絡(luò)爭用模塊,除遞增與路徑中的鏈路關(guān)聯(lián)的值之外,也可以設(shè)置表 示當(dāng)將數(shù)據(jù)包注入到路徑中的鏈路中時本地爭用計(jì)數(shù)器中的變化的 標(biāo)記。在每次更新之后,標(biāo)記都復(fù)位。
基本上是在用于跟蹤網(wǎng)絡(luò)爭用的全功能計(jì)算機(jī)系統(tǒng)的上下文中 來描述本發(fā)明的示范性實(shí)施例的。然而,本領(lǐng)域技術(shù)人員將認(rèn)識到, 本發(fā)明也可以在位于信號承載介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品中實(shí)現(xiàn),供任 何合適的數(shù)據(jù)處理系統(tǒng)使用。這樣的信號攜帶介質(zhì)可以是用于機(jī)器可 讀的信息的傳輸介質(zhì)或可記錄介質(zhì),包括磁性介質(zhì)、光學(xué)介質(zhì),或其 他合適的介質(zhì)??捎涗浀慕橘|(zhì)的示例包括硬盤驅(qū)動器中的磁盤、光驅(qū) 動器的光盤、磁帶以及其他本領(lǐng)域技術(shù)人員可以想到的介質(zhì)。傳輸介
質(zhì)的示例包括用于進(jìn)行語音通信的電話網(wǎng)絡(luò)和例如以太網(wǎng)tm和利用
因特網(wǎng)協(xié)議和萬維網(wǎng)進(jìn)行通信的網(wǎng)絡(luò)之類的數(shù)字?jǐn)?shù)據(jù)通信網(wǎng)絡(luò),以及
例如,根據(jù)IEEE802.il規(guī)范系列實(shí)現(xiàn)的網(wǎng)絡(luò)之類的無線傳輸介質(zhì)。 本領(lǐng)域技術(shù)人員將立即認(rèn)識到,具有合適的編程部件的任何計(jì)算機(jī)系 統(tǒng)將能夠執(zhí)行程序產(chǎn)品中所實(shí)現(xiàn)的本發(fā)明的方法的步驟。本領(lǐng)域技術(shù) 人員將立即認(rèn)識到,雖然本說明書中所描述的一些示范性實(shí)施例是針 對安裝在計(jì)算機(jī)硬件上并在其中執(zhí)行的軟件,然而,作為固件或作為 硬件實(shí)現(xiàn)的備選實(shí)施例也在本發(fā)明的范圍內(nèi)。
23根據(jù)前面的描述可以理解,在不偏離其正確的精神的情況下,可 以在本發(fā)明的各個實(shí)施例中作出修改和更改。本說明書中的描述只用 于說明目的,而不應(yīng)被理解為作出限制。本發(fā)明的范圍僅僅由下列權(quán) 利要求的語言作出限制。
權(quán)利要求
1. 一種用于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用的方法,每一個計(jì)算節(jié)點(diǎn)都通過鏈路連接到點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的相鄰計(jì)算節(jié)點(diǎn),所述方法包括由所述操作組中的每一個計(jì)算節(jié)點(diǎn)上的網(wǎng)絡(luò)爭用模塊,維護(hù)每一個計(jì)算節(jié)點(diǎn)的本地爭用計(jì)數(shù)器,每一個本地爭用計(jì)數(shù)器都表示從所述計(jì)算節(jié)點(diǎn)發(fā)出的所述計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用;以及維護(hù)全局爭用計(jì)數(shù)器,所述全局爭用計(jì)數(shù)器表示當(dāng)前在所述操作組中的計(jì)算節(jié)點(diǎn)之間的所有鏈路上的網(wǎng)絡(luò)爭用。
2. 根據(jù)權(quán)利要求1所述的方法,其中,維護(hù)每一個計(jì)算節(jié)點(diǎn)的 本地爭用計(jì)數(shù)器進(jìn)一步包括對于在包括一個或多個鏈路的路徑上從所述計(jì)算節(jié)點(diǎn)發(fā)出到目 的地節(jié)點(diǎn)的每一個數(shù)據(jù)包遞增與所述路徑中的每一個所述鏈路關(guān)聯(lián)的所述本地爭用計(jì)數(shù) 器的值;以及在預(yù)定義的時間量之后,遞減與所述路徑中的每一個所述鏈路關(guān) 聯(lián)的所述本地爭用計(jì)數(shù)器的值。
3. 根據(jù)權(quán)利要求l所述的方法,其中,維護(hù)全局爭用計(jì)數(shù)器進(jìn) 一步包括在所述全局爭用計(jì)數(shù)器中,對所述操作組中的每一個計(jì)算節(jié)點(diǎn)的 每一個本地爭用計(jì)數(shù)器的所有當(dāng)前值求和;以及將所述全局爭用計(jì)數(shù)器分發(fā)到所述操作組中的所有計(jì)算節(jié)點(diǎn)。
4. 根據(jù)權(quán)利要求l所述的方法,其中,維護(hù)每一個計(jì)算節(jié)點(diǎn)的 本地爭用計(jì)數(shù)器進(jìn)一步包括根據(jù)所述操作組中應(yīng)用程序的執(zhí)行,為每一個計(jì)算節(jié)點(diǎn)建立所述 本地爭用計(jì)數(shù)器,包括將每一個計(jì)算節(jié)點(diǎn)的所述本地爭用計(jì)數(shù)器的值 初始4匕為零。
5. 根據(jù)權(quán)利要求l所述的方法,其中,維護(hù)全局爭用計(jì)數(shù)器進(jìn)一步包括在預(yù)定義的時間段,利用所有本地爭用計(jì)數(shù)器的當(dāng)前值更新所述 全局爭用計(jì)數(shù)器。
6. 根據(jù)權(quán)利要求l所述的方法,其中,維護(hù)全局爭用計(jì)數(shù)器進(jìn) 一步包括在預(yù)定義的時間段,只用自從前一次更新以來更改的本地爭用計(jì) 數(shù)器的值來更新所述全局爭用計(jì)數(shù)器。
7. —種用于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作 組的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用的設(shè)備,每一個計(jì)算節(jié)點(diǎn)都通 過鏈路連接到所述點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的相鄰計(jì)算節(jié)點(diǎn),所述設(shè)備 包括計(jì)算機(jī)處理器,可操作地連接到所述計(jì)算機(jī)處理器的計(jì)算機(jī)存儲 器,所述計(jì)算機(jī)存儲器具有設(shè)置在其中的計(jì)算機(jī)程序指令,所述指令 能夠由所述操作組中的每一個計(jì)算節(jié)點(diǎn)上的網(wǎng)絡(luò)爭用模塊,維護(hù)每一 個計(jì)算節(jié)點(diǎn)的本地爭用計(jì)數(shù)器,每一個本地爭用計(jì)數(shù)器都表示從所述計(jì)算節(jié)點(diǎn)發(fā)出的所述計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用;以及維護(hù)全局爭用計(jì)數(shù)器,所述全局爭用計(jì)數(shù)器表示當(dāng)前在所述操作 組中的所述計(jì)算節(jié)點(diǎn)之間的所有鏈路上的網(wǎng)絡(luò)爭用。
8. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,維護(hù)每一個計(jì)算節(jié)點(diǎn)的 本地爭用計(jì)數(shù)器進(jìn)一步包括對于在包括一個或多個鏈路的路徑上從計(jì)算節(jié)點(diǎn)發(fā)出到目的地 節(jié)點(diǎn)的每一個數(shù)據(jù)包遞增與所述路徑中的每一個所述鏈路關(guān)聯(lián)的所述本地爭用計(jì)數(shù) 器的值;以及在預(yù)定義的時間量之后,遞減與所述路徑中的每一個所述鏈路關(guān) 聯(lián)的所述本地爭用計(jì)數(shù)器的值。
9. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,維護(hù)全局爭用計(jì)數(shù)器進(jìn) 一步包括在所述全局爭用計(jì)數(shù)器中,對所述操作組中的每一個計(jì)算節(jié)點(diǎn)的每一個本地爭用計(jì)數(shù)器的所有當(dāng)前值求和;以及將所述全局爭用計(jì)數(shù)器分發(fā)到所述操作組中的所有計(jì)算節(jié)點(diǎn)。
10. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,維護(hù)每一個計(jì)算節(jié)點(diǎn)的 本地爭用計(jì)數(shù)器進(jìn)一步包括根據(jù)所述操作組中應(yīng)用程序的執(zhí)行,為每一個計(jì)算節(jié)點(diǎn)建立所述 本地爭用計(jì)數(shù)器,包括將每一個計(jì)算節(jié)點(diǎn)的所述本地爭用計(jì)數(shù)器的值 初始化為零。
11. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,維護(hù)全局爭用計(jì)數(shù)器進(jìn) 一步包括在預(yù)定義的時間段,利用所有本地爭用計(jì)數(shù)器的當(dāng)前值更新所述 全局爭用計(jì)數(shù)器。
12. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,維護(hù)全局爭用計(jì)數(shù)器進(jìn) 一步包括在預(yù)定義的時間段,只用自從前一次更新以來更改的本地爭用計(jì) 數(shù)器的值更新所述全局爭用計(jì)數(shù)器。
全文摘要
說明了用于跟蹤并行計(jì)算機(jī)的點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的操作組的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用的方法、設(shè)備以及產(chǎn)品。在本發(fā)明的實(shí)施例中,每一個計(jì)算節(jié)點(diǎn)都通過鏈路連接到點(diǎn)對點(diǎn)數(shù)據(jù)通信網(wǎng)絡(luò)中的相鄰計(jì)算節(jié)點(diǎn)。根據(jù)本發(fā)明的實(shí)施例的跟蹤網(wǎng)絡(luò)爭用包括,通過操作組中的每一個計(jì)算節(jié)點(diǎn)上的網(wǎng)絡(luò)爭用模塊,維護(hù)每一個計(jì)算節(jié)點(diǎn)的本地爭用計(jì)數(shù)器,每一個本地爭用計(jì)數(shù)器都表示從計(jì)算節(jié)點(diǎn)發(fā)出的計(jì)算節(jié)點(diǎn)之間的鏈路上的網(wǎng)絡(luò)爭用;以及維護(hù)全局爭用計(jì)數(shù)器,所述全局爭用計(jì)數(shù)器表示操作組中的計(jì)算節(jié)點(diǎn)之間的所有鏈路上的當(dāng)前網(wǎng)絡(luò)爭用。
文檔編號H04L12/56GK101459600SQ20081017778
公開日2009年6月17日 申請日期2008年11月20日 優(yōu)先權(quán)日2007年12月13日
發(fā)明者A·彼得斯, B·A·斯瓦茨, B·E·史密斯, C·J·阿奇 申請人:國際商業(yè)機(jī)器公司