專(zhuān)利名稱(chēng):并行計(jì)算機(jī)和定位并行計(jì)算機(jī)中硬件故障的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理,或更具體地,涉及用于定位并行計(jì)算機(jī)中的硬件故障的方法、裝置和產(chǎn)品。
背景技術(shù):
1948的EDVAC計(jì)算機(jī)系統(tǒng)的出現(xiàn)經(jīng)常被稱(chēng)作計(jì)算機(jī)時(shí)代的開(kāi)始。從那以后,計(jì)算機(jī)系統(tǒng)已經(jīng)發(fā)展成非常復(fù)雜的設(shè)備?,F(xiàn)在的計(jì)算機(jī)比諸如EDVAC的早期系統(tǒng)要復(fù)雜得多。計(jì)算機(jī)系統(tǒng)通常包含硬件和軟件部件、應(yīng)用程序、操作系統(tǒng)、處理器、總線、存儲(chǔ)器、輸入/輸出設(shè)備等等的組合。隨著半導(dǎo)體加工和計(jì)算機(jī)結(jié)構(gòu)的進(jìn)步推動(dòng)計(jì)算機(jī)的性能越來(lái)越高,更復(fù)雜的計(jì)算機(jī)軟件已發(fā)展成利用硬件的更高性能,從而產(chǎn)生了比僅僅幾年前強(qiáng)得多的當(dāng)前的計(jì)算機(jī)系統(tǒng)。
并行計(jì)算是已經(jīng)歷了進(jìn)步的計(jì)算機(jī)技術(shù)的領(lǐng)域。并行計(jì)算是為了更快地獲得結(jié)果而在多處理器上同時(shí)執(zhí)行(分割以及特別適配的)相同任務(wù)的技術(shù)。并行計(jì)算基于解決問(wèn)題的過(guò)程通??杀环殖奢^小任務(wù)的事實(shí),其中可以某種協(xié)同同時(shí)執(zhí)行這些較小任務(wù)。
并行計(jì)算機(jī)執(zhí)行并行算法。并行算法可被分割以在許多不同處理設(shè)備上每次執(zhí)行一段,然后最終再合到一起以得到數(shù)據(jù)處理結(jié)果。一些算法易于分割成段。例如,通過(guò)將數(shù)的子集分配到每個(gè)可用處理器,然后將肯定結(jié)果列表合到一起,能夠?qū)z查從一到十萬(wàn)的所有數(shù)以觀察哪個(gè)數(shù)是素?cái)?shù)的任務(wù)進(jìn)行分割。在本說(shuō)明書(shū)中,執(zhí)行并行程序的各個(gè)段的多個(gè)處理設(shè)備被稱(chēng)為‘計(jì)算節(jié)點(diǎn)’。并行計(jì)算機(jī)由計(jì)算節(jié)點(diǎn)以及其它處理節(jié)點(diǎn)組成,所述其它處理節(jié)點(diǎn)例如包含輸入/輸出(‘I/O’)節(jié)點(diǎn)和服務(wù)節(jié)點(diǎn)。
因?yàn)橥ㄟ^(guò)并行算法執(zhí)行某些大型計(jì)算任務(wù)比通過(guò)串行(非并行)算法(由于現(xiàn)代處理器的工作方式)更快,所以并行算法是有價(jià)值的。用單個(gè)快速處理器構(gòu)造計(jì)算機(jī)比用多個(gè)具有相同吞吐率的慢速處理器構(gòu)造計(jì)算機(jī)要難得多。串行處理器的可能速度還存在某些理論極限。另一方面,每個(gè)并行算法具有串行部分,因此并行算法具有飽和點(diǎn)。在該點(diǎn)之外增加更多的處理器不產(chǎn)生更多的吞吐率,而只是增加開(kāi)銷(xiāo)和費(fèi)用。
并行算法也被設(shè)計(jì)成優(yōu)化并行計(jì)算機(jī)的節(jié)點(diǎn)間數(shù)據(jù)通信所需的一或多個(gè)資源。并行處理器通信有兩個(gè)方式,即共享存儲(chǔ)器或消息傳送。共享存儲(chǔ)器處理需要數(shù)據(jù)的額外鎖定,并且產(chǎn)生附加處理器和總線周期的開(kāi)銷(xiāo),以及串行化算法的某部分。
消息傳送處理使用高速數(shù)據(jù)通信網(wǎng)和消息緩沖器,但是該通信增加數(shù)據(jù)通信網(wǎng)絡(luò)上的傳送開(kāi)銷(xiāo),以及消息緩沖器的附加存儲(chǔ)器需要和節(jié)點(diǎn)間數(shù)據(jù)通信的時(shí)延。并行計(jì)算機(jī)的設(shè)計(jì)使用特別設(shè)計(jì)的數(shù)據(jù)通信鏈路,使得通信開(kāi)銷(xiāo)較小,但決定傳輸量的是并行算法。
許多數(shù)據(jù)通信網(wǎng)絡(luò)結(jié)構(gòu)被用于并行計(jì)算機(jī)中的節(jié)點(diǎn)間的消息傳送。計(jì)算節(jié)點(diǎn)在網(wǎng)絡(luò)中可被組織成例如‘環(huán)(torus)’或‘網(wǎng)格(mesh)’。并且,計(jì)算節(jié)點(diǎn)在網(wǎng)絡(luò)中可被組織成樹(shù)。環(huán)形網(wǎng)絡(luò)用圍繞鏈路的圈來(lái)連接三維網(wǎng)格中的節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)通過(guò)該環(huán)形網(wǎng)絡(luò)被連接到其6個(gè)相鄰節(jié)點(diǎn),并且每個(gè)節(jié)點(diǎn)用其網(wǎng)格中的x,y,z坐標(biāo)尋址。在樹(shù)形網(wǎng)絡(luò)中,節(jié)點(diǎn)通常被連接成二進(jìn)制樹(shù)每個(gè)節(jié)點(diǎn)具有父節(jié)點(diǎn),以及兩個(gè)子節(jié)點(diǎn)(雖然取決于硬件配置,一些節(jié)點(diǎn)可能只具有零子節(jié)點(diǎn),或一個(gè)子節(jié)點(diǎn))。在使用環(huán)形和樹(shù)形網(wǎng)絡(luò)的計(jì)算機(jī)中,通常利用分立路由電路、分立物理鏈路和分立消息緩沖器,彼此獨(dú)立地實(shí)現(xiàn)兩個(gè)網(wǎng)絡(luò)。
環(huán)形網(wǎng)絡(luò)有助于點(diǎn)對(duì)點(diǎn)幾何探知診斷,而樹(shù)形網(wǎng)絡(luò)在點(diǎn)對(duì)點(diǎn)通信中通常是低效的。然而,樹(shù)形網(wǎng)絡(luò)對(duì)于某些集群操作(collectiveoperation)、所有計(jì)算節(jié)點(diǎn)同時(shí)參加其中的消息傳送操作提供高帶寬和低時(shí)延。因?yàn)閿?shù)千節(jié)點(diǎn)可參與并行計(jì)算機(jī)上的數(shù)據(jù)處理操作,所以定位并行計(jì)算機(jī)中的硬件故障是困難的。
發(fā)明內(nèi)容
公開(kāi)了用于定位并行計(jì)算機(jī)中的硬件故障的方法、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。這種并行計(jì)算機(jī)包含多個(gè)計(jì)算節(jié)點(diǎn)和數(shù)據(jù)通信網(wǎng)絡(luò)。數(shù)據(jù)通信網(wǎng)絡(luò)包含連接到計(jì)算節(jié)點(diǎn)以便將計(jì)算節(jié)點(diǎn)組織成樹(shù)的數(shù)據(jù)通信鏈路。樹(shù)以根計(jì)算節(jié)點(diǎn)和多層計(jì)算節(jié)點(diǎn)為特征。根據(jù)本發(fā)明的實(shí)施例,定位硬件故障通常包含在樹(shù)內(nèi)定義網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,每個(gè)非重疊測(cè)試層次包括樹(shù)的兩個(gè)或更多相鄰層。根據(jù)本發(fā)明的實(shí)施例,定位硬件故障通常還包含在每個(gè)非重疊測(cè)試層次內(nèi)定義測(cè)試單元,每個(gè)測(cè)試單元包括樹(shù)的子樹(shù),所述子樹(shù)包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn)。根據(jù)本發(fā)明的實(shí)施例,定位硬件故障通常還包含分別在每個(gè)非重疊測(cè)試層次集合上對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試,以及分別從上行鏈路測(cè)試以及分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。
從以下附圖所示本發(fā)明的示范實(shí)施例的更多具體描述將明白本發(fā)明的前述和其它目的、特性和優(yōu)點(diǎn),其中類(lèi)似參考標(biāo)記通常代表本發(fā)明的示范實(shí)施例的類(lèi)似部分。
圖1根據(jù)本發(fā)明的實(shí)施例圖解了用于定位并行計(jì)算機(jī)中的硬件故障的示例性系統(tǒng)。
圖2根據(jù)本發(fā)明的實(shí)施例示出了用于定位并行計(jì)算機(jī)中的硬件故障的示例性計(jì)算節(jié)點(diǎn)的模塊圖。
圖3A根據(jù)本發(fā)明的實(shí)施例圖解了用于定位并行計(jì)算機(jī)中的硬件故障的系統(tǒng)的示例性點(diǎn)對(duì)點(diǎn)適配器。
圖3B根據(jù)本發(fā)明的實(shí)施例圖解了用于定位并行計(jì)算機(jī)中的硬件故障的系統(tǒng)的示例性集群操作適配器。
圖4圖解了為點(diǎn)對(duì)點(diǎn)操作優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)。
圖5圖解了為集群操作優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)。
圖6根據(jù)本發(fā)明的實(shí)施例示出了圖解定位并行計(jì)算機(jī)中的硬件故障的示例性方法的流程圖。
圖7A圖解了組織成樹(shù)的網(wǎng)絡(luò),其中定義了計(jì)算節(jié)點(diǎn)的非重疊測(cè)試層次集合。
圖7B圖解了相同的網(wǎng)絡(luò),但是是用計(jì)算節(jié)點(diǎn)的第二非重疊測(cè)試層次集合定義的。
具體實(shí)施例方式
根據(jù)本發(fā)明的實(shí)施例,參考從圖1起的附圖,描述用于定位并行計(jì)算機(jī)中的硬件故障的示例性方法、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。圖1根據(jù)本發(fā)明的實(shí)施例圖解了用于定位并行計(jì)算機(jī)中的硬件故障的示例性系統(tǒng)。圖1的系統(tǒng)包含并行計(jì)算機(jī)(100),數(shù)據(jù)存儲(chǔ)設(shè)備(118)形式的計(jì)算機(jī)非易失存儲(chǔ)器,打印機(jī)(120)形式的計(jì)算機(jī)輸出設(shè)備,以及計(jì)算機(jī)終端(122)形式的計(jì)算機(jī)輸入/輸出設(shè)備。圖1的例子中的并行計(jì)算機(jī)(100)包含多個(gè)計(jì)算節(jié)點(diǎn)(102)。
通過(guò)包含高速以太網(wǎng)(174)、聯(lián)合測(cè)試行動(dòng)組(‘JTAG’)網(wǎng)絡(luò)(104)、集群操作網(wǎng)絡(luò)(106)和點(diǎn)對(duì)點(diǎn)操作網(wǎng)絡(luò)(108)的若干獨(dú)立的數(shù)據(jù)通信網(wǎng)絡(luò),連接計(jì)算節(jié)點(diǎn)(102)以進(jìn)行數(shù)據(jù)通信。集群操作網(wǎng)絡(luò)(106)是包含連接到計(jì)算節(jié)點(diǎn)以便將計(jì)算節(jié)點(diǎn)組織成樹(shù)的數(shù)據(jù)通信鏈路的數(shù)據(jù)通信網(wǎng)絡(luò)。利用計(jì)算節(jié)點(diǎn)(102)間的數(shù)據(jù)通信鏈路實(shí)現(xiàn)每個(gè)數(shù)據(jù)通信網(wǎng)絡(luò)。數(shù)據(jù)通信鏈路為并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)間的并行操作提供數(shù)據(jù)通信。如下面在說(shuō)明書(shū)中詳細(xì)描述的,根據(jù)本發(fā)明的實(shí)施例,圖1的系統(tǒng)通常進(jìn)行操作以通過(guò)以下方式來(lái)定位并行計(jì)算機(jī)中的硬件故障在并行計(jì)算機(jī)的樹(shù)形網(wǎng)絡(luò)內(nèi)定義網(wǎng)絡(luò)計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,其中由樹(shù)的兩個(gè)或更多相鄰層組成每個(gè)非重疊測(cè)試層次;在每個(gè)非重疊測(cè)試層次內(nèi)定義測(cè)試單元,其中每個(gè)測(cè)試單元包含樹(shù)的子樹(shù),所述子樹(shù)則包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn);分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試;以及分別從上行鏈路測(cè)試,并且分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。
除了計(jì)算節(jié)點(diǎn)之外,計(jì)算機(jī)(100)包含通過(guò)數(shù)據(jù)通信網(wǎng)絡(luò)(174)中的一個(gè)連接到計(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設(shè)備(118,120,122)之間的I/O服務(wù)。通過(guò)局域網(wǎng)(‘LAN’)(130)為數(shù)據(jù)通信I/O設(shè)備(118,120,122)連接I/O節(jié)點(diǎn)(110,114)。計(jì)算機(jī)(100)還包含通過(guò)網(wǎng)絡(luò)(104)之一連接到計(jì)算節(jié)點(diǎn)的服務(wù)節(jié)點(diǎn)(116)。服務(wù)節(jié)點(diǎn)(116)提供公用于多個(gè)計(jì)算節(jié)點(diǎn)的服務(wù),從而將程序加載到計(jì)算節(jié)點(diǎn),在計(jì)算節(jié)點(diǎn)上開(kāi)始程序執(zhí)行,得到計(jì)算節(jié)點(diǎn)上程序操作的結(jié)果,諸如此類(lèi)。服務(wù)節(jié)點(diǎn)(116)運(yùn)行服務(wù)應(yīng)用程序(124),并且通過(guò)在計(jì)算機(jī)終端(122)上運(yùn)行的服務(wù)應(yīng)用程序接口(126)與用戶(hù)(128)通信。
在有缺陷鏈路周?chē)酚赏ㄐ趴梢允屈c(diǎn)對(duì)點(diǎn)操作或集群操作的一部分,并且當(dāng)在周?chē)穆酚砂l(fā)生時(shí),在有缺陷鏈路周?chē)酚赏ㄐ艛?shù)據(jù)所經(jīng)過(guò)的第二網(wǎng)絡(luò)對(duì)于有效操作可能是或可能不是優(yōu)化的。如果在有缺陷鏈路周?chē)穆酚勺鳛獒槍?duì)點(diǎn)對(duì)點(diǎn)操作而優(yōu)化的網(wǎng)絡(luò),例如環(huán)形網(wǎng)絡(luò)中的點(diǎn)對(duì)點(diǎn)操作的一部分而發(fā)生,則在有缺陷鏈路周?chē)酚蓴?shù)據(jù)分組所經(jīng)過(guò)的第二網(wǎng)絡(luò)可以是針對(duì)集群操作而不是點(diǎn)對(duì)點(diǎn)操作優(yōu)化的網(wǎng)絡(luò),例如集群樹(shù)形網(wǎng)絡(luò)。如果在有缺陷鏈路周?chē)穆酚勺鳛獒槍?duì)集群操作而優(yōu)化的網(wǎng)絡(luò),例如樹(shù)形網(wǎng)絡(luò)中的集群操作的一部分發(fā)生,則在有缺陷鏈路周?chē)酚蓴?shù)據(jù)分組所經(jīng)過(guò)的第二網(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)同時(shí),即幾乎同時(shí)執(zhí)行的消息傳送計(jì)算機(jī)程序指令。這樣的多個(gè)或一組計(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í)施例,可被改進(jìn)用于定位并行計(jì)算機(jī)中的硬件故障的現(xiàn)有技術(shù)并行通信庫(kù)的例子包括MPI和‘并行虛擬機(jī)’(‘PVM’)庫(kù)。PVM是由田納西大學(xué),美國(guó)橡樹(shù)嶺國(guó)立實(shí)驗(yàn)室和埃默里大學(xué)開(kāi)發(fā)的。MPI是由MPI論壇,一個(gè)擁有來(lái)自定義和維護(hù)MPI標(biāo)準(zhǔn)的許多組織的代表的開(kāi)放組所公布的。在寫(xiě)本文的時(shí)候,MPI是在分布式存儲(chǔ)器并行計(jì)算機(jī)上運(yùn)行并行程序的計(jì)算節(jié)點(diǎn)之間的通信的事實(shí)標(biāo)準(zhǔn)。該說(shuō)明書(shū)為便于說(shuō)明有時(shí)使用MPI術(shù)語(yǔ),盡管如此使用MPI不是本發(fā)明的要求或限制。
集群操作由或多或少并行執(zhí)行(取決于操作和內(nèi)部算法)的許多點(diǎn)對(duì)點(diǎn)消息組成,并且涉及在指定計(jì)算節(jié)點(diǎn)組,即指定MPI通信者中運(yùn)行的所有進(jìn)程。在該組中的每個(gè)計(jì)算節(jié)點(diǎn)上的每個(gè)進(jìn)程必須幾乎同時(shí)調(diào)用或執(zhí)行相同的集群操作。因?yàn)樵谠S多分立的物理計(jì)算節(jié)點(diǎn)上運(yùn)行的許多進(jìn)程不能說(shuō)是完全同時(shí)一起做任何事情,所以所要求的同時(shí)性被描述為近似的。并行通信庫(kù)提供支持同步的功能。在MPI例子中,這樣的同步功能是‘barrier’程序。為進(jìn)行同步,組內(nèi)所有計(jì)算節(jié)點(diǎn)上的所有進(jìn)程都調(diào)用例如MPI_barrier(),然后所有進(jìn)程進(jìn)行等待,直到所有進(jìn)程達(dá)到相同執(zhí)行點(diǎn)。于是執(zhí)行基本同步地繼續(xù)。
多數(shù)集群操作是四個(gè)基本操作的變型或組合廣播、收集、分散和歸約。在廣播操作中,所有進(jìn)程指定相同的根進(jìn)程,其緩沖器內(nèi)容會(huì)被發(fā)送。除了根之外的進(jìn)程指定接收緩沖器。操作之后,所有緩沖器含有來(lái)自根進(jìn)程的消息。
分散操作,類(lèi)似于廣播操作,也是一對(duì)多集群操作。所有進(jìn)程指定相同的接收計(jì)數(shù)。發(fā)送參數(shù)只對(duì)根進(jìn)程有意義,其緩沖器實(shí)際包含發(fā)送計(jì)數(shù)*N個(gè)指定數(shù)據(jù)類(lèi)型的單元,其中N是指定計(jì)算節(jié)點(diǎn)組中的進(jìn)程的數(shù)量。發(fā)送緩沖器將被等分,并且被分散給所有進(jìn)程(包含其本身)。每個(gè)計(jì)算節(jié)點(diǎn)被分配了稱(chēng)作‘等級(jí)(rank)’的順序標(biāo)識(shí)符。操作之后,根按照升高的等級(jí)次序已將發(fā)送計(jì)數(shù)數(shù)據(jù)單元發(fā)送給每個(gè)進(jìn)程。等級(jí)0接收來(lái)自發(fā)送緩沖器的第一個(gè)發(fā)送計(jì)數(shù)數(shù)據(jù)單元。等級(jí)1接收來(lái)自發(fā)送緩沖器的第二發(fā)送計(jì)數(shù)數(shù)據(jù)單元,如此類(lèi)推。
收集操作是多對(duì)一集群操作,其為分散操作的描述的完全相反情況。即,收集是多對(duì)一集群操作,其中一數(shù)據(jù)類(lèi)型的單元被從排定等級(jí)的計(jì)算節(jié)點(diǎn)收集到根節(jié)點(diǎn)的接收緩沖器中。
歸約操作也是多對(duì)一集群操作,其包含對(duì)兩個(gè)數(shù)據(jù)單元執(zhí)行的算術(shù)或邏輯功能。所有進(jìn)程指定相同的‘計(jì)數(shù)’和相同的算術(shù)或邏輯功能。歸約之后,所有進(jìn)程已經(jīng)將來(lái)自計(jì)算節(jié)點(diǎn)發(fā)送緩沖器的計(jì)數(shù)數(shù)據(jù)單元發(fā)送到根進(jìn)程。在歸約操作中,來(lái)自相應(yīng)發(fā)送緩沖器位置的數(shù)據(jù)單元通過(guò)算術(shù)或邏輯操作被成對(duì)組合以在根進(jìn)程的接收緩沖器中產(chǎn)生單個(gè)對(duì)應(yīng)單元。專(zhuān)用歸約操作可以在運(yùn)行時(shí)刻定義。并行通信庫(kù)可支持預(yù)定的操作。例如,MPI提供以下預(yù)先定義的歸約操作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設(shè)備的布局只是為了說(shuō)明,而不是對(duì)本發(fā)明的限制。根據(jù)本發(fā)明的實(shí)施例的能夠定位并行計(jì)算機(jī)中的硬件故障的數(shù)據(jù)處理系統(tǒng)可包含圖1中未示出的附加節(jié)點(diǎn)、網(wǎng)絡(luò)、設(shè)備和結(jié)構(gòu),如那些本領(lǐng)域技術(shù)人員所想到的。圖1的例子中的并行計(jì)算機(jī)(100)包含16個(gè)計(jì)算節(jié)點(diǎn)(102);根據(jù)本發(fā)明的實(shí)施例的能夠定位硬件故障的并行計(jì)算機(jī)有時(shí)包含數(shù)以千計(jì)的計(jì)算節(jié)點(diǎn)。除了以太網(wǎng)和JTAG之外,這樣的數(shù)據(jù)處理系統(tǒng)中的網(wǎng)絡(luò)可支持包含例如TCP(傳輸控制協(xié)議)、IP(網(wǎng)際協(xié)議)以及如那些本領(lǐng)域技術(shù)人員將想到的其它協(xié)議的許多數(shù)據(jù)通信協(xié)議。除了圖1中圖解的那些硬件平臺(tái)之外,可在各種硬件平臺(tái)上實(shí)現(xiàn)本發(fā)明的各種實(shí)施例。
根據(jù)本發(fā)明的實(shí)施例的定位硬件故障通常在包含多個(gè)計(jì)算節(jié)點(diǎn)的并行計(jì)算機(jī)上實(shí)現(xiàn)。事實(shí)上,這樣的計(jì)算機(jī)可包含數(shù)以千計(jì)這樣的計(jì)算節(jié)點(diǎn)。每個(gè)計(jì)算節(jié)點(diǎn)本身則是一種由一或多個(gè)計(jì)算機(jī)處理器、其自身計(jì)算機(jī)存儲(chǔ)器和其自身輸入/輸出適配器組成的計(jì)算機(jī)。因此,為進(jìn)一步說(shuō)明,圖2根據(jù)本發(fā)明的實(shí)施例示出了用于能夠定位硬件故障的并行計(jì)算機(jī)中的示例性計(jì)算節(jié)點(diǎn)的模塊圖。圖2的計(jì)算節(jié)點(diǎn)包含至少一個(gè)計(jì)算機(jī)處理器以及隨機(jī)存取存儲(chǔ)器(‘RAM’)(156)。處理器(164)通過(guò)高速存儲(chǔ)器總線(154)被連接到RAM(156),并且通過(guò)總線適配器(194)和擴(kuò)展總線(168)連接到計(jì)算節(jié)點(diǎn)的其它部件。
存儲(chǔ)在RAM(156)中的是診斷應(yīng)用程序(158),即利用并行算法執(zhí)行并行、用戶(hù)層數(shù)據(jù)處理的計(jì)算機(jī)程序指令的模塊。診斷應(yīng)用程序(158)包含計(jì)算機(jī)程序指令,根據(jù)本發(fā)明的實(shí)施例,所述計(jì)算機(jī)程序指令與并行計(jì)算機(jī)中的其它計(jì)算節(jié)點(diǎn)上的其它程序一起操作,以通過(guò)以下操作來(lái)定位硬件故障在并行計(jì)算機(jī)的樹(shù)形網(wǎng)絡(luò)內(nèi)定義網(wǎng)絡(luò)計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,其中由樹(shù)的兩個(gè)或更多相鄰層組成每個(gè)非重疊測(cè)試層次;在每個(gè)非重疊測(cè)試層次內(nèi)定義測(cè)試單元,其中每個(gè)測(cè)試單元包含樹(shù)的子樹(shù),所述子樹(shù)則包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn);分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試;以及分別從上行鏈路測(cè)試,并且分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。
存儲(chǔ)在RAM(156)中的還有并行通信庫(kù)(160),即執(zhí)行計(jì)算節(jié)點(diǎn)之間的并行通信的計(jì)算機(jī)程序指令的庫(kù),其包含點(diǎn)對(duì)點(diǎn)操作以及集群操作。應(yīng)用程序(158)通過(guò)調(diào)用并行通信庫(kù)(160)中的軟件程序來(lái)執(zhí)行集群操作。利用諸如C程序設(shè)計(jì)語(yǔ)言的常規(guī)程序語(yǔ)言,并且利用常規(guī)編程方法來(lái)編寫(xiě)在兩個(gè)獨(dú)立的數(shù)據(jù)通信網(wǎng)絡(luò)上的節(jié)點(diǎn)之間發(fā)送和接收數(shù)據(jù)的并行通信程序,根據(jù)本發(fā)明的實(shí)施例,可從頭開(kāi)發(fā)用于定位并行計(jì)算機(jī)中的硬件故障的并行通信程序的庫(kù)。或者,可使用存在的現(xiàn)有技術(shù)庫(kù)。根據(jù)本發(fā)明的實(shí)施例,可被改進(jìn)用于定位并行計(jì)算機(jī)中的硬件故障的現(xiàn)有技術(shù)并行通信庫(kù)的例子包括‘消息傳送接口’(‘MPI’)庫(kù)和‘并行虛擬機(jī)’(‘PVM’)庫(kù)。然而對(duì)其進(jìn)行開(kāi)發(fā),根據(jù)本發(fā)明的實(shí)施例改進(jìn)并行通信庫(kù)(160)的并行通信程序以通過(guò)以下操作來(lái)定位硬件故障在并行計(jì)算機(jī)的樹(shù)形網(wǎng)絡(luò)內(nèi)定義網(wǎng)絡(luò)計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,其中由樹(shù)的兩個(gè)或更多相鄰層組成每個(gè)非重疊測(cè)試層次;在每個(gè)非重疊測(cè)試層次內(nèi)定義測(cè)試單元,其中每個(gè)測(cè)試單元包含樹(shù)的子樹(shù),所述子樹(shù)則包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn);分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試;以及分別從上行鏈路測(cè)試,并且分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。
存儲(chǔ)在RAM(156)中的還有操作系統(tǒng)(162),其為用于應(yīng)用程序訪問(wèn)計(jì)算節(jié)點(diǎn)的其它資源的計(jì)算機(jī)程序指令和程序的模塊。因?yàn)榫€程有資格完成對(duì)節(jié)點(diǎn)的所有資源的訪問(wèn),所以并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)中的應(yīng)用程序和并行通信庫(kù)通常不用用戶(hù)登錄以及不用安全提交就運(yùn)行執(zhí)行的單線程。因此,由操作系統(tǒng)在并行計(jì)算機(jī)中的計(jì)算節(jié)點(diǎn)上執(zhí)行的任務(wù)的數(shù)量和復(fù)雜度比許多線程同時(shí)運(yùn)行的串行計(jì)算機(jī)上的操作系統(tǒng)的任務(wù)的數(shù)量和復(fù)雜度要小并且復(fù)雜度要低。此外,圖2的計(jì)算節(jié)點(diǎn)(152)上沒(méi)有視頻I/O,其為降低對(duì)操作系統(tǒng)要求的另一個(gè)因素。因此,與通用計(jì)算機(jī)的操作系統(tǒng)相比,操作系統(tǒng)可以是相當(dāng)輕型的,是原來(lái)的縮減版本,或是針對(duì)特定并行計(jì)算機(jī)上的操作具體開(kāi)發(fā)的操作系統(tǒng)??蔀橛?jì)算節(jié)點(diǎn)中的使用而改進(jìn)、簡(jiǎn)化的操作系統(tǒng)包括UNIXTM、LINUXTM、Microsoft XPTM、AIXTM、IBM的i5/OSTM,以及本領(lǐng)域的技術(shù)人員將想到的其他操作系統(tǒng)。
圖2的示例性計(jì)算節(jié)點(diǎn)(152)包括若干用于實(shí)現(xiàn)與并行計(jì)算機(jī)的其他節(jié)點(diǎn)進(jìn)行數(shù)據(jù)通信的通信適配器。此類(lèi)數(shù)據(jù)通信可以通過(guò)RS-232連接、通過(guò)諸如USB的外部總線、通過(guò)諸如IP網(wǎng)絡(luò)的數(shù)據(jù)通信網(wǎng)絡(luò)以及本領(lǐng)域的技術(shù)人員將想到的其他方式串行地實(shí)現(xiàn)。通信適配器實(shí)現(xiàn)硬件級(jí)數(shù)據(jù)通信,計(jì)算機(jī)通過(guò)所述通信適配器直接或通過(guò)網(wǎng)絡(luò)將數(shù)據(jù)通信發(fā)送給另一個(gè)計(jì)算機(jī)。根據(jù)本發(fā)明的實(shí)施例用于定位硬件故障的系統(tǒng)中可使用的通信適配器的例子包括用于有線通信的調(diào)制解調(diào)器、用于有線網(wǎng)通信的以太網(wǎng)(IEEE 802.3)適配器,以及用于無(wú)線網(wǎng)絡(luò)通信的802.11b適配器。
圖2的例子中的數(shù)據(jù)通信適配器包括千兆位以太網(wǎng)適配器(172),其將用于數(shù)據(jù)通信的示例性計(jì)算節(jié)點(diǎn)(152)連接到千兆位以太網(wǎng)(174)。千兆位以太網(wǎng)是以IEEE 802.3標(biāo)準(zhǔn)定義的網(wǎng)絡(luò)傳輸標(biāo)準(zhǔn),其提供每秒千兆位的數(shù)據(jù)速率(一千兆位)。千兆位以太網(wǎng)是通過(guò)多模式光纜、單模光纜或非屏蔽雙絞線工作的以太網(wǎng)的變型。
圖2的例子中的數(shù)據(jù)通信適配器包括將用于數(shù)據(jù)通信的示例性計(jì)算節(jié)點(diǎn)(152)連接到JTAG主電路的JTAG從電路(176)。JTAG是用于IEEE 1149.1標(biāo)準(zhǔn)的常見(jiàn)名,該標(biāo)準(zhǔn)被稱(chēng)作標(biāo)準(zhǔn)測(cè)試訪問(wèn)端口以及邊界掃描結(jié)構(gòu),其被用來(lái)利用邊界掃描來(lái)測(cè)試印刷電路板的測(cè)試訪問(wèn)端口。JTAG被如此廣泛地采用,使得此時(shí)邊界掃描或多或少與JTAG同義。JTAG不僅被用于印刷電路板,而且還用于執(zhí)行集成電路的邊界掃描,并且還被用作調(diào)試嵌入式系統(tǒng)的機(jī)制,其提供進(jìn)入系統(tǒng)的方便的“后門(mén)”。圖2的示例性計(jì)算節(jié)點(diǎn)可以是所有的以下三種其通常包括安裝在印刷電路板上的一個(gè)或多個(gè)集成電路,并且可被作為具有其自己的處理器、其自己的存儲(chǔ)器及其自己的I/O能力的嵌入式系統(tǒng)實(shí)現(xiàn)。根據(jù)本發(fā)明的實(shí)施例,通過(guò)JTAG從設(shè)備(176)的JTAG邊界掃描可有效地配置用于定位硬件故障的計(jì)算節(jié)點(diǎn)(152)中的處理器寄存器和存儲(chǔ)器。
圖2的例子中的數(shù)據(jù)通信適配器包括將用于數(shù)據(jù)通信的示例性計(jì)算節(jié)點(diǎn)(152)連接到網(wǎng)絡(luò)(108)的點(diǎn)對(duì)點(diǎn)適配器(180),所述網(wǎng)絡(luò)對(duì)于點(diǎn)對(duì)點(diǎn)消息傳送操作是最優(yōu)的,例如配置成三維環(huán)或網(wǎng)格的網(wǎng)絡(luò)。點(diǎn)對(duì)點(diǎn)適配器(180)沿三個(gè)通信軸x,y和z上的6個(gè)方向,通過(guò)6個(gè)雙向鏈路提供數(shù)據(jù)通信+x(181)、-x(182)、+y(183)、-y(184)、+z(185)和-z(186)。
圖2的例子中的數(shù)據(jù)通信適配器包括將用于數(shù)據(jù)通信的示例性計(jì)算節(jié)點(diǎn)(152)連接到網(wǎng)絡(luò)(106)的集群操作適配器(188),所述網(wǎng)絡(luò)對(duì)于集群消息傳送操作是最優(yōu)的,例如配置成二進(jìn)制樹(shù)的網(wǎng)絡(luò)。集群操作適配器(188)通過(guò)三個(gè)雙向鏈路提供數(shù)據(jù)通信兩個(gè)到子節(jié)點(diǎn)(190)以及一個(gè)到父節(jié)點(diǎn)(192)。
示例性計(jì)算節(jié)點(diǎn)(152)包括兩個(gè)算術(shù)邏輯單元(‘ALU”)。ALU(166)是處理器(164)的部件,而獨(dú)立的ALU(170)專(zhuān)用于集群操作適配器的獨(dú)占使用,用來(lái)執(zhí)行歸約操作的算術(shù)和邏輯功能。并行通信庫(kù)(160)中的歸約程序的計(jì)算機(jī)程序指令可將算術(shù)或邏輯功能的指令鎖存到指令寄存器(169)中。例如,當(dāng)歸約操作的算術(shù)或邏輯功能為‘求和’或‘邏輯或’時(shí),通過(guò)利用處理器(164)中的ALU(166)或通過(guò)利用專(zhuān)用ALU(170)(通常更快速地),集群操作適配器可執(zhí)行算術(shù)或邏輯操作。
為進(jìn)一步說(shuō)明,圖3A根據(jù)本發(fā)明的實(shí)施例圖解了用于定位硬件故障的系統(tǒng)的示例性點(diǎn)對(duì)點(diǎn)適配器(180)。點(diǎn)對(duì)點(diǎn)適配器(180)被設(shè)計(jì)成用于針對(duì)點(diǎn)對(duì)點(diǎn)操作而優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò),即將計(jì)算節(jié)點(diǎn)組織成三維環(huán)或網(wǎng)格的網(wǎng)絡(luò)。圖3A的例子中的點(diǎn)對(duì)點(diǎn)適配器(180)沿著x-軸通過(guò)四個(gè)單向數(shù)據(jù)通信鏈路提供數(shù)據(jù)通信,沿著-x方向(182)到達(dá)和來(lái)自下一節(jié)點(diǎn),沿著+x方向(181)到達(dá)和來(lái)自下一節(jié)點(diǎn)。點(diǎn)對(duì)點(diǎn)適配器(180)還沿著y-軸通過(guò)四個(gè)單向數(shù)據(jù)通信鏈路提供數(shù)據(jù)通信,沿著-y方向(184)到達(dá)和來(lái)自下一節(jié)點(diǎn),沿著+y方向(183)到達(dá)和來(lái)自下一節(jié)點(diǎn)。點(diǎn)對(duì)點(diǎn)適配器(180)還沿著z軸通過(guò)四個(gè)單向數(shù)據(jù)通信鏈路提供數(shù)據(jù)通信,沿著-z方向(186)到達(dá)和來(lái)自下一節(jié)點(diǎn),沿著+z方向(185)到達(dá)和來(lái)自下一節(jié)點(diǎn)。
為進(jìn)一步說(shuō)明,圖3B根據(jù)本發(fā)明的實(shí)施例圖解了用于定位硬件故障的系統(tǒng)的示例性集群操作適配器(188)。集群操作適配器(188)被設(shè)計(jì)成用于針對(duì)集群操作而優(yōu)化的網(wǎng)絡(luò),即將并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)組織二進(jìn)制樹(shù)的網(wǎng)絡(luò)。圖3B的例子中的集群操作適配器(188)通過(guò)四個(gè)單向數(shù)據(jù)通信鏈路(190)提供到達(dá)和來(lái)自?xún)蓚€(gè)子節(jié)點(diǎn)的數(shù)據(jù)通信。集群操作適配器(188)還通過(guò)兩個(gè)單向數(shù)據(jù)通信鏈路(192)提供到達(dá)和來(lái)自父節(jié)點(diǎn)的數(shù)據(jù)通信。
為進(jìn)一步說(shuō)明,圖4圖解了為點(diǎn)對(duì)點(diǎn)操作(106)優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)。在圖4的例子中,點(diǎn)代表并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)(102),而點(diǎn)之間的虛線代表計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路。利用類(lèi)似于圖3A中的例子所圖解的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)通信適配器,利用三個(gè)軸x,y和z上的數(shù)據(jù)通信鏈路,并且沿著6個(gè)方向+x(181)、-x(182)、+y(183)、-y(184)、+z(185)和-z(186)來(lái)回實(shí)現(xiàn)數(shù)據(jù)通信鏈路。由針對(duì)點(diǎn)對(duì)點(diǎn)操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)將鏈路和計(jì)算節(jié)點(diǎn)組織成環(huán)繞以形成環(huán)(107)的3維網(wǎng)格(105)。環(huán)中的每個(gè)計(jì)算節(jié)點(diǎn)在環(huán)中具有由一組x,y,z坐標(biāo)唯一指定的位置。為清楚說(shuō)明,圖4的數(shù)據(jù)通信網(wǎng)絡(luò)僅用27個(gè)計(jì)算節(jié)點(diǎn)來(lái)圖解,但是讀者將認(rèn)識(shí)到,用于根據(jù)本發(fā)明的實(shí)施例定位硬件故障的針對(duì)點(diǎn)對(duì)點(diǎn)操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)可僅包含少數(shù)計(jì)算節(jié)點(diǎn),或可包含數(shù)以千計(jì)的計(jì)算節(jié)點(diǎn)。
為進(jìn)一步說(shuō)明,圖5圖解了為集群操作(108)優(yōu)化的示例性數(shù)據(jù)通信網(wǎng)絡(luò)。圖5的示例性數(shù)據(jù)通信網(wǎng)絡(luò)包括連接到計(jì)算節(jié)點(diǎn)以便將計(jì)算節(jié)點(diǎn)組織成樹(shù)的計(jì)算節(jié)點(diǎn)數(shù)據(jù)通信鏈路。在圖5的例子中,點(diǎn)代表并行計(jì)算機(jī)的計(jì)算節(jié)點(diǎn)(102),而點(diǎn)之間的虛線代表計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路。利用類(lèi)似于圖3B中的例子所圖解的集群操作數(shù)據(jù)通信適配器,實(shí)現(xiàn)數(shù)據(jù)通信鏈路,例外的是,其中每個(gè)節(jié)點(diǎn)通常提供到達(dá)和來(lái)自?xún)蓚€(gè)子節(jié)點(diǎn)的數(shù)據(jù)通信和到達(dá)和來(lái)自父節(jié)點(diǎn)的數(shù)據(jù)通信。二進(jìn)制樹(shù)中的節(jié)點(diǎn)可以通過(guò)根節(jié)點(diǎn)(202)、分支節(jié)點(diǎn)(204)和葉節(jié)點(diǎn)(206)來(lái)表征。根節(jié)點(diǎn)(202)具有兩個(gè)子節(jié)點(diǎn),但是沒(méi)有父節(jié)點(diǎn)。葉節(jié)點(diǎn)(206)每個(gè)具有父節(jié)點(diǎn),但是葉節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn)。分支節(jié)點(diǎn)(204)每個(gè)既具有父節(jié)點(diǎn)又具有兩個(gè)子節(jié)點(diǎn)。從而,由該針對(duì)集群操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)將鏈路和計(jì)算節(jié)點(diǎn)組織成二進(jìn)制樹(shù)(108)。為清楚說(shuō)明,圖5的數(shù)據(jù)通信網(wǎng)絡(luò)僅用31個(gè)計(jì)算節(jié)點(diǎn)來(lái)圖解,但是讀者將認(rèn)識(shí)到,用于根據(jù)本發(fā)明的實(shí)施例定位硬件故障的針對(duì)集群操作優(yōu)化的數(shù)據(jù)通信網(wǎng)絡(luò)可僅包含少數(shù)計(jì)算節(jié)點(diǎn)或可包含數(shù)以千計(jì)的計(jì)算節(jié)點(diǎn)。
圖5的例子中,樹(shù)中的每個(gè)節(jié)點(diǎn)被分配稱(chēng)為‘等級(jí)’(250)的單元標(biāo)識(shí)符。節(jié)點(diǎn)的等級(jí)唯一地標(biāo)識(shí)樹(shù)形網(wǎng)絡(luò)中用于點(diǎn)對(duì)點(diǎn)和集群操作的樹(shù)形網(wǎng)絡(luò)中的節(jié)點(diǎn)的位置。該例子中的等級(jí)被分配為從分配給根節(jié)點(diǎn)(202)的0,分配給樹(shù)的第二層中的第一個(gè)節(jié)點(diǎn)的1,分配給樹(shù)的第二層中的第二節(jié)點(diǎn)的2,分配給樹(shù)的第三層中的第一個(gè)節(jié)點(diǎn)的3,分配給樹(shù)的第三層中的第二節(jié)點(diǎn)的4起的整數(shù),如此類(lèi)推。為便于說(shuō)明,這里僅示出樹(shù)的前三個(gè)層的等級(jí),但是樹(shù)形網(wǎng)絡(luò)中的所有計(jì)算節(jié)點(diǎn)都被分配了唯一等級(jí)。
圖5的例子中,樹(shù)形網(wǎng)絡(luò)(108)被表征為根計(jì)算節(jié)點(diǎn)(202)、以及層0、層1等等的多層計(jì)算節(jié)點(diǎn)。計(jì)算節(jié)點(diǎn)的層由層的計(jì)算節(jié)點(diǎn)與根計(jì)算節(jié)點(diǎn)(202)之間的數(shù)據(jù)通信鏈路的數(shù)量來(lái)定義。層0中的計(jì)算節(jié)點(diǎn)具有層0中的計(jì)算節(jié)點(diǎn)與根節(jié)點(diǎn)(202)之間的零個(gè)數(shù)據(jù)通信鏈路-其為層0中僅有的計(jì)算節(jié)點(diǎn)。層1中的每個(gè)計(jì)算節(jié)點(diǎn)具有其與根節(jié)點(diǎn)(202)之間的一個(gè)數(shù)據(jù)通信鏈路。層2中的每個(gè)計(jì)算節(jié)點(diǎn)具有其與根節(jié)點(diǎn)(202)之間的兩個(gè)數(shù)據(jù)通信鏈路。如此類(lèi)推。
圖5的網(wǎng)絡(luò)樹(shù)的層被以從包含根節(jié)點(diǎn)的層(作為層0)開(kāi)始的整數(shù)序列進(jìn)行編號(hào),并且繼之以層1、層2,如此類(lèi)推。以整數(shù)序列來(lái)對(duì)層進(jìn)行編號(hào)的事實(shí)意味著圖5的例子中的計(jì)算節(jié)點(diǎn)的層包括偶數(shù)層計(jì)算節(jié)點(diǎn)和奇數(shù)層計(jì)算節(jié)點(diǎn)。偶數(shù)層包括層0、層2,如此類(lèi)推。奇數(shù)層包括層1、層3,如此類(lèi)推。
為進(jìn)一步說(shuō)明,圖6根據(jù)本發(fā)明的實(shí)施例示出了圖解定位并行計(jì)算機(jī)中的硬件故障的示例性方法的流程圖。圖6的方法在包括多個(gè)計(jì)算節(jié)點(diǎn)和數(shù)據(jù)通信網(wǎng)絡(luò)(108)的并行計(jì)算機(jī)(100)中實(shí)現(xiàn),所述網(wǎng)絡(luò)包含連接到計(jì)算節(jié)點(diǎn)以便將計(jì)算節(jié)點(diǎn)組織成樹(shù)的數(shù)據(jù)通信鏈路。圖6中的點(diǎn)代表計(jì)算節(jié)點(diǎn),而點(diǎn)之間的虛線代表計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)通信鏈路。圖6中的每個(gè)計(jì)算節(jié)點(diǎn)標(biāo)有其等級(jí),即從0起并繼續(xù)至6的整數(shù)值。通過(guò)根計(jì)算節(jié)點(diǎn)(具有0等級(jí)的節(jié)點(diǎn))以及多層計(jì)算節(jié)點(diǎn)(層0、層1和層2)來(lái)表征。為便于說(shuō)明,這里僅示出樹(shù)的前三個(gè)層,但是樹(shù)形網(wǎng)絡(luò)中的所有計(jì)算節(jié)點(diǎn)都被分配了唯一等級(jí)。為清楚說(shuō)明,圖6的數(shù)據(jù)通信網(wǎng)絡(luò)(108)僅以6個(gè)計(jì)算節(jié)點(diǎn)和三個(gè)層進(jìn)行說(shuō)明,但是讀者將認(rèn)識(shí)到,根據(jù)本發(fā)明的實(shí)施例,用于能夠定位硬件故障的并行計(jì)算機(jī)、組織成樹(shù)的數(shù)據(jù)通信網(wǎng)絡(luò)可包含任意數(shù)量的計(jì)算節(jié)點(diǎn)和任意數(shù)量的層,僅有少數(shù)或數(shù)千。
讀者將注意到,利用二進(jìn)制基數(shù)(binary radix),即所謂的二進(jìn)制樹(shù)、根和具有兩個(gè)子節(jié)點(diǎn)的每個(gè)分支節(jié)點(diǎn),組織圖6中圖解的樹(shù)形網(wǎng)絡(luò)(108)。然而,這里使用二進(jìn)制基數(shù)僅僅是為便于說(shuō)明,而不作為本發(fā)明的限制。在根據(jù)本發(fā)明的實(shí)施例將計(jì)算節(jié)點(diǎn)組織成樹(shù)的并行計(jì)算機(jī)的數(shù)據(jù)通信網(wǎng)絡(luò)中,如本領(lǐng)域的技術(shù)人員可想到的,此類(lèi)網(wǎng)絡(luò)中的根節(jié)點(diǎn)和分支節(jié)點(diǎn)可以具有任意數(shù)量的子節(jié)點(diǎn)。如該說(shuō)明書(shū)所使用的術(shù)語(yǔ)‘子節(jié)點(diǎn)’是指父節(jié)點(diǎn)的直接子節(jié)點(diǎn)-不是指孫節(jié)點(diǎn)、曾孫節(jié)點(diǎn)等。如該說(shuō)明書(shū)所使用的術(shù)語(yǔ)‘后代’是指父節(jié)點(diǎn)的所有子節(jié)點(diǎn)、孫節(jié)點(diǎn)、曾孫節(jié)點(diǎn)等。
圖6的方法包括在樹(shù)內(nèi)定義(302)網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,其中每個(gè)非重疊測(cè)試層次包括樹(shù)的兩個(gè)或更多相鄰層。圖7A圖解了組織成樹(shù)的網(wǎng)絡(luò)(108),其中定義計(jì)算節(jié)點(diǎn)的一個(gè)非重疊測(cè)試層次集合(702,704),其中每個(gè)非重疊測(cè)試層次(702,704)包括樹(shù)的兩個(gè)或更多相鄰層。圖7A中,點(diǎn)代表計(jì)算節(jié)點(diǎn),而虛線代表連接到計(jì)算節(jié)點(diǎn)以便將計(jì)算節(jié)點(diǎn)組織成樹(shù)的數(shù)據(jù)通信鏈路。測(cè)試層次(702)包括樹(shù)的兩個(gè)相鄰層,層0和層1。測(cè)試層次(704)包括樹(shù)的兩個(gè)相鄰層,層2和層3。測(cè)試層次(702,704)不相重疊,即兩者都不包括任何還在另一個(gè)測(cè)試層次中的數(shù)據(jù)通信鏈路。測(cè)試層次(702,704)一起代表計(jì)算節(jié)點(diǎn)的一個(gè)非重疊測(cè)試層次集合(706)。
圖7B圖解了相同的網(wǎng)絡(luò)(108),這次利用計(jì)算節(jié)點(diǎn)的第二非重疊測(cè)試層次集合(718,720)來(lái)定義,其中每個(gè)非重疊測(cè)試層次(718,720)包括樹(shù)的兩個(gè)或更多相鄰層。測(cè)試層次(718)包括樹(shù)的兩個(gè)相鄰層,層1和層2。測(cè)試層次(720)包括樹(shù)的兩個(gè)相鄰層,層3和層4。測(cè)試層次(718,720)不相重疊,即兩者都不包括任何還在另一個(gè)測(cè)試層次中的數(shù)據(jù)通信鏈路。測(cè)試層次(718,720)一起代表計(jì)算節(jié)點(diǎn)的一個(gè)非重疊測(cè)試層次集合(722)。測(cè)試層次(702,704,718,720)代表網(wǎng)絡(luò)(108)的計(jì)算節(jié)點(diǎn)的兩個(gè)非重疊測(cè)試層次集合(706,722),其一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路。
再次參考圖6圖6的方法包括在每個(gè)非重疊測(cè)試層次內(nèi)定義(304)測(cè)試單元,其中每個(gè)測(cè)試單元包含樹(shù)的子樹(shù),所述子樹(shù)包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn)。圖7A和7B圖解了非重疊測(cè)試層次內(nèi)所定義的測(cè)試單元。非重疊測(cè)試層次(702)具有在其內(nèi)定義的測(cè)試單元(708)。非重疊測(cè)試層次(704)具有在其內(nèi)定義的測(cè)試單元(710,712,714,716)。非重疊測(cè)試層次(718)具有在其內(nèi)定義的測(cè)試單元(724,726)。以及非重疊測(cè)試層次(720)具有在其內(nèi)定義的測(cè)試單元(728,730,732,734,736,738,740,742)。
讀者的注意力被引到利用用于說(shuō)明的附圖標(biāo)記被特別標(biāo)記的測(cè)試單元(716)上。類(lèi)似圖7A和7B中的所有測(cè)試單元,測(cè)試單元(716)由代表樹(shù)形網(wǎng)絡(luò)(108)的子樹(shù)的三個(gè)計(jì)算節(jié)點(diǎn)組成。測(cè)試單元(716)包含子樹(shù)根計(jì)算節(jié)點(diǎn)(705)和兩個(gè)分支節(jié)點(diǎn)(707)。分支節(jié)點(diǎn)(707)是子樹(shù)根計(jì)算節(jié)點(diǎn)(705)的直接子節(jié)點(diǎn)。分支節(jié)點(diǎn)(707)也是非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)(705)的全部后代計(jì)算節(jié)點(diǎn)。類(lèi)似地,測(cè)試單元(710,712,714)每個(gè)包含樹(shù)(108)的子樹(shù),該子樹(shù)則包含非重疊測(cè)試層次(704)內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn)。測(cè)試單元(708)包含樹(shù)(108)的子樹(shù),該子樹(shù)則包含非重疊測(cè)試層次(702)內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn)。測(cè)試單元(724,726)每個(gè)包含樹(shù)(108)的子樹(shù),該子樹(shù)則包含非重疊測(cè)試層次(718)內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn)。并且測(cè)試單元(728,730,732,734,736,738,740,742)每個(gè)包含樹(shù)(108)的子樹(shù),該子樹(shù)則包含非重疊測(cè)試層次(720)內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn)。
再次參考圖6圖6的方法包含分別在每個(gè)非重疊測(cè)試層次集合上對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試。即,以?xún)蓚€(gè)階段執(zhí)行該例子中的上行鏈路測(cè)試再次參考7A和7B,首先,對(duì)非重疊測(cè)試層次集合(706)中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試。其次,對(duì)非重疊測(cè)試層次集合(722)中的所有測(cè)試單元執(zhí)行獨(dú)立的上行鏈路測(cè)試。
圖7A的樹(shù)形網(wǎng)絡(luò)呈現(xiàn)了一個(gè)非重疊測(cè)試層次集合(706)的例子,其中每個(gè)非重疊測(cè)試層次(702,704)包含具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。測(cè)試層次(702)包含具有層0中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元,并且測(cè)試層次(704)包含具有層2中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。因此,通過(guò)對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試,來(lái)實(shí)現(xiàn)對(duì)該例子中的一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元的上行鏈路測(cè)試,其中每個(gè)非重疊測(cè)試層次包含具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
圖7B的樹(shù)形網(wǎng)絡(luò)呈現(xiàn)了一個(gè)非重疊測(cè)試層次集合(722)的例子,其中每個(gè)非重疊測(cè)試層次(718,720)包含具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。測(cè)試層次(718)包含具有層1中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元,并且測(cè)試層次(720)包含具有層3中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。因此,通過(guò)對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試來(lái)實(shí)現(xiàn)對(duì)該例子中的一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元的上行鏈路測(cè)試,其中每個(gè)非重疊測(cè)試層次包含具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
在圖6的方法中,對(duì)測(cè)試單元執(zhí)行(306)上行鏈路測(cè)試可通過(guò)測(cè)試沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路來(lái)實(shí)現(xiàn)。在該討論的情況中,‘向上’是指從后代分支或葉節(jié)點(diǎn)到父節(jié)點(diǎn)或根節(jié)點(diǎn)的傳送方向。類(lèi)似地,‘向下’是指從父節(jié)點(diǎn)或根節(jié)點(diǎn)到父節(jié)點(diǎn)或根的后代的傳送方向。圖3B的例子中,上行鏈路(752)是能夠向上,即從后代分支或葉節(jié)點(diǎn)向父節(jié)點(diǎn)或根節(jié)點(diǎn)傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路。如同圖7A上的參考(705)所示的計(jì)算節(jié)點(diǎn),如果計(jì)算節(jié)點(diǎn)(152)被當(dāng)作子樹(shù)根的后代計(jì)算節(jié)點(diǎn),并且其父節(jié)點(diǎn)(192)被當(dāng)作子樹(shù)根計(jì)算節(jié)點(diǎn),則上行鏈路(750)是能夠沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路。
在圖6的方法中,執(zhí)行(306)上行鏈路測(cè)試可包含測(cè)試一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元中的每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的ALU。樹(shù)(108)的每個(gè)計(jì)算節(jié)點(diǎn),并且因此每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)可包含專(zhuān)用于執(zhí)行歸約操作的算術(shù)和邏輯功能的獨(dú)立的ALU-例如參考圖2中的(170)如上所圖解和所描述的獨(dú)立專(zhuān)用的ALU。測(cè)試每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的ALU可通過(guò)存儲(chǔ)MPI收集指令的正確結(jié)果到每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的存儲(chǔ)器中來(lái)實(shí)現(xiàn),MPI收集指令利用ALU來(lái)執(zhí)行算術(shù)或邏輯功能,從而執(zhí)行收集和將收集的結(jié)果與正確結(jié)果相比較。
圖6的方法還包含分別從上行鏈路測(cè)試以及分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行(308)下行鏈路測(cè)試。即,以?xún)蓚€(gè)階段執(zhí)行該例子中的下行鏈路測(cè)試再次參考7A和7B,首先,對(duì)非重疊測(cè)試層次集合(706)中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。其次,對(duì)非重疊測(cè)試層次集合(722)中的所有測(cè)試單元執(zhí)行獨(dú)立的下行鏈路測(cè)試。分別執(zhí)行上行鏈路測(cè)試和下行鏈路測(cè)試減少了下行鏈路測(cè)試期間死鎖的風(fēng)險(xiǎn),例如,當(dāng)相關(guān)的上行鏈路有缺陷時(shí)。
圖7A的樹(shù)形網(wǎng)絡(luò)呈現(xiàn)了一個(gè)非重疊測(cè)試層次集合(706)的例子,其中每個(gè)非重疊測(cè)試層次(702,704)包含具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。測(cè)試層次(702)包含具有層0中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元,以及測(cè)試層次(704)包含具有層2中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。因此,通過(guò)對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試來(lái)實(shí)現(xiàn)對(duì)該例子中的一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元的下行鏈路測(cè)試,其中每個(gè)非重疊測(cè)試層次包含具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
圖7B的樹(shù)形網(wǎng)絡(luò)呈現(xiàn)了一個(gè)非重疊測(cè)試層次集合(722)的例子,其中每個(gè)非重疊測(cè)試層次(718,720)包含具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。測(cè)試層次(718)包含具有層1中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元,并且測(cè)試層次(720)包含具有層3中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。因此,通過(guò)對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試來(lái)實(shí)現(xiàn)對(duì)該例子中的一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元的下行鏈路測(cè)試,其中每個(gè)非重疊測(cè)試層次包含具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
在圖6的方法中,對(duì)測(cè)試單元執(zhí)行(308)下行鏈路測(cè)試可通過(guò)測(cè)試沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路來(lái)實(shí)現(xiàn)。在圖3B的例子中,下行鏈路(750)是能夠向下,即從父節(jié)點(diǎn)或根節(jié)點(diǎn)向父節(jié)點(diǎn)或根的后代傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路。如同圖7A上的參考(705)所示的計(jì)算節(jié)點(diǎn),如果計(jì)算節(jié)點(diǎn)(152)被當(dāng)作子樹(shù)根的后代計(jì)算節(jié)點(diǎn),并且其父節(jié)點(diǎn)被當(dāng)作子樹(shù)根計(jì)算節(jié)點(diǎn),則下行鏈路(750)是能夠沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路。樹(shù)形網(wǎng)絡(luò)(108)中的所有數(shù)據(jù)通信鏈路可以是由類(lèi)似參考圖3B所圖解和描述的那些鏈路(752,750)的上行鏈路和下行鏈路組成的雙向鏈路。
在圖6的方法中,執(zhí)行(306)上行鏈路測(cè)試可包含測(cè)試一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元中的每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)的ALU。樹(shù)(108)的每個(gè)計(jì)算節(jié)點(diǎn),并且因此每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的每個(gè)后代計(jì)算節(jié)點(diǎn)可包含專(zhuān)用于執(zhí)行歸約操作的算術(shù)和邏輯功能的獨(dú)立的ALU-例如參考圖2中的(170)如上所圖解和描述的獨(dú)立專(zhuān)用的ALU。測(cè)試后代計(jì)算節(jié)點(diǎn)的ALU可通過(guò)存儲(chǔ)參數(shù)數(shù)值和并行計(jì)算廣播指令的正確結(jié)果到每個(gè)后代計(jì)算節(jié)點(diǎn)的存儲(chǔ)器中來(lái)實(shí)現(xiàn),并行計(jì)算廣播指令利用ALU對(duì)參數(shù)數(shù)值和廣播值執(zhí)行算術(shù)或邏輯功能,從而執(zhí)行廣播和將廣播的結(jié)果與每個(gè)后代計(jì)算節(jié)點(diǎn)中的正確結(jié)果相比較。常規(guī)的MPI廣播不執(zhí)行算術(shù)或邏輯功能。因此,該例子中的廣播功能被改進(jìn)以用于此處所示的根據(jù)本發(fā)明的實(shí)施例的定位并行計(jì)算機(jī)中的硬件故障broadcast(void*buf,int count,Datatype dtype,int root,Op op,Comm comm);該廣播通信中,所有計(jì)算節(jié)點(diǎn)將子樹(shù)根計(jì)算節(jié)點(diǎn)指定為功能‘root’,利用先前存儲(chǔ)的參數(shù)數(shù)值,將通過(guò)ALU發(fā)送并且操作其緩沖器內(nèi)容。后代計(jì)算節(jié)點(diǎn)在緩沖器指針‘buf’中指定其接收緩沖器。操作之后,所有后代計(jì)算節(jié)點(diǎn)包含由‘op’指定的操作的結(jié)果。如本領(lǐng)域的技術(shù)人員可想到的,操作可以是任何有用的算術(shù)或邏輯操作,例如求和、乘積、邏輯與、邏輯或等等。
當(dāng)診斷運(yùn)行期間檢測(cè)到缺陷時(shí),由于在具體測(cè)試單元的范圍內(nèi),對(duì)測(cè)試單元執(zhí)行上行鏈路和下行鏈路測(cè)試具有立即定位硬件故障的好處。已知硬件故障在具體測(cè)試單元中是并行計(jì)算中的極大的好處,所述并行計(jì)算中具體計(jì)算機(jī)可包含數(shù)以千計(jì)計(jì)算節(jié)點(diǎn)和數(shù)以千計(jì)數(shù)據(jù)通信鏈路。對(duì)非重疊測(cè)試層次集合執(zhí)行上行鏈路和下行鏈路測(cè)試提供了好處如果一個(gè)測(cè)試層次中的鏈路是有缺陷的,則有缺陷鏈路不能妨礙其它測(cè)試層次中的測(cè)試操作。
因?yàn)橄滦墟溌窚y(cè)試是對(duì)并行計(jì)算機(jī)中的計(jì)算節(jié)點(diǎn)的一個(gè)非重疊測(cè)試層次集合中的測(cè)試單元執(zhí)行的,所以對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元可同時(shí)執(zhí)行下行鏈路測(cè)試。對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元同時(shí)執(zhí)行下行鏈路測(cè)試提供了好處每次測(cè)試需要恒定的時(shí)間量。
主要在用于定位并行計(jì)算機(jī)中的硬件故障的全功能計(jì)算機(jī)系統(tǒng)的情況中描述了本發(fā)明的示范實(shí)施例。然而,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,本發(fā)明也可被實(shí)現(xiàn)在用于任何適當(dāng)數(shù)據(jù)處理系統(tǒng)的信號(hào)承載介質(zhì)上所布置的計(jì)算機(jī)程序產(chǎn)品中。此類(lèi)信號(hào)承載介質(zhì)可以是傳輸介質(zhì)或機(jī)器可讀信息的可記錄介質(zhì),包括磁介質(zhì)、光學(xué)介質(zhì)或其它適當(dāng)介質(zhì)??捎涗浗橘|(zhì)的例子包括硬盤(pán)驅(qū)動(dòng)器中的磁盤(pán)或軟盤(pán)、光學(xué)驅(qū)動(dòng)器的光盤(pán)、磁帶以及本領(lǐng)域的技術(shù)人員將想到的其它可記錄介質(zhì)。傳輸介質(zhì)的例子包括用于音頻通信的電話(huà)網(wǎng)絡(luò)和數(shù)字?jǐn)?shù)據(jù)通信網(wǎng)絡(luò),例如EthernetsTM,以及利用網(wǎng)際協(xié)議和World Wide Web通信的網(wǎng)絡(luò)。所屬技術(shù)領(lǐng)域的專(zhuān)業(yè)人員會(huì)立即認(rèn)識(shí)到,具有適合程序的任何計(jì)算機(jī)系統(tǒng)意指如程序產(chǎn)品中所實(shí)現(xiàn)的,將能夠執(zhí)行本發(fā)明的方法的步驟。所屬技術(shù)領(lǐng)域的專(zhuān)業(yè)人員將立即認(rèn)識(shí)到,盡管該說(shuō)明書(shū)中所描述的一些示范實(shí)施例是以在計(jì)算機(jī)硬件上安裝并執(zhí)行的軟件為目標(biāo)的,然而作為固件或如硬件實(shí)現(xiàn)的可選實(shí)施例在本發(fā)明的范疇內(nèi)也可行。
從上述描述中將理解,在不偏離其真正宗旨的情況下,在本發(fā)明的各種實(shí)施例中可作出修改和改變。該說(shuō)明書(shū)中的描述僅為了說(shuō)明的目的,而不被視為限制的意義。本發(fā)明的范圍僅受限于以下權(quán)利要求書(shū)的語(yǔ)言。
權(quán)利要求
1.一種定位并行計(jì)算機(jī)中硬件故障的方法,所述并行計(jì)算機(jī)包括多個(gè)計(jì)算節(jié)點(diǎn),和包含連接到計(jì)算節(jié)點(diǎn)以便將計(jì)算節(jié)點(diǎn)組織成樹(shù)的數(shù)據(jù)通信鏈路的數(shù)據(jù)通信網(wǎng)絡(luò),所述樹(shù)通過(guò)根計(jì)算節(jié)點(diǎn)和多層計(jì)算節(jié)點(diǎn)來(lái)表征,該方法包括在樹(shù)內(nèi)定義網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,每個(gè)非重疊測(cè)試層次包括樹(shù)的兩個(gè)或更多相鄰層;在每個(gè)非重疊測(cè)試層次內(nèi)定義測(cè)試單元,每個(gè)測(cè)試單元包括樹(shù)的子樹(shù),所述子樹(shù)包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn);分別在每個(gè)非重疊測(cè)試層次集合上對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試;以及分別從上行鏈路測(cè)試以及分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。
2.根據(jù)權(quán)利要求1的方法,其中對(duì)測(cè)試單元執(zhí)行上行鏈路測(cè)試進(jìn)一步地包括測(cè)試沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路;以及對(duì)測(cè)試單元執(zhí)行下行鏈路測(cè)試進(jìn)一步地包括測(cè)試沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路。
3.根據(jù)權(quán)利要求1的方法,其中執(zhí)行上行鏈路測(cè)試進(jìn)一步地包括測(cè)試一個(gè)非重疊測(cè)試層次集合中所有測(cè)試單元中的每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的算術(shù)邏輯單元(‘ALU’);以及執(zhí)行下行鏈路測(cè)試進(jìn)一步地包括測(cè)試一個(gè)非重疊測(cè)試層次集合中所有測(cè)試單元中的每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)的ALU。
4.根據(jù)權(quán)利要求1的方法,其中執(zhí)行上行鏈路測(cè)試進(jìn)一步地包括對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元同時(shí)執(zhí)行上行鏈路測(cè)試;以及執(zhí)行下行鏈路測(cè)試進(jìn)一步地包括對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元同時(shí)執(zhí)行下行鏈路測(cè)試。
5.根據(jù)權(quán)利要求1的方法,其中各層計(jì)算節(jié)點(diǎn)進(jìn)一步包括偶數(shù)層計(jì)算節(jié)點(diǎn)和奇數(shù)層計(jì)算節(jié)點(diǎn);在樹(shù)內(nèi)定義網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合進(jìn)一步包括定義一個(gè)非重疊測(cè)試層次集合,該集合中每個(gè)非重疊測(cè)試層次包括具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;以及對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
6.根據(jù)權(quán)利要求1的方法,其中各層計(jì)算節(jié)點(diǎn)進(jìn)一步包括偶數(shù)層計(jì)算節(jié)點(diǎn)和奇數(shù)層計(jì)算節(jié)點(diǎn);在樹(shù)內(nèi)定義網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合進(jìn)一步包括定義一個(gè)非重疊測(cè)試層次集合,該集合中每個(gè)非重疊測(cè)試層次包括具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;以及對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
7.一種并行計(jì)算機(jī),包括多個(gè)計(jì)算節(jié)點(diǎn),和包含連接到計(jì)算節(jié)點(diǎn)以便將計(jì)算節(jié)點(diǎn)組織成樹(shù)的數(shù)據(jù)通信鏈路的數(shù)據(jù)通信網(wǎng)絡(luò),所述樹(shù)通過(guò)根計(jì)算節(jié)點(diǎn)和多層計(jì)算節(jié)點(diǎn)來(lái)表征,該并行計(jì)算機(jī)進(jìn)一步包括計(jì)算機(jī)處理器,在操作中連接到計(jì)算機(jī)處理器的計(jì)算機(jī)存儲(chǔ)器,計(jì)算機(jī)存儲(chǔ)器在其內(nèi)存儲(chǔ)有能夠執(zhí)行以下操作的計(jì)算機(jī)程序指令在樹(shù)內(nèi)定義網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,每個(gè)非重疊測(cè)試層次包括樹(shù)的兩個(gè)或更多相鄰層;在每個(gè)非重疊測(cè)試層次內(nèi)定義測(cè)試單元,每個(gè)測(cè)試單元包括樹(shù)的子樹(shù),所述子樹(shù)包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn);分別在每個(gè)非重疊測(cè)試層次集合上對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試;以及分別從上行鏈路測(cè)試以及分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。
8.如權(quán)利要求7所述的并行計(jì)算機(jī),其中對(duì)測(cè)試單元執(zhí)行上行鏈路測(cè)試進(jìn)一步地包括測(cè)試沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路;以及對(duì)測(cè)試單元執(zhí)行下行鏈路測(cè)試進(jìn)一步地包括測(cè)試沿著從子樹(shù)根計(jì)算節(jié)點(diǎn)到子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)的方向傳送通信數(shù)據(jù)的數(shù)據(jù)通信鏈路。
9.如權(quán)利要求7所述的并行計(jì)算機(jī),其中執(zhí)行上行鏈路測(cè)試進(jìn)一步地包括測(cè)試一個(gè)非重疊測(cè)試層次集合中所有測(cè)試單元中的每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的算術(shù)邏輯單元(‘ALU’);以及執(zhí)行下行鏈路測(cè)試進(jìn)一步地包括測(cè)試一個(gè)非重疊測(cè)試層次集合中所有測(cè)試單元中的每個(gè)子樹(shù)根計(jì)算節(jié)點(diǎn)的后代計(jì)算節(jié)點(diǎn)的ALU。
10.如權(quán)利要求7所述的并行計(jì)算機(jī),其中執(zhí)行上行鏈路測(cè)試進(jìn)一步地包括對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元同時(shí)執(zhí)行上行鏈路測(cè)試;以及執(zhí)行下行鏈路測(cè)試進(jìn)一步地包括對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元同時(shí)執(zhí)行下行鏈路測(cè)試。
11.如權(quán)利要求7所述的并行計(jì)算機(jī),其中各層計(jì)算節(jié)點(diǎn)進(jìn)一步包括偶數(shù)層計(jì)算節(jié)點(diǎn)和奇數(shù)層計(jì)算節(jié)點(diǎn);在樹(shù)內(nèi)定義網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合進(jìn)一步包括定義一個(gè)非重疊測(cè)試層次集合,該集合中每個(gè)非重疊測(cè)試層次包括具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;以及對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有偶數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
12.如權(quán)利要求7所述的并行計(jì)算機(jī),其中各層計(jì)算節(jié)點(diǎn)進(jìn)一步包括偶數(shù)層計(jì)算節(jié)點(diǎn)和奇數(shù)層計(jì)算節(jié)點(diǎn);在樹(shù)內(nèi)定義網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合進(jìn)一步包括定義一個(gè)非重疊測(cè)試層次集合,該集合中每個(gè)非重疊測(cè)試層次包括具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元;以及對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試進(jìn)一步包括對(duì)該非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試,該集合中每個(gè)非重疊測(cè)試層次包括具有奇數(shù)層計(jì)算節(jié)點(diǎn)中的子樹(shù)根計(jì)算節(jié)點(diǎn)的測(cè)試單元。
全文摘要
定位并行計(jì)算機(jī)中的硬件故障,包含在并行計(jì)算機(jī)的樹(shù)形網(wǎng)絡(luò)內(nèi)定義網(wǎng)絡(luò)計(jì)算節(jié)點(diǎn)的兩個(gè)或更多非重疊測(cè)試層次集合,所述非重疊測(cè)試層次集合一起包含網(wǎng)絡(luò)的所有數(shù)據(jù)通信鏈路,其中由樹(shù)的兩個(gè)或更多相鄰層組成每個(gè)非重疊測(cè)試層次;在每個(gè)非重疊測(cè)試層次內(nèi)定義測(cè)試單元,其中每個(gè)測(cè)試單元包含樹(shù)的子樹(shù),所述子樹(shù)則包含非重疊測(cè)試層次內(nèi)的子樹(shù)根計(jì)算節(jié)點(diǎn)和該子樹(shù)根計(jì)算節(jié)點(diǎn)的所有后代計(jì)算節(jié)點(diǎn);分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行上行鏈路測(cè)試;以及分別從上行鏈路測(cè)試,并且分別在每個(gè)非重疊測(cè)試層次集合上,對(duì)一個(gè)非重疊測(cè)試層次集合中的所有測(cè)試單元執(zhí)行下行鏈路測(cè)試。
文檔編號(hào)G06F15/163GK101055535SQ20071000445
公開(kāi)日2007年10月17日 申請(qǐng)日期2007年1月23日 優(yōu)先權(quán)日2006年4月13日
發(fā)明者查爾斯·J.·阿奇, 馬克·G.·梅格里安, 約瑟夫·D.·拉特曼, 布賴(lài)恩·E.·史密斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司