專利名稱:在并行計(jì)算機(jī)數(shù)據(jù)通信網(wǎng)絡(luò)中定位硬件故障的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理,更具體地,本發(fā)明涉及用于在并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中定位硬件故障的方法、設(shè)備和產(chǎn)品。
背景技術(shù):
1948年的EDVAC計(jì)算機(jī)系統(tǒng)的開發(fā)經(jīng)常被引證為計(jì)算機(jī)時(shí)代的開端。從那時(shí)起,計(jì)算機(jī)系統(tǒng)已經(jīng)演化為極端復(fù)雜的裝置。現(xiàn)在的計(jì)算機(jī)比諸如EDVAC之類的早期系統(tǒng)復(fù)雜得多。計(jì)算機(jī)系統(tǒng)典型地包括硬件和軟件組成部分、應(yīng)用程序、操作系統(tǒng)、處理器、總線、存儲(chǔ)器、輸入/輸出裝置等等的組合。隨著半導(dǎo)體處理和計(jì)算機(jī)架構(gòu)的進(jìn)步促使計(jì)算機(jī)的性能不斷變強(qiáng),更加復(fù)雜的計(jì)算機(jī)軟件已經(jīng)演化來利用硬件的更高性能的優(yōu)點(diǎn),從而導(dǎo)致現(xiàn)在的計(jì)算機(jī)系統(tǒng)比數(shù)年之前要強(qiáng)大的多。
并行計(jì)算是經(jīng)歷了進(jìn)步的計(jì)算機(jī)技術(shù)領(lǐng)域。并行計(jì)算是在多個(gè)處理器上同時(shí)執(zhí)行相同的任務(wù)(分解和特殊適應(yīng)),以便更快地獲得結(jié)果。并行計(jì)算基于解決問題的處理通??梢员环譃楦〉娜蝿?wù)這一事實(shí),可以根據(jù)一些諧調(diào)來同時(shí)執(zhí)行它們。
并行計(jì)算機(jī)執(zhí)行并行算法??梢詫⒉⑿兴惴ǚ纸鈦碓诙鄠€(gè)不同的處理裝置上一次執(zhí)行其一部分,然后在結(jié)束時(shí)將它們放回在一起(put back together)來獲得數(shù)據(jù)處理結(jié)果。某些算法容易分為多個(gè)部分。例如,通過將數(shù)字的子集分配給每個(gè)可用處理器,然后將正結(jié)果列表放回在一起,來完成分解檢查從1到10萬(wàn)中所有的數(shù)來發(fā)現(xiàn)哪些數(shù)是素?cái)?shù)的工作。在本說明書中,將執(zhí)行并行程序的獨(dú)立部分的多處理裝置稱為‘計(jì)算節(jié)點(diǎn)’。并行計(jì)算機(jī)由計(jì)算節(jié)點(diǎn)和包括例如輸入/輸出(‘I/O’)節(jié)點(diǎn)和服務(wù)節(jié)點(diǎn)的其它處理節(jié)點(diǎn)組成。
由于現(xiàn)代化處理器工作的方式的緣故,而經(jīng)由并行算法比經(jīng)由串行(非并行)算法更快地執(zhí)行某些種類的大計(jì)算任務(wù),因此并行算法是非常有價(jià)值的。構(gòu)建具有單一快速處理器的計(jì)算機(jī)遠(yuǎn)比構(gòu)建具有多個(gè)慢處理器、但是具有相同吞吐量的計(jì)算機(jī)要難。還存在對(duì)于串行處理器的潛在速度的特定理論極限。另一方面,每個(gè)并行算法具有串行部分,所以并行算法具有飽和點(diǎn)。在該點(diǎn)之后,添加更多的處理器并不能獲得更大的吞吐量,而是僅僅增加開銷和成本。
還設(shè)計(jì)并行算法來在并行計(jì)算機(jī)的節(jié)點(diǎn)間優(yōu)化一個(gè)或多個(gè)資源的數(shù)據(jù)通信需求。存在兩種并行處理器通信的方式,共享存儲(chǔ)器或消息傳遞(passing)。共享存儲(chǔ)器處理需要用于數(shù)據(jù)的額外鎖存,并且強(qiáng)加額外的處理器和總線周期的開銷,并且還串行化算法的某些部分。
消息傳遞使用高速數(shù)據(jù)通信網(wǎng)絡(luò)和消息緩沖器,但是該通信增加數(shù)據(jù)通信網(wǎng)絡(luò)上的傳送開銷和需要額外的用于消息緩沖器的存儲(chǔ)器,以及節(jié)點(diǎn)之間的數(shù)據(jù)通信的延遲。雖然并行計(jì)算機(jī)的設(shè)計(jì)使用特殊設(shè)計(jì)的數(shù)據(jù)通信鏈路,使得通信開銷很小,但是并行算法決定通信量。
許多數(shù)據(jù)通信網(wǎng)絡(luò)架構(gòu)被用于并行計(jì)算機(jī)的節(jié)點(diǎn)間的消息傳遞。例如,可以將網(wǎng)絡(luò)中的計(jì)算節(jié)點(diǎn)組織為‘環(huán)狀(torus)’或‘網(wǎng)狀(mesh)’。此外,可以將網(wǎng)絡(luò)中的計(jì)算節(jié)點(diǎn)組織為樹。環(huán)狀網(wǎng)絡(luò)使用環(huán)繞鏈路連接在三維網(wǎng)狀結(jié)構(gòu)中的節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)通過該環(huán)狀網(wǎng)絡(luò)連接到其六個(gè)鄰居,而在網(wǎng)狀結(jié)構(gòu)中由其x、y、z坐標(biāo)尋址每個(gè)節(jié)點(diǎn)。在樹網(wǎng)絡(luò)中,將節(jié)點(diǎn)典型地連接到二元樹每個(gè)節(jié)點(diǎn)具有父節(jié)點(diǎn)和兩個(gè)子節(jié)點(diǎn)(雖然根據(jù)硬件配置,某些節(jié)點(diǎn)可能僅有零或一個(gè)子節(jié)點(diǎn))。在使用環(huán)狀和樹網(wǎng)絡(luò)的計(jì)算機(jī)中,通常使用分離的路由電路、分離的物理鏈路和分離的消息緩沖器來相互獨(dú)立地實(shí)現(xiàn)兩個(gè)網(wǎng)絡(luò)。
環(huán)狀網(wǎng)絡(luò)在幾何上有助于點(diǎn)對(duì)點(diǎn)進(jìn)行診斷,但是樹網(wǎng)絡(luò)通常在點(diǎn)對(duì)點(diǎn)通信方面效率較低。然而,樹網(wǎng)絡(luò)對(duì)于其中所有計(jì)算節(jié)點(diǎn)同時(shí)參與的特定集合操作、消息傳遞操作提供高帶寬和低延遲。由于數(shù)千個(gè)節(jié)點(diǎn)可以參與并行計(jì)算機(jī)的集合操作,因此很難定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障。
發(fā)明內(nèi)容
公開了用于定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的方法、設(shè)備和計(jì)算機(jī)程序。這樣的并行計(jì)算機(jī)包括多個(gè)計(jì)算節(jié)點(diǎn)和與計(jì)算節(jié)點(diǎn)耦合來進(jìn)行數(shù)據(jù)通信并將計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò)。定位硬件故障包括將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)具有將該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件(suite);和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為具有從該父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
本發(fā)明的以上和其它目的、特征和優(yōu)點(diǎn)將從下面的本發(fā)明的示例性實(shí)施例的更加具體的描述中變得更加清楚,其中在附圖中圖解了這些實(shí)施例,并且在附圖中,相同的附圖標(biāo)記通常表示本發(fā)明的示例性實(shí)施例的相同部分。
圖1圖解根據(jù)本發(fā)明實(shí)施例的用于計(jì)算機(jī)定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的示例性系統(tǒng)。
圖2闡明根據(jù)本發(fā)明的實(shí)施例的用于定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)的硬件故障的示例性計(jì)算節(jié)點(diǎn)的方框圖。
圖3A圖解在根據(jù)本發(fā)明實(shí)施例的定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的系統(tǒng)中有用的示例性點(diǎn)對(duì)點(diǎn)適配器。
圖3B圖解在根據(jù)本發(fā)明實(shí)施例的定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的系統(tǒng)中有用的示例性集合操作適配器。
圖4圖解針對(duì)點(diǎn)對(duì)點(diǎn)操作優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)。
圖5圖解針對(duì)集合操作優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)。
圖6圖解根據(jù)本發(fā)明實(shí)施例的定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的示例性方法的流程圖。
圖7圖解根據(jù)本發(fā)明實(shí)施例的定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的進(jìn)一步示例性方法的流程圖。
圖8圖解根據(jù)本發(fā)明實(shí)施例的定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的進(jìn)一步示例性方法的流程圖。
具體實(shí)施例方式
將參照附圖(從圖1開始)描述根據(jù)本發(fā)明實(shí)施例的用于在并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中定位硬件錯(cuò)誤的示例性方法、設(shè)備和計(jì)算機(jī)程序。圖1圖解根據(jù)本發(fā)明實(shí)施例的用于定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的示例性系統(tǒng)。圖1的系統(tǒng)包括并行計(jì)算機(jī)100、以數(shù)據(jù)存儲(chǔ)器裝置的形式用于計(jì)算機(jī)的非易失性處理器118、以打印機(jī)形式用于計(jì)算機(jī)的輸出裝置120和以計(jì)算機(jī)終端形式用于計(jì)算機(jī)的輸入/輸出裝置122。在圖1的實(shí)例中的并行計(jì)算機(jī)100包括多個(gè)計(jì)算節(jié)點(diǎn)102。
通過幾個(gè)獨(dú)立的數(shù)據(jù)通信網(wǎng)絡(luò)來耦合計(jì)算節(jié)點(diǎn)102以進(jìn)行數(shù)據(jù)通信,其中這些網(wǎng)絡(luò)包括高速以太網(wǎng)網(wǎng)絡(luò)174、聯(lián)合測(cè)試動(dòng)作組(‘JTAG’)網(wǎng)絡(luò)104、集合操作網(wǎng)絡(luò)(collective operation network)106和點(diǎn)對(duì)點(diǎn)操作網(wǎng)絡(luò)108。集合操作網(wǎng)絡(luò)106是耦合用于數(shù)據(jù)通信的計(jì)算節(jié)點(diǎn)并將計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò)。使用計(jì)算節(jié)點(diǎn)102間的數(shù)據(jù)通信鏈路來實(shí)現(xiàn)每個(gè)數(shù)據(jù)通信網(wǎng)絡(luò)。如在說明書中的下述部分中所詳細(xì)描述的那樣,圖1的根據(jù)本發(fā)明實(shí)施例的系統(tǒng)通過下列步驟一般地操作來定位硬件故障將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)具有該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件(suite);和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
除了計(jì)算節(jié)點(diǎn)之外,計(jì)算機(jī)100還包括通過數(shù)據(jù)通信網(wǎng)絡(luò)174之一耦合到計(jì)算節(jié)點(diǎn)102的輸入/輸出(‘I/O’)節(jié)點(diǎn)110、114。I/O節(jié)點(diǎn)110、114再計(jì)算節(jié)點(diǎn)102和I/O裝置118、120、122之間提供I/O服務(wù)。I/O節(jié)點(diǎn)110、114通過局域網(wǎng)(‘LAN’)130與數(shù)據(jù)通信I/O裝置118、120、122連接,以進(jìn)行數(shù)據(jù)通信。計(jì)算機(jī)100還包括通過網(wǎng)絡(luò)104之一耦合到計(jì)算節(jié)點(diǎn)的服務(wù)節(jié)點(diǎn)116。服務(wù)節(jié)點(diǎn)116提供對(duì)多個(gè)計(jì)算節(jié)點(diǎn)公用的服務(wù),將程序裝載在計(jì)算節(jié)點(diǎn)中,在計(jì)算節(jié)點(diǎn)上開始程序執(zhí)行,在計(jì)算節(jié)點(diǎn)上取回程序操作的結(jié)果等等。服務(wù)節(jié)點(diǎn)116運(yùn)行服務(wù)應(yīng)用程序124,并且通過在計(jì)算機(jī)終端122上運(yùn)行的服務(wù)應(yīng)用程序接口126與用戶128通信。
在缺陷鏈路周圍路由通信可以是點(diǎn)對(duì)點(diǎn)或集合操作的一部分,并且當(dāng)發(fā)生周圍路由(routing around)時(shí),可能或者可能不對(duì)有效操作優(yōu)化通過其在缺陷鏈路周圍路由通信數(shù)據(jù)的第二網(wǎng)絡(luò)。如果作為針對(duì)點(diǎn)對(duì)點(diǎn)操作優(yōu)化過的網(wǎng)絡(luò)(諸如環(huán)狀)中的點(diǎn)對(duì)點(diǎn)操作的一部分,發(fā)生在缺陷鏈路周圍的路由,則通過其在缺陷鏈路周圍路由數(shù)據(jù)分組的第二網(wǎng)絡(luò)可能是針對(duì)集合操作而不是點(diǎn)對(duì)點(diǎn)操作優(yōu)化過的網(wǎng)絡(luò)(諸如集合樹網(wǎng)絡(luò))。如果作為針對(duì)集合操作優(yōu)化的網(wǎng)絡(luò)(諸如樹網(wǎng)絡(luò))中的集合操作的一部分,發(fā)生在缺陷鏈路周圍的路由,則通過其在缺陷鏈路周圍路由數(shù)據(jù)分組的第二網(wǎng)絡(luò)可能是針對(duì)點(diǎn)對(duì)點(diǎn)操作而不是集合操作優(yōu)化過的網(wǎng)絡(luò)(諸如集合環(huán)狀網(wǎng)絡(luò))。
集合操作是由‘多個(gè)’計(jì)算節(jié)點(diǎn)或計(jì)算節(jié)點(diǎn)‘組’中的所有計(jì)算節(jié)點(diǎn)同時(shí)(即,幾乎在同一時(shí)間)執(zhí)行的操作、消息傳遞計(jì)算機(jī)程序指令。這樣的多個(gè)計(jì)算節(jié)點(diǎn)或計(jì)算節(jié)點(diǎn)組可以包括并行計(jì)算機(jī)(100)中的所有計(jì)算節(jié)點(diǎn)或所有計(jì)算節(jié)點(diǎn)的子集。在MPI術(shù)語(yǔ)中,可以將這樣的‘多個(gè)’或‘組’定義為‘通信器(communicator)’。
‘MPI’指的是‘消息傳遞接口’、現(xiàn)有技術(shù)并行通信庫(kù)和用于在并行計(jì)算機(jī)上進(jìn)行數(shù)據(jù)通信的計(jì)算機(jī)程序命令的模塊??梢愿鶕?jù)本發(fā)明實(shí)施例改善來定位硬件故障的現(xiàn)有技術(shù)并行通信庫(kù)的實(shí)例包括MPI和‘并行虛擬機(jī)’(‘PVM’)庫(kù)。由Tennessee大學(xué)、Oak Ridge國(guó)家實(shí)驗(yàn)室和Emory大學(xué)開發(fā)了PVM。MPI由MPI論壇發(fā)布,該公開組織具有來自定義和維護(hù)MPI標(biāo)準(zhǔn)的許多組織的代表。在寫本說明書時(shí)MPI此時(shí)是用于在分布式存儲(chǔ)器并行計(jì)算機(jī)上運(yùn)行并行程序的計(jì)算節(jié)點(diǎn)間進(jìn)行通信的實(shí)際標(biāo)準(zhǔn)。雖然使用MPI本身不是本發(fā)明的要求或限制,但是為了便于解釋,本說明書有時(shí)使用MPI術(shù)語(yǔ)。
集合操作由或多或少并行執(zhí)行的多個(gè)點(diǎn)對(duì)點(diǎn)消息(依賴于操作和內(nèi)部算法)組成,并且包含在計(jì)算節(jié)點(diǎn)的給定組(即,在給定MPI通信器中)運(yùn)行的所有進(jìn)程。在該組中每個(gè)計(jì)算節(jié)點(diǎn)上的每個(gè)進(jìn)程必須大約同時(shí)調(diào)用或執(zhí)行相同的集合操作。由于在許多獨(dú)立的物理計(jì)算節(jié)點(diǎn)上運(yùn)行的許多進(jìn)程不能完全同時(shí)全部一起做任何事,因此將同時(shí)性描述為大約。并行通信庫(kù)提供函數(shù)來支持同步。在MPI實(shí)例中,這樣的同步函數(shù)是‘閘程序(barrier)’例程。例如,為了同步,在組中所有計(jì)算節(jié)點(diǎn)上的所有進(jìn)程調(diào)用MPI_barrier(),然后所有進(jìn)程等待直到所有進(jìn)程到達(dá)執(zhí)行中的相同點(diǎn)為止。然后以基本上同步的方式執(zhí)行繼續(xù)。
大多數(shù)集合操作是以下四個(gè)基本操作的變型或組合廣播、收集、分散和減少(reduce)。在廣播操作中,所有進(jìn)程指定相同的根進(jìn)程,將發(fā)送該進(jìn)程的緩沖器內(nèi)容。除了根以外的進(jìn)程指定接收緩沖器。在該操作后,所有緩沖器包括來自根進(jìn)程的消息。
與廣播操作類似,分散操作也是1對(duì)多集合操作。所有進(jìn)程指定相同接收計(jì)數(shù)。發(fā)送參數(shù)僅對(duì)根進(jìn)程有意義,其緩沖器實(shí)際包含給定數(shù)據(jù)類型的sendcount(發(fā)送計(jì)數(shù))*N個(gè)單元(element),其中N是計(jì)算節(jié)點(diǎn)的給定組中的進(jìn)程數(shù)。將相等地分割發(fā)送緩沖器并分散到所有進(jìn)程(包括其自身)。每個(gè)計(jì)算節(jié)點(diǎn)被分配了連續(xù)的標(biāo)識(shí)符(被稱為‘等級(jí)’)。在該操作后,根已經(jīng)以升等級(jí)順序?qū)endcount個(gè)數(shù)據(jù)單元發(fā)送到每個(gè)進(jìn)程。等級(jí)0從發(fā)送緩沖器接收第一sendcount個(gè)數(shù)據(jù)單元。等級(jí)1從發(fā)送緩沖器接收第二sendcount個(gè)數(shù)據(jù)單元,依此類推。
收集操作是多對(duì)1集合操作,其與分散操作的描述完全相反。也就是,收集是多對(duì)1集合操作,其中從經(jīng)分級(jí)的計(jì)算節(jié)點(diǎn)將數(shù)據(jù)類型的單元收集到根節(jié)點(diǎn)的接收緩沖器。
約簡(jiǎn)操作也是多對(duì)1集合操作,其包括在兩個(gè)數(shù)據(jù)單元上執(zhí)行的算術(shù)或邏輯函數(shù)。所有進(jìn)程指定相同的‘count(計(jì)數(shù))’和相同的算術(shù)或邏輯函數(shù)。在減少后,所有進(jìn)程已經(jīng)將count個(gè)數(shù)據(jù)單元從計(jì)算節(jié)點(diǎn)上它們的發(fā)送緩沖器發(fā)送到根節(jié)點(diǎn)上的根進(jìn)程。在約簡(jiǎn)操作中,通過算術(shù)或邏輯操作以配對(duì)方式(pair-wise)組合來自對(duì)應(yīng)的發(fā)送緩沖器位置的數(shù)據(jù)單元,以得到根進(jìn)程的接收緩沖器中的單一對(duì)應(yīng)的單元??梢栽谶\(yùn)行時(shí)定義應(yīng)用特定的約簡(jiǎn)操作。并行通信庫(kù)可以支持預(yù)定的操作。例如,MPI提供下面預(yù)定的約簡(jiǎn)操作MPI_MAX 最大MPI_MIN 最小MPI_SUM 和MPI_PROD乘積MPI_LAND邏輯與MPI_BAND按位與MPI_LOR 邏輯或MPI_BOR 按位或MPI_LXOR邏輯異或MPI_BXOR按位異或組成圖1所示的示例性系統(tǒng)的節(jié)點(diǎn)、網(wǎng)絡(luò)和I/O裝置的配置僅是用于說明,而不是限制本發(fā)明。正如本領(lǐng)域技術(shù)人員所了解的那樣,根據(jù)本發(fā)明實(shí)施例的能夠定位硬件故障的數(shù)據(jù)處理系統(tǒng)可以包括圖1中未示出的額外的節(jié)點(diǎn)、網(wǎng)絡(luò)、裝置和架構(gòu)。在圖1的實(shí)例中的并行計(jì)算機(jī)100包括十六個(gè)計(jì)算節(jié)點(diǎn)102;根據(jù)本發(fā)明實(shí)施例的、能夠定位硬件故障的并行計(jì)算機(jī)有時(shí)包括數(shù)千個(gè)計(jì)算節(jié)點(diǎn)。本領(lǐng)域技術(shù)人員將理解,除了以太網(wǎng)和JTAG之外,在這樣的數(shù)據(jù)處理系統(tǒng)中的網(wǎng)絡(luò)可以支持許多數(shù)據(jù)通信協(xié)議,包括(例如)TCP(傳輸控制協(xié)議)、IP(因特網(wǎng)協(xié)議)以及其它。可以將本發(fā)明的各個(gè)實(shí)施例實(shí)現(xiàn)在除圖1所示的那些之外的各種硬件平臺(tái)上。
根據(jù)本發(fā)明實(shí)施例定位硬件故障一般被實(shí)現(xiàn)在包括多個(gè)計(jì)算節(jié)點(diǎn)的并行計(jì)算機(jī)上。事實(shí)上,這樣的計(jì)算機(jī)可以包括數(shù)千個(gè)這樣的計(jì)算節(jié)點(diǎn)。每個(gè)計(jì)算節(jié)點(diǎn)本身依次是由一個(gè)或多個(gè)計(jì)算機(jī)處理器、其自身的計(jì)算機(jī)存儲(chǔ)器和其自身輸入/輸出適配器組成的一種計(jì)算機(jī)。因此,為了進(jìn)一步描述,圖2圖解根據(jù)本發(fā)明的實(shí)施例的用于定位并行計(jì)算機(jī)中的數(shù)據(jù)通信網(wǎng)絡(luò)的硬件故障的示例性計(jì)算節(jié)點(diǎn)的方框圖。圖2的計(jì)算節(jié)點(diǎn)152包括至少一個(gè)計(jì)算機(jī)處理器164以及隨機(jī)存取存儲(chǔ)器(‘RAM’)156。處理器164通過高速存儲(chǔ)器總線154連接到RAM 156并通過總線適配器194和擴(kuò)展總線168連接到計(jì)算節(jié)點(diǎn)的其它組成部分。
存儲(chǔ)在RAM 156中的是應(yīng)用程序158,即計(jì)算機(jī)程序指令的模塊,包括用于使用并行算法執(zhí)行并行、用戶級(jí)數(shù)據(jù)處理的集合操作的指令。根據(jù)本發(fā)明實(shí)施例,應(yīng)用程序158包括計(jì)算機(jī)程序指令來通過下列步驟與并行計(jì)算機(jī)中的其它計(jì)算節(jié)點(diǎn)上的其它程序一起操作,以定位硬件故障將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)具有該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件(suite);和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父節(jié)點(diǎn)標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
還存儲(chǔ)在RAM 156中的是并行通信庫(kù)160,即,執(zhí)行計(jì)算節(jié)點(diǎn)間并行通信的計(jì)算機(jī)程序指令庫(kù),包括點(diǎn)對(duì)點(diǎn)操作以及集合操作。應(yīng)用程序158通過調(diào)用并行通信庫(kù)160中的軟件例程來執(zhí)行集合操作??梢允褂弥T如C編程語(yǔ)言之類的傳統(tǒng)編程語(yǔ)言,并且使用傳統(tǒng)編程方法來編寫在兩個(gè)獨(dú)立數(shù)據(jù)通信網(wǎng)絡(luò)的節(jié)點(diǎn)間發(fā)送和接收數(shù)據(jù)的并行通信例程,以從根據(jù)本發(fā)明實(shí)施例的用在定位硬件故障中的草稿(scratch)中開發(fā)并行通信例程庫(kù)。替代地,可以使用現(xiàn)有技術(shù)中的庫(kù)??梢葬槍?duì)根據(jù)本發(fā)明的實(shí)施例的定位硬件故障改善的現(xiàn)有技術(shù)并行通信庫(kù)的實(shí)例包括‘消息傳遞接口’(‘MPI’)庫(kù)和‘并行虛擬機(jī)’(‘PVM’)庫(kù)。然而它有了發(fā)展,為了根據(jù)本發(fā)明實(shí)施例定位硬件故障,通過下列步驟來改善并行通信庫(kù)160的并行通信例程以將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)具有該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件(suite);和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父節(jié)點(diǎn)標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
還存儲(chǔ)在RAM 156中的是操作系統(tǒng)162,即,用于應(yīng)用程序訪問計(jì)算節(jié)點(diǎn)的其它資源的計(jì)算機(jī)程序指令和例程的模塊。通常在并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)中的應(yīng)用程序和并行通信庫(kù)運(yùn)行執(zhí)行的單一線程,而沒有用戶登錄和安全問題,這是因?yàn)樵摼€程被授權(quán)來完全訪問節(jié)點(diǎn)的所有資源。因此,要由并行計(jì)算機(jī)中的計(jì)算節(jié)點(diǎn)上的操作系統(tǒng)執(zhí)行的任務(wù)的數(shù)量和復(fù)雜度要比使用同時(shí)運(yùn)行的多線程的串行計(jì)算機(jī)上的操作系統(tǒng)要小,而且更簡(jiǎn)單。此外,在圖2的計(jì)算節(jié)點(diǎn)152上沒有視頻I/O,這是降低操作系統(tǒng)需要的另一因素。因此與通用計(jì)算機(jī)的操作系統(tǒng)相比,該操作系統(tǒng)可以非常輕巧(lightweighted),即其簡(jiǎn)化版本,或者為在特定并行計(jì)算機(jī)上運(yùn)行而特地開發(fā)的操作系統(tǒng)。本領(lǐng)域技術(shù)人員將理解,可以有效地改進(jìn)、簡(jiǎn)化以用在計(jì)算節(jié)點(diǎn)中的操作系統(tǒng)包括UNIXTM、LinuxTM、Microsoft XPTM、AIXTM、IBM i5/OSTM等。
圖2的示例性計(jì)算節(jié)點(diǎn)152包括用于實(shí)現(xiàn)與并行計(jì)算機(jī)的其它節(jié)點(diǎn)通信的數(shù)個(gè)通信適配器172、176、180、188??梢酝ㄟ^RS 232連接、通過諸如USB之類的外部總線、通過諸如IP網(wǎng)絡(luò)之類的數(shù)據(jù)通信網(wǎng)絡(luò),并且以本領(lǐng)域技術(shù)人員所了解的其它方式來連續(xù)地執(zhí)行這樣的數(shù)據(jù)通信。通信適配器實(shí)現(xiàn)硬件級(jí)數(shù)據(jù)通信,一個(gè)計(jì)算機(jī)通過它直接或通過網(wǎng)絡(luò)向另一計(jì)算機(jī)發(fā)送數(shù)據(jù)通信??捎迷诟鶕?jù)本發(fā)明實(shí)施例的定位硬件故障的系統(tǒng)中的通信適配器的實(shí)例包括用于有線通信的調(diào)制解調(diào)器、用于有線網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE802.3)適配器和用于無線網(wǎng)絡(luò)通信的802.11b適配器。
在圖2的實(shí)例中的數(shù)據(jù)通信適配器包括將用于數(shù)據(jù)通信的實(shí)例計(jì)算節(jié)點(diǎn)152耦合到千兆比特以太網(wǎng)174的千兆比特以太網(wǎng)適配器172。千兆比特以太網(wǎng)是在IEEE 802.3標(biāo)準(zhǔn)中定義的網(wǎng)絡(luò)傳輸標(biāo)準(zhǔn),其提供每秒十億比特的數(shù)據(jù)率(一千兆比特)。千兆比特以太網(wǎng)是在多模式光線電纜、單一模式光纖電纜或非屏蔽雙絞線對(duì)上操作的以太網(wǎng)的變型。
在圖2的實(shí)例中的數(shù)據(jù)通信適配器包括將用于數(shù)據(jù)通信的實(shí)例計(jì)算節(jié)點(diǎn)152耦合到JTAG主電路178的JTAG從電路176。JTAG是用于被稱為標(biāo)準(zhǔn)測(cè)試接入端口和用于測(cè)試接入端口的邊界掃描架構(gòu)的IEEE 1149.1標(biāo)準(zhǔn)的總名稱,其中該架構(gòu)使用邊界掃描來測(cè)試印刷電路板。由于廣泛采用JTAG,因此在此時(shí),邊界掃描或多或少與JTAG同義。JTAG不僅用于印刷電路板,而且用于引導(dǎo)集成電路的邊界掃描,并且作為調(diào)試嵌入系統(tǒng)的機(jī)制使用,將方便的“后門”提供到系統(tǒng)中。圖2的實(shí)例計(jì)算節(jié)點(diǎn)可以是以下三種其典型地包括安裝在印刷電路板上的一個(gè)或多個(gè)集成電路,并且可以被實(shí)現(xiàn)為具有其自身處理器、其自身存儲(chǔ)器和其自身I/O能力的嵌入式系統(tǒng)。通過JTAG從電路176的JTAG邊界掃描可以有效地配置計(jì)算節(jié)點(diǎn)152中的處理器寄存器和存儲(chǔ)器,以用于根據(jù)本發(fā)明的實(shí)施例定位硬件故障。
在圖2的實(shí)例中的數(shù)據(jù)通信適配器包括將用于數(shù)據(jù)通信的實(shí)例計(jì)算節(jié)點(diǎn)152耦合到對(duì)于點(diǎn)對(duì)點(diǎn)消息傳遞操作為最佳的網(wǎng)絡(luò)108(諸如,配置為三維環(huán)狀或網(wǎng)狀的網(wǎng)絡(luò))的點(diǎn)對(duì)點(diǎn)適配器180。點(diǎn)對(duì)點(diǎn)適配器180通過六個(gè)雙向鏈路+x181、-x182、+y183、-y184、+z185和-z186來在三個(gè)通信軸x、y和z上以六個(gè)方向提供數(shù)據(jù)通信。
在圖2的實(shí)例中的數(shù)據(jù)通信適配器包括將用于數(shù)據(jù)通信的實(shí)例計(jì)算節(jié)點(diǎn)152耦合到對(duì)于集合消息傳遞操作為最佳的網(wǎng)絡(luò)106(諸如,配置為二元樹的網(wǎng)絡(luò))的集合操作適配器188。集合操作適配器188通過三個(gè)雙向鏈路兩個(gè)到子節(jié)點(diǎn)190,而一個(gè)到父節(jié)點(diǎn)192,來提供數(shù)據(jù)通信。
實(shí)例計(jì)算節(jié)點(diǎn)152包括兩個(gè)算邏單元(‘ALU’)。ALU 166是處理器164的部件,并且獨(dú)立的ALU 170專用于集合操作適配器188的排他使用,以用于執(zhí)行約簡(jiǎn)操作的算術(shù)和邏輯函數(shù)。在并行通信庫(kù)160中的減少例程的計(jì)算機(jī)程序指令可以將用于算術(shù)和邏輯函數(shù)的指令鎖存在指令寄存器169中。例如,當(dāng)約簡(jiǎn)操作的算術(shù)和邏輯函數(shù)是‘和’或‘邏輯或’時(shí),集合適配器188可以通過使用處理器164中的ALU 166,或者使用專用ALU 170(通??斓枚?來執(zhí)行算術(shù)和邏輯運(yùn)算。
為了進(jìn)一步解釋,圖3A圖解在根據(jù)本發(fā)明實(shí)施例的定位硬件故障的系統(tǒng)中有用的示例性點(diǎn)對(duì)點(diǎn)適配器180。設(shè)計(jì)點(diǎn)對(duì)點(diǎn)適配器180來用在針對(duì)點(diǎn)對(duì)點(diǎn)操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)中,即以三維環(huán)狀或網(wǎng)狀組織計(jì)算節(jié)點(diǎn)的網(wǎng)絡(luò)。在圖3A的實(shí)例中的點(diǎn)對(duì)點(diǎn)適配器180通過四個(gè)單向數(shù)據(jù)通信鏈路沿x軸將數(shù)據(jù)通信提供到-x軸方向182中的下一節(jié)點(diǎn)并提供來自該節(jié)點(diǎn)的數(shù)據(jù)通信,并且提供到+x軸方向181中的下一節(jié)點(diǎn)并提供來自該節(jié)點(diǎn)的數(shù)據(jù)通信。點(diǎn)對(duì)點(diǎn)適配器180還通過四個(gè)單向數(shù)據(jù)通信鏈路沿y軸將數(shù)據(jù)通信提供到-y軸方向184中的下一節(jié)點(diǎn)并提供來自該節(jié)點(diǎn)的數(shù)據(jù)通信,并且提供到+y軸方向183中的下一節(jié)點(diǎn)并提供來自該節(jié)點(diǎn)的數(shù)據(jù)通信。點(diǎn)對(duì)點(diǎn)適配器180還通過四個(gè)單向數(shù)據(jù)通信鏈路沿z軸將數(shù)據(jù)通信提供到-z軸方向186中的下一節(jié)點(diǎn)并提供來自該節(jié)點(diǎn)的數(shù)據(jù)通信,并且提供到+z軸方向185中的下一節(jié)點(diǎn)并提供來自該節(jié)點(diǎn)的數(shù)據(jù)通信。
為了進(jìn)一步解釋,圖3B圖解在根據(jù)本發(fā)明實(shí)施例的定位硬件故障的系統(tǒng)中有用的示例性集合操作適配器188。集合操作適配器188設(shè)計(jì)來用在針對(duì)集合操作優(yōu)化的網(wǎng)絡(luò)中,即以二元樹組織并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)的網(wǎng)絡(luò)。在圖3B的實(shí)例中集合操作適配器188通過四個(gè)單向數(shù)據(jù)通信鏈路190將數(shù)據(jù)提供到兩個(gè)子節(jié)點(diǎn),并且提供來自這兩個(gè)子節(jié)點(diǎn)的數(shù)據(jù)通信。集合操作適配器188還通過兩個(gè)單向數(shù)據(jù)通信鏈路192將數(shù)據(jù)通信提供到父節(jié)點(diǎn),并且提供來自該父節(jié)點(diǎn)的數(shù)據(jù)通信。
為了進(jìn)一步解釋,圖4圖解針對(duì)點(diǎn)對(duì)點(diǎn)操作優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)106。在圖4的實(shí)例中,點(diǎn)表示并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)102,并且點(diǎn)之間的虛線表示計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路。使用與針對(duì)圖3A中的實(shí)例所示的適配器類似的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通信適配器來實(shí)現(xiàn)數(shù)據(jù)通信鏈路,其中數(shù)據(jù)通信鏈路在三個(gè)軸x、y和z的六個(gè)方向+x181、-x182、+y183、-y184、+z185和-z186上。由針對(duì)點(diǎn)對(duì)點(diǎn)優(yōu)化的該數(shù)據(jù)通信網(wǎng)絡(luò)來將鏈路和計(jì)算節(jié)點(diǎn)組織為三維網(wǎng)狀105結(jié)構(gòu),這些網(wǎng)狀結(jié)構(gòu)圍繞來形成環(huán)狀107結(jié)構(gòu)。在環(huán)狀結(jié)構(gòu)中的每個(gè)計(jì)算節(jié)點(diǎn)具有在環(huán)狀結(jié)構(gòu)中由x、y、z坐標(biāo)位置唯一指定的位置。為了清楚解釋,僅使用27個(gè)計(jì)算節(jié)點(diǎn)圖示圖4的數(shù)據(jù)通信網(wǎng)絡(luò),但是讀者應(yīng)該理解,用于根據(jù)本發(fā)明實(shí)施例定位硬件故障的、針對(duì)點(diǎn)對(duì)點(diǎn)操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)可以僅包含幾個(gè)計(jì)算節(jié)點(diǎn),或者可以包含數(shù)千個(gè)計(jì)算節(jié)點(diǎn)。
為了進(jìn)一步解釋,圖5圖解針對(duì)集合操作優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)。圖5的實(shí)例數(shù)據(jù)通信網(wǎng)絡(luò)將計(jì)算節(jié)點(diǎn)組織為樹。在圖5的實(shí)例中,點(diǎn)表示并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)102,并且點(diǎn)之間的虛線表示計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路。使用與針對(duì)圖3B中的實(shí)例所示的適配器類似的集合操作數(shù)據(jù)通信適配器實(shí)現(xiàn)數(shù)據(jù)通信鏈路,其中每個(gè)節(jié)點(diǎn)典型地將數(shù)據(jù)通信提供到兩個(gè)子節(jié)點(diǎn)并提供來自該兩個(gè)子節(jié)點(diǎn)的數(shù)據(jù)通信,并且將數(shù)據(jù)通信提供到父節(jié)點(diǎn)并提供來自父節(jié)點(diǎn)的數(shù)據(jù)通信(有一些例外)。在二元樹中的節(jié)點(diǎn)可以被特征化為根節(jié)點(diǎn)(202)、分支節(jié)點(diǎn)204和葉節(jié)點(diǎn)206。根節(jié)點(diǎn)202具有兩個(gè)子節(jié)點(diǎn),但是沒有父節(jié)點(diǎn)。每個(gè)葉節(jié)點(diǎn)206具有父節(jié)點(diǎn),但是葉節(jié)點(diǎn)不具有子節(jié)點(diǎn)。每個(gè)分支節(jié)點(diǎn)204具有父節(jié)點(diǎn)和兩個(gè)子節(jié)點(diǎn)。由此,由該針對(duì)集合操作優(yōu)化過的數(shù)據(jù)通信網(wǎng)絡(luò)將鏈路和計(jì)算節(jié)點(diǎn)組織為二元樹108。為了解釋清楚,僅使用31個(gè)計(jì)算節(jié)點(diǎn)圖示圖5的數(shù)據(jù)通信網(wǎng)絡(luò),但是讀者應(yīng)該理解,用于根據(jù)本發(fā)明實(shí)施例定位硬件故障的、針對(duì)集合操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)可以僅包含幾個(gè)計(jì)算節(jié)點(diǎn),或者可以包含數(shù)千個(gè)計(jì)算節(jié)點(diǎn)。
在圖5的實(shí)例中,向樹中的每個(gè)節(jié)點(diǎn)分配被稱為‘等級(jí)’250的單元標(biāo)識(shí)符。節(jié)點(diǎn)的等級(jí)唯一標(biāo)識(shí)節(jié)點(diǎn)在樹網(wǎng)絡(luò)中的位置,以用于樹網(wǎng)絡(luò)中的點(diǎn)對(duì)點(diǎn)操作和集合操作。在該實(shí)例中,將等級(jí)分配為從0開始的整數(shù),其中將0分配給根節(jié)點(diǎn)202,1分配給樹的第二層的第一節(jié)點(diǎn),2分配給樹的第二層的第二節(jié)點(diǎn),3分配給樹的第三層的第一節(jié)點(diǎn),4分配給樹的第三層的第二節(jié)點(diǎn),等等。為了便于說明,僅在這里顯示樹的頭三層的等級(jí),但是在樹網(wǎng)絡(luò)中所有的計(jì)算節(jié)點(diǎn)都被分配了唯一等級(jí)。
為了進(jìn)一步解釋,圖6圖解根據(jù)本發(fā)明實(shí)施例的定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的示例性方法的流程圖。在包括多個(gè)計(jì)算節(jié)點(diǎn)和耦合用于通信的計(jì)算節(jié)點(diǎn)并將計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò)108的并行計(jì)算機(jī)100中執(zhí)行圖6的方法。圖6中的點(diǎn)表示計(jì)算節(jié)點(diǎn),而點(diǎn)之間的虛線表示計(jì)算節(jié)點(diǎn)間的數(shù)據(jù)通信鏈路。使用節(jié)點(diǎn)的等級(jí)圖解在圖6中的每個(gè)計(jì)算節(jié)點(diǎn),該等級(jí)是從0開始一直到6的整數(shù)。為了便于說明,這里僅顯示樹的頭三層的等級(jí),但是向樹網(wǎng)絡(luò)中的所有計(jì)算節(jié)點(diǎn)分配了唯一等級(jí)。為了便于說明,僅使用6個(gè)計(jì)算節(jié)點(diǎn)圖解圖6的數(shù)據(jù)通信網(wǎng)絡(luò)108,但是讀者將認(rèn)識(shí)到,用于根據(jù)本發(fā)明實(shí)施例定位硬件故障的、針對(duì)集合操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)可以包含任意數(shù)量的計(jì)算節(jié)點(diǎn),即,僅僅幾個(gè)或數(shù)千個(gè)。
讀者將注意到,使用二元根,即所謂二元樹來組織圖6所示的樹網(wǎng)絡(luò)108,其中根節(jié)點(diǎn)和每個(gè)分支節(jié)點(diǎn)具有兩個(gè)子節(jié)點(diǎn)。然而,這里使用的二元根僅僅是為了便于解釋,而不是限制本發(fā)明。本領(lǐng)域技術(shù)人員應(yīng)該理解,在根據(jù)本發(fā)明實(shí)施例的、將計(jì)算節(jié)點(diǎn)組織為樹的并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中,這樣的網(wǎng)絡(luò)中的根節(jié)點(diǎn)和分支節(jié)點(diǎn)可以具有任意數(shù)量的子節(jié)點(diǎn)。在本說明書中,使用術(shù)語(yǔ)‘子節(jié)點(diǎn)’指示父節(jié)點(diǎn)的直接子節(jié)點(diǎn),而不是孫節(jié)點(diǎn)、曾孫節(jié)點(diǎn)等等。
圖6的方法包括將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(302)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn)。圖6的方法通常應(yīng)用程序?qū)⒀h(huán)的重復(fù)處理。因此在本實(shí)例中,通常第一個(gè)“下一”計(jì)算節(jié)點(diǎn)是整個(gè)樹網(wǎng)絡(luò)的根計(jì)算節(jié)點(diǎn),在本例中即節(jié)點(diǎn)0。然后,可以依次提取每個(gè)分支節(jié)點(diǎn)來作為要被標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn)的下一計(jì)算節(jié)點(diǎn)。
圖6的方法還包括為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(306)具有該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹318、320。在該實(shí)例中,節(jié)點(diǎn)1和節(jié)點(diǎn)2是子計(jì)算節(jié)點(diǎn),而節(jié)點(diǎn)0是父節(jié)點(diǎn)。子樹318是具有子計(jì)算節(jié)點(diǎn),即節(jié)點(diǎn)1作為其根節(jié)點(diǎn)的子測(cè)試樹,而子樹320是具有子計(jì)算節(jié)點(diǎn),即節(jié)點(diǎn)2作為其根節(jié)點(diǎn)的子測(cè)試樹。
圖6的方法還包括在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行(308)相同的測(cè)試套件(suite)326。在圖6的方法中,測(cè)試樹326由諸如廣播操作、分散操作、收集操作、全收集(allgather)操作、約簡(jiǎn)操作和全約簡(jiǎn)(allreduce)操作之類的多個(gè)并行計(jì)算集合操作組成。替代地,測(cè)試套件還可以包括在并行計(jì)算機(jī)上有效的所有集合操作,由此對(duì)整個(gè)樹網(wǎng)絡(luò)進(jìn)行徹底的訓(xùn)練。
在圖6的方法中,在每個(gè)子測(cè)試樹上運(yùn)行(308)相同測(cè)試套件326可以包括在所有子測(cè)試樹上同時(shí)運(yùn)行測(cè)試套件。例如,在使用改進(jìn)的MPI庫(kù)作為其并行通信庫(kù)的系統(tǒng)中,診斷方法的重復(fù)操作(iteration)的每個(gè)子樹可以被聲明通信器,并且可以在每個(gè)通信器上同時(shí)并行執(zhí)行測(cè)試套件的所有操作。
圖6的方法還包括如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(310)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。圖6的方法還包括在用于并行計(jì)算機(jī)的多個(gè)分組計(jì)算節(jié)點(diǎn)的循環(huán)中重復(fù)(312)執(zhí)行該方法的步驟。特別地,在圖6的實(shí)例中,該方法包括針對(duì)計(jì)算機(jī)中的多個(gè)分支計(jì)算節(jié)點(diǎn)重復(fù)(312)執(zhí)行該方法的步驟,直到測(cè)試套件對(duì)父計(jì)算節(jié)點(diǎn)失敗,或?qū)λ懈赣?jì)算節(jié)點(diǎn)的子計(jì)算節(jié)點(diǎn)上成功為止。該方法包括確定(327)重復(fù)的根計(jì)算節(jié)點(diǎn)是否使測(cè)試套件失敗,而如果根節(jié)點(diǎn)沒有失敗,則通過重復(fù)步驟將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn),為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試樹等等,以循環(huán)(312)回診斷應(yīng)用程序。
圖6的方法還包括確定(328)重復(fù)的根計(jì)算節(jié)點(diǎn)的所有子節(jié)點(diǎn)是否通過測(cè)試套件,而如果子節(jié)點(diǎn)失敗,則通過重復(fù)步驟將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn),為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件等等,以循環(huán)(312)回診斷應(yīng)用程序。因此,如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則圖6的方法將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(310)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。對(duì)父測(cè)試樹上測(cè)試套件失敗,而對(duì)所有子測(cè)試樹上成功的事實(shí)表示在該方法的當(dāng)前重復(fù)操作中父節(jié)點(diǎn)及其子節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路中存在硬件故障。在二元樹中,該結(jié)果定位在許多情況下(可能時(shí)數(shù)千個(gè)鏈路)的兩個(gè)數(shù)據(jù)鏈路內(nèi)的硬件故障。
讀者將認(rèn)識(shí)到,所述方法與樹結(jié)構(gòu)的遞歸掃描類似。簡(jiǎn)單講,可以將圖6的方法描述為·在‘頂端’樹(即具有其在節(jié)點(diǎn)0的根節(jié)點(diǎn)的計(jì)算節(jié)點(diǎn)的全局樹)上運(yùn)行測(cè)試套件。
·如果頂端樹失敗,則在兩個(gè)子樹上運(yùn)行測(cè)試套件,這兩個(gè)子樹之一具有節(jié)點(diǎn)1作為其根節(jié)點(diǎn),而另一個(gè)具有節(jié)點(diǎn)2作為其根節(jié)點(diǎn)。
·如果兩個(gè)子樹運(yùn)行沒有失敗,則故障位于節(jié)點(diǎn)0與其子節(jié)點(diǎn)1和2之間的兩個(gè)數(shù)據(jù)通信鏈路之一中。公知的硬件支持技術(shù)將很快顯示哪個(gè)鏈路故障。
·如果一個(gè)子樹失效,則忽略成功的子樹,并且關(guān)于故障子樹‘遞歸’回該方法的第一步。
·如果兩個(gè)子樹都失效,則關(guān)于兩個(gè)故障子樹‘遞歸’回該方法的第一步。
術(shù)語(yǔ)‘遞歸’僅用于解釋,而不是文字描述。同樣地,由于在該實(shí)例中的計(jì)算節(jié)點(diǎn)都在分離的、不具有共享存儲(chǔ)空間的獨(dú)立處理器上并行運(yùn)行相同的診斷應(yīng)用程序和相同的測(cè)試套件,因此在這里不實(shí)踐遞歸本身。然而,遞歸的思想將使本領(lǐng)域技術(shù)人員加深對(duì)該方法的印象,即重復(fù)地通過樹,逐節(jié)點(diǎn)訪問,將每個(gè)節(jié)點(diǎn)依次看作具有子節(jié)點(diǎn)的父測(cè)試樹的根節(jié)點(diǎn),而其每個(gè)子節(jié)點(diǎn)子擴(kuò)展(subtend)作為父測(cè)試樹的子樹的子測(cè)試樹。
為了進(jìn)一步解釋,圖7圖解根據(jù)本發(fā)明實(shí)施例定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的進(jìn)一步示例性方法的流程圖。圖7的方法類似于圖6的方法。與圖6的方法類似,在包括多個(gè)計(jì)算節(jié)點(diǎn)和耦合用于通信的計(jì)算節(jié)點(diǎn)并將計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò)108的并行計(jì)算機(jī)100中執(zhí)行圖7的方法。圖7中的點(diǎn)表示計(jì)算節(jié)點(diǎn),而點(diǎn)之間的虛線表示計(jì)算節(jié)點(diǎn)間的數(shù)據(jù)通信鏈路。使用被表示為數(shù)字整數(shù)的等級(jí)來圖解圖7中的每個(gè)計(jì)算節(jié)點(diǎn)。
圖7的方法包括下列步驟將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(302)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(306)具有該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹318、320;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行(308)相同的測(cè)試套件(suite)326;和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(310)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
然而,圖7的方法還包括針對(duì)計(jì)算機(jī)中的所有分支計(jì)算節(jié)點(diǎn)重復(fù)地(316)執(zhí)行該方法的步驟,并且記錄(314)測(cè)試套件針對(duì)父計(jì)算節(jié)點(diǎn)失敗,而針對(duì)所有父計(jì)算節(jié)點(diǎn)的子計(jì)算節(jié)點(diǎn)成功的每一實(shí)例。也就是,與圖6的方法不同,一旦標(biāo)識(shí)重復(fù)的父計(jì)算節(jié)點(diǎn)具有在父計(jì)算節(jié)點(diǎn)和子計(jì)算節(jié)點(diǎn)之間連接的缺陷鏈路,圖7的方法也不停止操作。相反,圖7的方法繼續(xù)操作,直到已經(jīng)測(cè)試了數(shù)據(jù)通信網(wǎng)絡(luò)的所有的分支節(jié)點(diǎn)為止。以這種方式,圖7的方法可以定位當(dāng)測(cè)試作為較大子樹一部分的子樹時(shí)沒有出現(xiàn),但是當(dāng)獨(dú)立測(cè)試子樹時(shí)出現(xiàn)的硬件故障。
為了進(jìn)一步描述,圖8圖解根據(jù)本發(fā)明實(shí)施例定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的進(jìn)一步示例性方法的流程圖。圖8的方法與圖6的方法類似。與圖6的方法類似,在包括多個(gè)計(jì)算節(jié)點(diǎn)和耦合用于通信的計(jì)算節(jié)點(diǎn)并將計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò)108的并行計(jì)算機(jī)100中執(zhí)行圖8的方法。圖8中的點(diǎn)表示計(jì)算節(jié)點(diǎn),而點(diǎn)之間的虛線表示計(jì)算節(jié)點(diǎn)間的數(shù)據(jù)通信鏈路。使用被表示為數(shù)字整數(shù)的等級(jí)來圖解圖8中的每個(gè)計(jì)算節(jié)點(diǎn)。
圖8的方法包括下列步驟,其每一步如圖6的方法所述那樣操作將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(302)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)(306)具有該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹318、320;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行(308)相同的測(cè)試套件(suite)326;和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
然而,圖8的方法還包括檢測(cè)(300)樹網(wǎng)絡(luò)的數(shù)據(jù)通信失敗的附加步驟。在該實(shí)例中,檢測(cè)(300)樹網(wǎng)絡(luò)的數(shù)據(jù)通信失敗是該方法的第一步驟。也就是,在該實(shí)例中,該方法首先檢測(cè)失敗,然后直接處理來定位引起失敗的故障。以這種方式,診斷應(yīng)用程序還可以報(bào)告引起失敗的硬件故障的位置,而不是一旦檢測(cè)到失敗就暫停計(jì)算機(jī)。例如,可以通過下面的MPI廣播以及收集操作來執(zhí)行檢測(cè)(300)樹網(wǎng)絡(luò)的數(shù)據(jù)通信失敗的步驟。在收集之后,根計(jì)算節(jié)點(diǎn)的接收緩沖器的每個(gè)單元應(yīng)該包含廣播數(shù)據(jù)的完全副本。如果即使一個(gè)不是這樣,該方法可以推斷已經(jīng)發(fā)生了數(shù)據(jù)通信失敗。
圖7的方法還包括標(biāo)識(shí)(324)從父計(jì)算節(jié)點(diǎn)連接的哪個(gè)鏈路是有缺陷的,其中該父節(jié)點(diǎn)被標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈路。該方法在處理過程中到此處已經(jīng)將硬件故障具體定位到數(shù)據(jù)通信網(wǎng)絡(luò)中的一個(gè)計(jì)算節(jié)點(diǎn)及其子節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路-可能的數(shù)千節(jié)點(diǎn)和鏈路中的一個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn)之間的鏈路。該標(biāo)識(shí)步驟表示定位存在故障的確切數(shù)據(jù)通信鏈路,其中該步驟標(biāo)識(shí)(324)從父計(jì)算節(jié)點(diǎn)連接的哪個(gè)鏈路是有缺陷的,而且該父節(jié)點(diǎn)被標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈路??梢酝ㄟ^本領(lǐng)域技術(shù)人員了解的任何公知樹網(wǎng)絡(luò)通信診斷工具(自動(dòng)或手動(dòng))來執(zhí)行標(biāo)識(shí)(324)從父計(jì)算節(jié)點(diǎn)連接的哪個(gè)鏈路是有缺陷的的步驟,其中該父節(jié)點(diǎn)被標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈路。
在用于定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的完全功能性計(jì)算機(jī)系統(tǒng)的上下文中描述了本發(fā)明的示例性實(shí)施例。然而,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,可以以放置在與合適的數(shù)據(jù)處理系統(tǒng)一起使用的信號(hào)承載媒體上的計(jì)算機(jī)程序產(chǎn)品來實(shí)施本發(fā)明。這樣的信號(hào)承載媒體可以是傳輸媒體或用于機(jī)器可讀信息的可記錄媒體,包括磁媒體、光媒體或其它合適的媒體??捎涗浢襟w的實(shí)例包括硬盤驅(qū)動(dòng)器或磁碟中的磁盤、用于光驅(qū)的緊湊盤、磁帶和其它本領(lǐng)域技術(shù)人員公知的媒體。傳輸媒體的實(shí)例包括用于語(yǔ)音通信的電話網(wǎng)絡(luò)和諸如EthernetTM和使用因特網(wǎng)協(xié)議和萬(wàn)維網(wǎng)通信的網(wǎng)絡(luò)之類的數(shù)字通信網(wǎng)絡(luò)。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到具有合適的編程裝置的任何計(jì)算機(jī)系統(tǒng)能夠執(zhí)行以程序產(chǎn)品實(shí)施的本發(fā)明的方法的步驟。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,雖然在說明書中描述的某些示例性實(shí)施例涉及在計(jì)算機(jī)硬件上安裝和執(zhí)行的軟件,然而,被實(shí)現(xiàn)為固件或硬件的替代實(shí)施例也在本發(fā)明的范圍內(nèi)。
從上面的描述中將理解可以對(duì)本發(fā)明的各個(gè)實(shí)施例做出修改和改進(jìn),而不背離本發(fā)明的宗旨。在該說明書中的描述僅是用于說明的目的,并且不意欲限制。僅由所附權(quán)利要求的語(yǔ)言限定本發(fā)明的范圍。
權(quán)利要求
1.一種定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的方法,該并行計(jì)算機(jī)包括多個(gè)計(jì)算節(jié)點(diǎn)和耦合用于數(shù)據(jù)通信的該多個(gè)計(jì)算節(jié)點(diǎn)并將該多個(gè)計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò),該方法包括針對(duì)并行計(jì)算機(jī)的多個(gè)分支計(jì)算節(jié)點(diǎn)重復(fù)執(zhí)行下面的步驟將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為該父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)具有將該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件;和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為具有從該父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
2.如權(quán)利要求1所述的方法,還包括針對(duì)計(jì)算機(jī)中的多個(gè)分支計(jì)算節(jié)點(diǎn)重復(fù)執(zhí)行該方法的步驟,直到測(cè)試套件對(duì)父計(jì)算節(jié)點(diǎn)失敗,而對(duì)所有父計(jì)算節(jié)點(diǎn)的子計(jì)算節(jié)點(diǎn)成功為止。
3.如權(quán)利要求1所述的方法,還包括針對(duì)該計(jì)算機(jī)中的所有分支計(jì)算節(jié)點(diǎn)重復(fù)執(zhí)行該方法的步驟;和記錄測(cè)試套件對(duì)父計(jì)算節(jié)點(diǎn)失敗,而對(duì)所有父計(jì)算節(jié)點(diǎn)的子計(jì)算節(jié)點(diǎn)成功的每一實(shí)例
4.如權(quán)利要求1所述的方法,其中測(cè)試套件還包括集合操作,該集合操作還包括廣播操作、分散操作、收集操作、全收集操作、約簡(jiǎn)操作和全約簡(jiǎn)操作。
5.如權(quán)利要求1所述的方法,其中測(cè)試套件還包括在并行計(jì)算機(jī)上有效的所有集合操作。
6.如權(quán)利要求1所述的方法,其中對(duì)每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件還包括對(duì)所有的子測(cè)試樹上同時(shí)運(yùn)行該測(cè)試套件。
7.如權(quán)利要求1所述的方法,還包括檢測(cè)樹網(wǎng)絡(luò)的數(shù)據(jù)通信失敗。
8.如權(quán)利要求1所述的方法,還包括標(biāo)識(shí)從父計(jì)算節(jié)點(diǎn)連接的哪個(gè)鏈路是有缺陷的,其中該父計(jì)算節(jié)點(diǎn)被標(biāo)識(shí)為具有從父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈路。
9.一種定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障的設(shè)備,該設(shè)備包括并行計(jì)算機(jī),該并行計(jì)算機(jī)包括多個(gè)計(jì)算節(jié)點(diǎn)和耦合用于數(shù)據(jù)通信的該多個(gè)計(jì)算節(jié)點(diǎn)并將該多個(gè)計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò),該設(shè)備還包括計(jì)算機(jī)處理器、可操作地耦合到該計(jì)算機(jī)處理器的計(jì)算機(jī)存儲(chǔ)器,而該計(jì)算機(jī)存儲(chǔ)器中放有能夠執(zhí)行下列步驟的計(jì)算機(jī)程序指令將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為該父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)具有將該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件;和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將該父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為具有從該父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
10.如權(quán)利要求9所述的設(shè)備,其中測(cè)試套件還包括集合操作,該集合操作還包括廣播操作、分散操作、收集操作、全收集操作、約簡(jiǎn)操作和全約簡(jiǎn)操作。
11.如權(quán)利要求9所述的設(shè)備,其中測(cè)試套件還包括在并行計(jì)算機(jī)上有效的所有集合操作。
12.如權(quán)利要求9所述的設(shè)備,其中對(duì)每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件還包括在對(duì)所有的子測(cè)試樹同時(shí)運(yùn)行該測(cè)試套件。
全文摘要
定位并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中的硬件故障。這樣的并行計(jì)算機(jī)包括多個(gè)計(jì)算節(jié)點(diǎn)和耦合用于數(shù)據(jù)通信的該多個(gè)計(jì)算節(jié)點(diǎn)并將該計(jì)算節(jié)點(diǎn)組織為樹的數(shù)據(jù)通信網(wǎng)絡(luò)。定位硬件故障包括將下一計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為父節(jié)點(diǎn)和父測(cè)試樹的根節(jié)點(diǎn);為父節(jié)點(diǎn)的每個(gè)子計(jì)算節(jié)點(diǎn)標(biāo)識(shí)具有將該子計(jì)算節(jié)點(diǎn)作為根節(jié)點(diǎn)的子測(cè)試樹;在父測(cè)試樹和每個(gè)子測(cè)試樹上運(yùn)行相同的測(cè)試套件;和如果測(cè)試套件對(duì)父測(cè)試樹失敗,而對(duì)所有的子測(cè)試樹成功,則將父計(jì)算節(jié)點(diǎn)標(biāo)識(shí)為具有從該父計(jì)算節(jié)點(diǎn)連接到子計(jì)算節(jié)點(diǎn)的缺陷鏈接。
文檔編號(hào)G06F15/173GK101055536SQ20071000578
公開日2007年10月17日 申請(qǐng)日期2007年2月13日 優(yōu)先權(quán)日2006年4月13日
發(fā)明者查爾斯·J·阿徹, 馬克·G·梅格瑞恩, 約瑟夫·D·拉特曼, 布賴恩·E·史密斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司