欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于在計(jì)算系統(tǒng)上加載程序的方法和系統(tǒng)的制作方法

文檔序號(hào):6574569閱讀:296來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):用于在計(jì)算系統(tǒng)上加載程序的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及計(jì)算機(jī)系統(tǒng)和開(kāi)發(fā)。更具體地說(shuō),本發(fā)明涉及用于減少在分布式或高度并行的計(jì)算機(jī)系統(tǒng)中加載程序以便執(zhí)行所需的時(shí)間的處理過(guò)程。
背景技術(shù)
超級(jí)計(jì)算機(jī)系統(tǒng)繼續(xù)被開(kāi)發(fā)來(lái)解決日益復(fù)雜的計(jì)算問(wèn)題。已經(jīng)證明了這些系統(tǒng)對(duì)于包括生命科學(xué)、財(cái)務(wù)建模、流體力學(xué)、量子化學(xué)、分子動(dòng)力學(xué)、天文學(xué)、氣象建模和預(yù)報(bào)、以及地質(zhì)建模的大量應(yīng)用來(lái)說(shuō)是特別有用的。超級(jí)計(jì)算機(jī)的開(kāi)發(fā)人員關(guān)注大規(guī)模并行計(jì)算機(jī)體系結(jié)構(gòu),以便提供不斷增加的計(jì)算能力來(lái)應(yīng)用到這些應(yīng)用和其他應(yīng)用。
依照所謂的深藍(lán)(blue gene)技術(shù),由國(guó)際商業(yè)機(jī)器公司(IBM)開(kāi)發(fā)(并繼續(xù)開(kāi)發(fā))了一系列大規(guī)模并行系統(tǒng)。深藍(lán)/L系統(tǒng)是可擴(kuò)展的(scalable),其可以被配置有最大65,536(216)個(gè)計(jì)算節(jié)點(diǎn)。每一個(gè)深藍(lán)/L節(jié)點(diǎn)均包括具有存儲(chǔ)器和2個(gè)CPU的單個(gè)專(zhuān)用集成電路(ASIC)。深藍(lán)體系結(jié)構(gòu)已經(jīng)極其成功,并且在2005年10月27日,IBM宣布深藍(lán)/L系統(tǒng)已經(jīng)達(dá)到了280.6teraflops的運(yùn)算速度(每秒可完成280.6萬(wàn)億次浮點(diǎn)運(yùn)算),從而使其成為目前世界上最快的計(jì)算機(jī)。另外,自從2005年6月以來(lái),在世界范圍內(nèi)的各個(gè)地點(diǎn)的深藍(lán)/L安裝占世界上最強(qiáng)大的前十臺(tái)計(jì)算機(jī)中的5臺(tái)。
IBM目前正在開(kāi)發(fā)深藍(lán)/L系統(tǒng)的后繼產(chǎn)品,稱(chēng)之為深藍(lán)/P。期望深藍(lán)/P是第一個(gè)以穩(wěn)定的1petaflops(每秒完成1千萬(wàn)億次浮點(diǎn)運(yùn)算)進(jìn)行操作的計(jì)算機(jī)系統(tǒng)。與深藍(lán)/L系統(tǒng)相似,深藍(lán)/P系統(tǒng)是設(shè)計(jì)具有最大73,728個(gè)計(jì)算節(jié)點(diǎn)的可擴(kuò)展系統(tǒng)。每一個(gè)深藍(lán)/P節(jié)點(diǎn)均包括具有存儲(chǔ)器和4個(gè)CPU的單個(gè)專(zhuān)用集成電路(ASIC)。整個(gè)深藍(lán)/P系統(tǒng)容納在72個(gè)機(jī)架或機(jī)柜中,每個(gè)系統(tǒng)具有32個(gè)節(jié)點(diǎn)板(每個(gè)板具有32個(gè)節(jié)點(diǎn))。
除了由IBM開(kāi)發(fā)的深藍(lán)體系結(jié)構(gòu)外,其他分布式計(jì)算機(jī)系統(tǒng)可以具有與大規(guī)模并行計(jì)算機(jī)系統(tǒng)類(lèi)似的整體體系結(jié)構(gòu)。其他分布式系統(tǒng)的例子包括集群系統(tǒng)和基于網(wǎng)格的系統(tǒng)。例如,Beowulf集群是一組計(jì)算機(jī)系統(tǒng),每個(gè)計(jì)算機(jī)系統(tǒng)運(yùn)行類(lèi)似Unix的操作系統(tǒng),諸如Linux或BSD操作系統(tǒng)。該集合中的計(jì)算機(jī)系統(tǒng)經(jīng)由高速網(wǎng)絡(luò)連接到小型的TCP/IP LAN中,并且安裝有允許在節(jié)點(diǎn)間共享處理的庫(kù)和程序。
在執(zhí)行上述許多應(yīng)用的過(guò)程中,超級(jí)計(jì)算機(jī)系統(tǒng)用來(lái)解決大量通常涉及為不同數(shù)據(jù)集執(zhí)行基本上相同的計(jì)算的問(wèn)題。這類(lèi)應(yīng)用的例子包括對(duì)分子相互作用進(jìn)行建模,諸如,對(duì)單個(gè)蛋白質(zhì)的折疊進(jìn)行仿真。對(duì)于這些類(lèi)型的應(yīng)用而言,在任何給定節(jié)點(diǎn)上執(zhí)行的程序使用相對(duì)少量的數(shù)據(jù)。然后,該程序進(jìn)行涉及該數(shù)據(jù)的許多計(jì)算。當(dāng)完成計(jì)算時(shí),返回計(jì)算的結(jié)果。因?yàn)樯锨€(gè)節(jié)點(diǎn)正在執(zhí)行相同的計(jì)算(對(duì)于不同的數(shù)據(jù)集),所以在相對(duì)短的時(shí)間段中,可以處理極其大的數(shù)據(jù)集。
在給定高度并行的超級(jí)計(jì)算機(jī)、諸如深藍(lán)系統(tǒng)或者其他分布式系統(tǒng)中的節(jié)點(diǎn)的數(shù)量的情況下,要求任何單一節(jié)點(diǎn)的極其少量開(kāi)銷(xiāo)的操作通??傮w上轉(zhuǎn)換成用于該系統(tǒng)的大量時(shí)間。例如,由各個(gè)計(jì)算節(jié)點(diǎn)加載程序所需的總時(shí)間可能是相當(dāng)大的。因此,總起來(lái)說(shuō),簡(jiǎn)單地將程序傳送到計(jì)算節(jié)點(diǎn),可能會(huì)花費(fèi)相當(dāng)大量的時(shí)間。在分布式系統(tǒng)中,出現(xiàn)了相同的現(xiàn)象,在所述分布式系統(tǒng)中數(shù)據(jù)集、程序等必須被傳送到作為分布式系統(tǒng)的一部分的處理節(jié)點(diǎn)。因此,現(xiàn)有技術(shù)中需要有可以減少高度并行或分布式計(jì)算機(jī)中的程序加載時(shí)間的技術(shù)。

發(fā)明內(nèi)容
本發(fā)明總體上提供了一種用于減少在高度并行或分布式計(jì)算機(jī)系統(tǒng)中加載程序所需的時(shí)間的方法。本發(fā)明的一個(gè)實(shí)施例提供了一種在包括多個(gè)處理節(jié)點(diǎn)的計(jì)算系統(tǒng)上加載程序的方法。該方法總體上包括如果處理節(jié)點(diǎn)可用的話,則識(shí)別先前執(zhí)行該程序的多個(gè)處理節(jié)點(diǎn),其中,該程序與提交用于由計(jì)算系統(tǒng)執(zhí)行的計(jì)算作業(yè)有關(guān)。該方法總體上進(jìn)一步包括向每一個(gè)識(shí)別的處理節(jié)點(diǎn)傳送用于保留與該程序的先前執(zhí)行有關(guān)的頁(yè)表的消息,以及將該計(jì)算作業(yè)分派到多個(gè)處理節(jié)點(diǎn)。
本發(fā)明的另一個(gè)實(shí)施例包括包含有程序的計(jì)算機(jī)可讀介質(zhì),當(dāng)所述程序被執(zhí)行時(shí),執(zhí)行用于在包括多個(gè)處理節(jié)點(diǎn)的計(jì)算系統(tǒng)上加載程序的操作。所述操作總體上包括如果處理節(jié)點(diǎn)可用,則識(shí)別先前執(zhí)行該程序的多個(gè)處理節(jié)點(diǎn),其中,該程序與提交用于由計(jì)算系統(tǒng)執(zhí)行的計(jì)算作業(yè)有關(guān)。所述操作總體上進(jìn)一步包括向每一個(gè)識(shí)別的處理節(jié)點(diǎn)傳送用于保留與該程序的先前執(zhí)行有關(guān)的頁(yè)表的消息,以及將該計(jì)算作業(yè)分派到多個(gè)處理節(jié)點(diǎn)。
本發(fā)明的又一個(gè)實(shí)施例包括一種并行計(jì)算系統(tǒng)。該系統(tǒng)總體上包括多個(gè)計(jì)算節(jié)點(diǎn)和一控制系統(tǒng),該控制系統(tǒng)被配置成通過(guò)執(zhí)行一組操作,在多個(gè)計(jì)算節(jié)點(diǎn)中的至少一些計(jì)算節(jié)點(diǎn)上執(zhí)行計(jì)算作業(yè)。所述操作總體上可以包括如果處理節(jié)點(diǎn)可用,則識(shí)別先前執(zhí)行程序的多個(gè)處理節(jié)點(diǎn),其中,該計(jì)算作業(yè)標(biāo)識(shí)將要在該并行計(jì)算系統(tǒng)上執(zhí)行的程序。所述操作總體上可以進(jìn)一步包括向計(jì)算節(jié)點(diǎn)集中的至少一些計(jì)算節(jié)點(diǎn)傳送用于保留與該程序的先前執(zhí)行有關(guān)的頁(yè)表的消息,以及將該計(jì)算作業(yè)分派到包括在該計(jì)算節(jié)點(diǎn)集中的至少一些計(jì)算節(jié)點(diǎn)。


通過(guò)參考在附圖中示出的本發(fā)明的實(shí)施例,可以獲得實(shí)現(xiàn)和詳細(xì)地理解本發(fā)明的上述特征、優(yōu)點(diǎn)和目的的方式,以及對(duì)以上簡(jiǎn)要概括的本發(fā)明的更加具體的描述。
然而,應(yīng)注意到,附圖僅僅示例說(shuō)明了本發(fā)明的典型實(shí)施例,因此,不應(yīng)將視為對(duì)本發(fā)明范圍的限制,對(duì)本發(fā)明來(lái)說(shuō),可以允許其他等效的實(shí)施例。
圖1是示例說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的大規(guī)模并行計(jì)算機(jī)系統(tǒng)的框圖。
圖2是進(jìn)一步示例說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的大規(guī)模并行計(jì)算機(jī)系統(tǒng)的框圖。
圖3是進(jìn)一步示例說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的大規(guī)模并行計(jì)算機(jī)系統(tǒng)的方面的框圖。
圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例由服務(wù)節(jié)點(diǎn)維護(hù)的計(jì)算節(jié)點(diǎn)狀態(tài)表的框圖。
圖5是示例說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例用于準(zhǔn)備計(jì)算節(jié)點(diǎn)集以便在高度并行或分布式計(jì)算機(jī)系統(tǒng)上執(zhí)行計(jì)算作業(yè)的方法的流程圖。
圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例示例說(shuō)明了高度并行或分布式計(jì)算機(jī)系統(tǒng)的計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算作業(yè)的方法的流程圖。
圖7A-7B示例說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例由高度并行或分布式計(jì)算機(jī)系統(tǒng)的計(jì)算節(jié)點(diǎn)維護(hù)的頁(yè)表。
具體實(shí)施例方式
本發(fā)明的實(shí)施例提供了一種用于減少高度并行或分布式計(jì)算機(jī)中的程序加載時(shí)間的方法。這通過(guò)下述操作來(lái)實(shí)現(xiàn)只要可能的話,就重新使用由高度并行或分布式計(jì)算機(jī)系統(tǒng)的特定計(jì)算節(jié)點(diǎn)處的程序的先前調(diào)用所加載的信息。由于當(dāng)分派作業(yè)以便執(zhí)行時(shí)傳送到計(jì)算節(jié)點(diǎn)的一些數(shù)據(jù)段是存儲(chǔ)器中不可變的程序的二進(jìn)制指令,所以根據(jù)相同程序的先前調(diào)用,能夠節(jié)省存儲(chǔ)頁(yè)。因此,本發(fā)明的實(shí)施例避免了否則每次控制系統(tǒng)將作業(yè)分派到特定計(jì)算節(jié)點(diǎn)時(shí)將會(huì)出現(xiàn)的頁(yè)錯(cuò)誤。同時(shí),當(dāng)指示開(kāi)始執(zhí)行特定作業(yè)時(shí),給定的計(jì)算節(jié)點(diǎn)不必等待將二進(jìn)制指令分頁(yè)(page)到存儲(chǔ)器中。
在此參考由IBM開(kāi)發(fā)的深藍(lán)體系結(jié)構(gòu)來(lái)描述本發(fā)明的實(shí)施例。在此所述的實(shí)施例對(duì)于包括上千個(gè)處理節(jié)點(diǎn)的大規(guī)模并行計(jì)算機(jī)系統(tǒng)、諸如深藍(lán)系統(tǒng)而言特別有利。然而,本發(fā)明的實(shí)施例可以適用于采用被配置成經(jīng)由網(wǎng)絡(luò)通信的多個(gè)CPU的各種并行計(jì)算機(jī)系統(tǒng)中。例如,實(shí)施例可以很容易地適用在諸如集群或網(wǎng)格之類(lèi)的分布式體系結(jié)構(gòu)中,在這種體系結(jié)構(gòu)中,每個(gè)處理節(jié)點(diǎn)可能是經(jīng)由本地、地區(qū)或全球網(wǎng)絡(luò)彼此通信的計(jì)算機(jī)系統(tǒng)。
在下文中,描述本發(fā)明的實(shí)施例,然而,應(yīng)當(dāng)理解,本發(fā)明不局限于具體描述的實(shí)施例。事實(shí)上,下述特征和元素的任意組合,不管是否與不同實(shí)施例有關(guān),預(yù)期都可以實(shí)現(xiàn)和實(shí)施本發(fā)明。此外,在不同實(shí)施例中,本發(fā)明提供了很多優(yōu)于現(xiàn)有技術(shù)的優(yōu)點(diǎn)。然而,盡管本發(fā)明的實(shí)施例可以實(shí)現(xiàn)優(yōu)于其他可能的解決方案和/或現(xiàn)有技術(shù)的優(yōu)點(diǎn),但是,是否由給定的實(shí)施例實(shí)現(xiàn)特定的優(yōu)點(diǎn),不會(huì)對(duì)本發(fā)明構(gòu)成限制。因此,下述方面、特征、實(shí)施例和優(yōu)點(diǎn)僅僅是示例性的,并且不應(yīng)視為附加權(quán)利要求的要素或限制,除非在一個(gè)或多個(gè)權(quán)利要求中明確地記載了。同樣地,對(duì)“本發(fā)明”的描述不應(yīng)當(dāng)被視為對(duì)在此公開(kāi)的任何發(fā)明主題的概括,并且也不應(yīng)當(dāng)被視為附加權(quán)利要求的要素或限制,除非在一個(gè)或多個(gè)權(quán)利要求中明確地描述了。
本發(fā)明的一個(gè)實(shí)施例被實(shí)現(xiàn)為用于與計(jì)算機(jī)系統(tǒng)、諸如例如圖1所示和以下所述的計(jì)算環(huán)境100一起使用的程序產(chǎn)品。程序產(chǎn)品中的程序(一個(gè)或多個(gè))定義了實(shí)施例(包括在此所述的方法)中的功能,并且能夠被包含在多種信號(hào)承載介質(zhì)上。示例性的信號(hào)承載介質(zhì)包括但不局限于(i)在不可寫(xiě)的存儲(chǔ)介質(zhì)(例如,計(jì)算機(jī)內(nèi)的只讀存儲(chǔ)器設(shè)備,諸如CD-R0M驅(qū)動(dòng)器可讀的CD-ROM盤(pán))上永久存儲(chǔ)的信息;(ii)在可寫(xiě)的存儲(chǔ)介質(zhì)(例如,盤(pán)驅(qū)動(dòng)器或硬盤(pán)驅(qū)動(dòng)器內(nèi)的軟盤(pán))上存儲(chǔ)的可變信息;以及(iii)通過(guò)通信介質(zhì)、諸如通過(guò)計(jì)算機(jī)或電話網(wǎng)絡(luò)(包括無(wú)線通信)傳送到計(jì)算機(jī)的信息。后一種實(shí)施例特別包括了從互聯(lián)網(wǎng)或其他網(wǎng)絡(luò)下載的信息。這種信號(hào)承載介質(zhì)在攜帶有指示本發(fā)明的功能的計(jì)算機(jī)可讀指令時(shí),表示本發(fā)明的實(shí)施例。
通常,為實(shí)現(xiàn)本發(fā)明的實(shí)施例而執(zhí)行的例程可以是操作系統(tǒng)或特定應(yīng)用的一部分、組件、程序、模塊、對(duì)象或指令序列。本發(fā)明的計(jì)算機(jī)程序通常由將由本機(jī)轉(zhuǎn)換成機(jī)器可讀格式并由此轉(zhuǎn)換為可執(zhí)行指令的大量指令組成。此外,程序包括對(duì)于程序而言本地駐留的或者在存儲(chǔ)器中或存儲(chǔ)設(shè)備上找到的變量和數(shù)據(jù)結(jié)構(gòu)。另外,可以基于在本發(fā)明的具體實(shí)施例中實(shí)現(xiàn)程序的應(yīng)用,標(biāo)識(shí)下文所述的各種程序。然而,應(yīng)當(dāng)意識(shí)到,下文的任何特定術(shù)語(yǔ)僅僅是為了方便而使用的,由此本發(fā)明不應(yīng)當(dāng)被限制為僅僅用在由這種術(shù)語(yǔ)標(biāo)識(shí)和/或暗示的任何特定應(yīng)用中。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例示例說(shuō)明了高度并行的計(jì)算機(jī)系統(tǒng)100的框圖。特別地,計(jì)算機(jī)系統(tǒng)100示例說(shuō)明了深藍(lán)系統(tǒng)的高級(jí)框圖。如圖所示,計(jì)算機(jī)系統(tǒng)100包括計(jì)算節(jié)點(diǎn)集110和輸入/輸出(I/O)節(jié)點(diǎn)集112。計(jì)算節(jié)點(diǎn)110提供了計(jì)算機(jī)系統(tǒng)100的計(jì)算能力。在一個(gè)實(shí)施例中,每一計(jì)算節(jié)點(diǎn)110均包括一個(gè)或多個(gè)CPU。另外,每一計(jì)算節(jié)點(diǎn)110都可以包括用來(lái)存儲(chǔ)程序指令和對(duì)其執(zhí)行指令的數(shù)據(jù)集的存儲(chǔ)器。
在一個(gè)實(shí)施例中,計(jì)算節(jié)點(diǎn)110可以被配置成對(duì)于同一程序的多次調(diào)用重新使用與在計(jì)算節(jié)點(diǎn)110上執(zhí)行的程序有關(guān)的頁(yè)表。眾所周知,頁(yè)表提供了頁(yè)面的索引以及它們的物理和邏輯地址。下面更詳細(xì)地描述程序頁(yè)表的重新使用。
I/O節(jié)點(diǎn)112可以經(jīng)由功能網(wǎng)絡(luò)160提供計(jì)算節(jié)點(diǎn)110和文件服務(wù)器130間的物理接口。在一個(gè)實(shí)施例中,計(jì)算節(jié)點(diǎn)110和I/O節(jié)點(diǎn)112經(jīng)由控制網(wǎng)絡(luò)150和/或功能網(wǎng)絡(luò)160與服務(wù)器130、前端節(jié)點(diǎn)120和服務(wù)節(jié)點(diǎn)140進(jìn)行通信。在深藍(lán)系統(tǒng)中,I/O節(jié)點(diǎn)112和計(jì)算節(jié)點(diǎn)110的彼此不同之處僅在于通過(guò)誰(shuí)來(lái)啟用網(wǎng)絡(luò)接口,以及系統(tǒng)100如何使用該節(jié)點(diǎn)。I/O節(jié)點(diǎn)112也可以被配置成執(zhí)行便于計(jì)算系統(tǒng)100的控制、引導(dǎo)、作業(yè)運(yùn)行和調(diào)試的進(jìn)程。這有助于簡(jiǎn)化在每一計(jì)算節(jié)點(diǎn)110上運(yùn)行的操作系統(tǒng)內(nèi)核,因?yàn)槊恳挥?jì)算節(jié)點(diǎn)110僅需要與幾個(gè)I/O節(jié)點(diǎn)112進(jìn)行通信。前端節(jié)點(diǎn)120存儲(chǔ)由與系統(tǒng)100進(jìn)行交互的用戶使用的編譯器和其他應(yīng)用。典型地,用戶訪問(wèn)前端節(jié)點(diǎn)120,提交程序以便進(jìn)行編譯,以及將作業(yè)提交給服務(wù)節(jié)點(diǎn)140。
服務(wù)節(jié)點(diǎn)140可以包括由系統(tǒng)100提供的系統(tǒng)數(shù)據(jù)庫(kù)和所有管理工具。通常,服務(wù)節(jié)點(diǎn)140包括被配置成處理計(jì)算節(jié)點(diǎn)110上的軟件程序和數(shù)據(jù)的調(diào)度和加載的計(jì)算系統(tǒng)。在一個(gè)實(shí)施例中,服務(wù)節(jié)點(diǎn)可以被配置成組合一組計(jì)算節(jié)點(diǎn)110(被稱(chēng)為塊),以及將作業(yè)分派到一個(gè)塊,以便執(zhí)行。服務(wù)節(jié)點(diǎn)140通常是包括操作系統(tǒng)、存儲(chǔ)器、存儲(chǔ)設(shè)備和控制臺(tái)(未示出)的計(jì)算機(jī)系統(tǒng)。例如,深藍(lán)/P系統(tǒng)使用運(yùn)行Linux操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)。服務(wù)節(jié)點(diǎn)140經(jīng)由控制網(wǎng)絡(luò)150與計(jì)算節(jié)點(diǎn)110進(jìn)行通信??刂凭W(wǎng)絡(luò)150為服務(wù)節(jié)點(diǎn)140提供通信信道,以便控制系統(tǒng)100的操作方面。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例進(jìn)一步示例說(shuō)明大規(guī)模并行計(jì)算機(jī)系統(tǒng)的方面的框圖。特別地,圖2示出了示例說(shuō)明深藍(lán)/P計(jì)算機(jī)系統(tǒng)的方面的框圖。如上所述,深藍(lán)/P是設(shè)計(jì)具有最大73,728個(gè)計(jì)算節(jié)點(diǎn)110的可擴(kuò)展系統(tǒng)。在深藍(lán)/P系統(tǒng)中,每一計(jì)算節(jié)點(diǎn)110封裝在節(jié)點(diǎn)卡上,并且由具有存儲(chǔ)器214和四個(gè)CPU的單個(gè)專(zhuān)用集成電路(ASIC)212組成。節(jié)點(diǎn)板220容納32個(gè)節(jié)點(diǎn)卡,每個(gè)節(jié)點(diǎn)卡具有一節(jié)點(diǎn)110。因此,每一節(jié)點(diǎn)板具有32個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)110具有存儲(chǔ)器214和4個(gè)CPU。機(jī)架230是保持32個(gè)節(jié)點(diǎn)板220的殼體。整個(gè)深藍(lán)/P系統(tǒng)將被容納在72個(gè)機(jī)架130中,并且每個(gè)機(jī)架中具有32個(gè)節(jié)點(diǎn)板220。因此,整個(gè)深藍(lán)/P系統(tǒng)將具有最大294,912個(gè)CPU(72個(gè)機(jī)架×32個(gè)節(jié)點(diǎn)板×32個(gè)節(jié)點(diǎn)×4個(gè)CPU)。
深藍(lán)/P計(jì)算機(jī)系統(tǒng)包括多個(gè)數(shù)據(jù)通信網(wǎng)絡(luò)。位于一些節(jié)點(diǎn)板220上的I/O處理器處理服務(wù)節(jié)點(diǎn)140和一組計(jì)算節(jié)點(diǎn)110間的數(shù)據(jù)通信。在一個(gè)實(shí)施例中,每一I/O節(jié)點(diǎn)112管理功能網(wǎng)絡(luò)160上的多至1024個(gè)計(jì)算節(jié)點(diǎn)110的數(shù)據(jù)通信。在深藍(lán)/P系統(tǒng)中,將73,728個(gè)計(jì)算節(jié)點(diǎn)110和1024個(gè)I/O節(jié)點(diǎn)配置為經(jīng)由邏輯樹(shù)網(wǎng)絡(luò)和環(huán)形(torus)網(wǎng)絡(luò)進(jìn)行通信。環(huán)形網(wǎng)絡(luò)以類(lèi)似網(wǎng)格的結(jié)構(gòu)連接計(jì)算節(jié)點(diǎn)110,該類(lèi)似網(wǎng)格的結(jié)構(gòu)允許每一計(jì)算節(jié)點(diǎn)110直接與其六個(gè)最近的鄰居節(jié)點(diǎn)進(jìn)行通信。節(jié)點(diǎn)110可以使用非常公知的消息傳遞接口(MPI)、在開(kāi)發(fā)用于高度并行或集群計(jì)算機(jī)系統(tǒng)(例如,系統(tǒng)100)的應(yīng)用時(shí)使用的應(yīng)用編程接口,經(jīng)由環(huán)形網(wǎng)絡(luò)進(jìn)行通信。任何一個(gè)計(jì)算節(jié)點(diǎn)110都可以經(jīng)由環(huán)形網(wǎng)絡(luò)將消息路由到另一計(jì)算節(jié)點(diǎn)110。
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例進(jìn)一步示例說(shuō)明大規(guī)模并行計(jì)算機(jī)系統(tǒng)的方面的框圖。特別地,圖3進(jìn)一步示例說(shuō)明了深藍(lán)/P計(jì)算機(jī)系統(tǒng)的系統(tǒng)體系結(jié)構(gòu)的視圖。圖3包括被示為連接到控制系統(tǒng)208的計(jì)算核心210的計(jì)算機(jī)系統(tǒng)100的所有計(jì)算節(jié)點(diǎn)110的表示。計(jì)算核心210經(jīng)由控制系統(tǒng)網(wǎng)絡(luò)150與控制系統(tǒng)208的服務(wù)節(jié)點(diǎn)140進(jìn)行通信。把計(jì)算核心210通過(guò)將每一I/O節(jié)點(diǎn)112與計(jì)算節(jié)點(diǎn)集110連接的硬件控制器270連接到控制系統(tǒng)網(wǎng)絡(luò)150。
計(jì)算機(jī)系統(tǒng)100可以被描述為具有I/O節(jié)點(diǎn)面的計(jì)算節(jié)點(diǎn)核心210,其中,由同一I/O節(jié)點(diǎn)112管理與1024個(gè)計(jì)算節(jié)點(diǎn)110的通信。在深藍(lán)系統(tǒng)中,I/O節(jié)點(diǎn)112通過(guò)樹(shù)網(wǎng)絡(luò)214連接到計(jì)算節(jié)點(diǎn)110,并且通過(guò)千兆位以太網(wǎng)(例如,網(wǎng)絡(luò)160),在功能上還具有廣域網(wǎng)能力。
在一個(gè)實(shí)施例中,硬件控制器270使用JTAG網(wǎng)絡(luò)219,與計(jì)算節(jié)點(diǎn)110進(jìn)行通信。如已知的那樣,JTAG是低級(jí)通信協(xié)議,其可以用來(lái)初始化計(jì)算節(jié)點(diǎn)以及使它們準(zhǔn)備好具有加載的系統(tǒng)映像。JTAG網(wǎng)絡(luò)也可以用來(lái)執(zhí)行各種其他低級(jí)監(jiān)視和支持功能。硬件控制器270駐留在每一機(jī)架230中,并且為控制系統(tǒng)208提供接口,以便配置計(jì)算節(jié)點(diǎn)110以及將程序指令和數(shù)據(jù)加載到計(jì)算節(jié)點(diǎn)的存儲(chǔ)器214中。在深藍(lán)/P計(jì)算機(jī)系統(tǒng)中,每一節(jié)點(diǎn)板和中平面的封裝包括IDo芯片。IDo芯片為使用經(jīng)由JTAG網(wǎng)絡(luò)219發(fā)送的UDP包從服務(wù)節(jié)點(diǎn)接收命令的25MHz FPGA。
另外,如圖3所示,計(jì)算核心210還經(jīng)由功能網(wǎng)絡(luò)160與文件服務(wù)器130和前端節(jié)點(diǎn)120進(jìn)行通信。功能網(wǎng)絡(luò)160可以是千兆位以太網(wǎng)。文件服務(wù)器130存儲(chǔ)用于用戶應(yīng)用和系統(tǒng)映像的數(shù)據(jù)。各個(gè)計(jì)算節(jié)點(diǎn)通過(guò)與I/O節(jié)點(diǎn)112通信,來(lái)訪問(wèn)文件服務(wù)器。例如,計(jì)算節(jié)點(diǎn)可以經(jīng)由NFS共享來(lái)訪問(wèn)文件服務(wù)器130。在一個(gè)實(shí)施例中,控制系統(tǒng)212包括被配置成保持用于指定與計(jì)算節(jié)點(diǎn)110有關(guān)的狀態(tài)信息的數(shù)據(jù)表的數(shù)據(jù)庫(kù)250。中平面管理控制系統(tǒng)(MMCS)144可以被配置成對(duì)將計(jì)算核心210中的硬件分配給不同計(jì)算作業(yè)進(jìn)行管理。控制系統(tǒng)208還連接到功能網(wǎng)絡(luò)160。在一個(gè)實(shí)施例,該連接允許控制系統(tǒng)208檢測(cè)在加載了系統(tǒng)映像和數(shù)據(jù)文件后計(jì)算節(jié)點(diǎn)110何時(shí)完成引導(dǎo)過(guò)程??刂葡到y(tǒng)208進(jìn)一步包括用于由用戶和系統(tǒng)管理員使用的控制臺(tái)260。
再次參考圖3,計(jì)算核心210示例說(shuō)明了容納在機(jī)架230中的計(jì)算節(jié)點(diǎn)110。在深藍(lán)系統(tǒng)中,計(jì)算節(jié)點(diǎn)被分組成處理集(pset)。pset是在一個(gè)集合中組合在一起用于與特定I/O節(jié)點(diǎn)112進(jìn)行通信的64個(gè)節(jié)點(diǎn)所構(gòu)成的組。在一個(gè)實(shí)施例中,計(jì)算核心210可以被劃分成最大多個(gè)pset,每個(gè)pset都具有一個(gè)運(yùn)行Linux操作系統(tǒng)內(nèi)核的I/O節(jié)點(diǎn)112,以及64個(gè)運(yùn)行作為系統(tǒng)映像經(jīng)由控制網(wǎng)絡(luò)150傳送的計(jì)算節(jié)點(diǎn)內(nèi)核(CNK)的計(jì)算節(jié)點(diǎn)110。如所描述的那樣,I/O節(jié)點(diǎn)112為給定pset中的計(jì)算節(jié)點(diǎn)提供功能網(wǎng)絡(luò)160上的通信。在深藍(lán)/P系統(tǒng)中,I/O節(jié)點(diǎn)112可以被配置成在8和128個(gè)計(jì)算節(jié)點(diǎn)間進(jìn)行通信。
每一計(jì)算節(jié)點(diǎn)110都包括在計(jì)算節(jié)點(diǎn)110的存儲(chǔ)器214中存儲(chǔ)的系統(tǒng)映像和數(shù)據(jù)文件218。系統(tǒng)映像文件和計(jì)算節(jié)點(diǎn)內(nèi)核(CNK)218包括系統(tǒng)文件,諸如操作系統(tǒng)內(nèi)核。計(jì)算節(jié)點(diǎn)內(nèi)核218存儲(chǔ)在每一計(jì)算節(jié)點(diǎn)110的存儲(chǔ)器214中。在指示計(jì)算節(jié)點(diǎn)110執(zhí)行任何用戶應(yīng)用前,通常加載系統(tǒng)映像文件,并且計(jì)算節(jié)點(diǎn)內(nèi)核218通常開(kāi)始執(zhí)行。
為了在計(jì)算機(jī)系統(tǒng)100上執(zhí)行計(jì)算作業(yè),請(qǐng)求服務(wù)節(jié)點(diǎn)140將計(jì)算節(jié)點(diǎn)集110分配到一個(gè)塊以便運(yùn)行作業(yè)。由于計(jì)算節(jié)點(diǎn)110可能不包括任何本地永久存儲(chǔ)器,諸如硬盤(pán)驅(qū)動(dòng)器,因此,計(jì)算節(jié)點(diǎn)110必須加載有適當(dāng)?shù)能浖员氵\(yùn)行作業(yè)。在一個(gè)實(shí)施例中,用戶指定所需劃分的特性以便執(zhí)行作業(yè)。調(diào)度器280選擇計(jì)算節(jié)點(diǎn)集110來(lái)形成用來(lái)執(zhí)行作業(yè)的塊。一旦選定了計(jì)算節(jié)點(diǎn),就由服務(wù)節(jié)點(diǎn)140使用控制網(wǎng)絡(luò)150把由調(diào)度器280選擇的計(jì)算節(jié)點(diǎn)110(以及相應(yīng)的I/O節(jié)點(diǎn)112)配置成一個(gè)塊。一旦創(chuàng)建了塊,就可以通過(guò)經(jīng)由網(wǎng)絡(luò)150和/或160與I/O節(jié)點(diǎn)112通信的控制系統(tǒng)208來(lái)分派作業(yè)。
在一個(gè)實(shí)施例中,服務(wù)節(jié)點(diǎn)140使用數(shù)據(jù)庫(kù)250和節(jié)點(diǎn)狀態(tài)表252來(lái)維護(hù)每一計(jì)算節(jié)點(diǎn)110上所調(diào)用的最后一個(gè)程序的表。當(dāng)用戶調(diào)用作業(yè)時(shí),控制系統(tǒng)208確定最后運(yùn)行正在分派的相同程序的任何計(jì)算節(jié)點(diǎn)110當(dāng)前是否可用。如果計(jì)算節(jié)點(diǎn)110可用,那么控制系統(tǒng)208指示這些計(jì)算節(jié)點(diǎn)110保留與作業(yè)請(qǐng)求中標(biāo)識(shí)的程序相關(guān)的頁(yè)表。除與正分派的程序有關(guān)的一個(gè)頁(yè)表外的所有頁(yè)表都被計(jì)算節(jié)點(diǎn)丟棄。另外,來(lái)自被標(biāo)記為無(wú)效或可寫(xiě)的保留頁(yè)表的條目可以從保留頁(yè)表中移除?,F(xiàn)在已經(jīng)從最后運(yùn)行正在分派的程序的進(jìn)程的存儲(chǔ)空間中清除了由該程序的先前執(zhí)行所創(chuàng)建或修改的任何數(shù)據(jù)。同時(shí),保留了被標(biāo)記為只讀或可執(zhí)行的頁(yè),并且當(dāng)由計(jì)算節(jié)點(diǎn)110執(zhí)行正在分派的作業(yè)時(shí),所述頁(yè)將不需要被加載,或者不會(huì)導(dǎo)致頁(yè)錯(cuò)誤(頁(yè)錯(cuò)誤是當(dāng)在物理存儲(chǔ)器中未映射所需頁(yè)時(shí)由存儲(chǔ)器管理單元產(chǎn)生的異常)。
現(xiàn)在,將程序分派到計(jì)算節(jié)點(diǎn)110??刂葡到y(tǒng)208指示計(jì)算節(jié)點(diǎn)110使用所保留的頁(yè)表,而不是為正在分派的進(jìn)程創(chuàng)建新頁(yè)表。作為計(jì)算作業(yè)的一部分的任何其他進(jìn)程從清除存儲(chǔ)空間開(kāi)始,并且可以通過(guò)使用按需分頁(yè)(paging)進(jìn)程,使用功能網(wǎng)絡(luò)和I/O節(jié)點(diǎn)112將頁(yè)面引入存儲(chǔ)器中。當(dāng)程序開(kāi)始執(zhí)行時(shí),它嘗試從存儲(chǔ)器單元中加載第一條指令。通常,這將會(huì)觸發(fā)頁(yè)錯(cuò)誤。該異常被傳遞到操作系統(tǒng),作為響應(yīng),操作系統(tǒng)將所需頁(yè)面從某一輔助存儲(chǔ)源加載到物理存儲(chǔ)器中。然而,因?yàn)閬?lái)自保留頁(yè)表的信息包含有效的映射,所以程序已經(jīng)準(zhǔn)備好訪問(wèn)信息二進(jìn)制指令。對(duì)于用于該程序的所有指令而言,這種情況都將會(huì)發(fā)生。因此,可以基本上減少與保留頁(yè)表有關(guān)的應(yīng)用的加載時(shí)間。這特別適用于大規(guī)模并行系統(tǒng)、諸如深藍(lán)系統(tǒng)的情形,該大規(guī)模并行系統(tǒng)可以分派具有不同數(shù)據(jù)集的相同作業(yè)達(dá)數(shù)千、數(shù)百萬(wàn)、甚至數(shù)十億次。
圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例由服務(wù)節(jié)點(diǎn)140維護(hù)的計(jì)算節(jié)點(diǎn)狀態(tài)表252的框圖。在一個(gè)實(shí)施例中,節(jié)點(diǎn)狀態(tài)表252可以被存儲(chǔ)為數(shù)據(jù)庫(kù)250的一部分。如圖所示,節(jié)點(diǎn)狀態(tài)表252包括計(jì)算節(jié)點(diǎn)110的列表,該計(jì)算節(jié)點(diǎn)是與在每一節(jié)點(diǎn)上執(zhí)行的最后一個(gè)作業(yè)匹配的給定系統(tǒng)的一部分。因此,當(dāng)用戶分派作業(yè)請(qǐng)求時(shí),控制系統(tǒng)208可以使用節(jié)點(diǎn)狀態(tài)表252來(lái)識(shí)別先前執(zhí)行正在分派的作業(yè)的節(jié)點(diǎn)。
圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例用于準(zhǔn)備計(jì)算節(jié)點(diǎn)集110來(lái)在高度并行或分布式計(jì)算機(jī)系統(tǒng)上執(zhí)行計(jì)算作業(yè)的方法的流程圖。方法500從步驟510開(kāi)始,其中,控制系統(tǒng)208接收作業(yè)描述以便分派到計(jì)算核心210。在一個(gè)實(shí)施例中,作業(yè)描述可以指定要執(zhí)行何種應(yīng)用程序、所期望的性能特性,諸如要使用的執(zhí)行所述作業(yè)的計(jì)算節(jié)點(diǎn)110的數(shù)量或者完成作業(yè)所需的估計(jì)時(shí)間,并且作業(yè)描述可以進(jìn)一步包括與給定作業(yè)有關(guān)的數(shù)據(jù)集。
在步驟520,控制系統(tǒng)208可以確定最后執(zhí)行在作業(yè)描述中指定的應(yīng)用程序的計(jì)算節(jié)點(diǎn)110是否可用。如果不可用,那么在步驟525,控制系統(tǒng)208將作業(yè)調(diào)度和分派到計(jì)算核心210。另外,一旦計(jì)算節(jié)點(diǎn)110完成了處理作業(yè),控制系統(tǒng)208就可以在節(jié)點(diǎn)狀態(tài)表252中記錄使用了哪些計(jì)算節(jié)點(diǎn)110來(lái)執(zhí)行所述作業(yè)。
否則,如果最后執(zhí)行由作業(yè)描述所指定的應(yīng)用程序的計(jì)算節(jié)點(diǎn)110可用,那么在步驟530,控制系統(tǒng)208識(shí)別在其上最后執(zhí)行該應(yīng)用程序的計(jì)算節(jié)點(diǎn)集。在步驟540,控制系統(tǒng)208向所識(shí)別的計(jì)算節(jié)點(diǎn)110發(fā)送用以保留用于在作業(yè)描述中指定的應(yīng)用程序的頁(yè)表的消息。在一個(gè)實(shí)施例中,控制系統(tǒng)經(jīng)由控制網(wǎng)絡(luò)270與受影響的計(jì)算節(jié)點(diǎn)110進(jìn)行通信。如下所述的圖6示例說(shuō)明了響應(yīng)于接收到保留用于應(yīng)用程序的頁(yè)表的消息而由計(jì)算節(jié)點(diǎn)110執(zhí)行的動(dòng)作。
在步驟550,將作業(yè)分派到計(jì)算節(jié)點(diǎn),以便執(zhí)行。一旦計(jì)算節(jié)點(diǎn)110完成了作業(yè)的執(zhí)行,則在步驟560,控制系統(tǒng)208就可以在節(jié)點(diǎn)狀態(tài)表252中記錄使用了哪些計(jì)算節(jié)點(diǎn)110來(lái)執(zhí)行所述作業(yè)。
圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例示例說(shuō)明了并行或分布式計(jì)算機(jī)系統(tǒng)的節(jié)點(diǎn)執(zhí)行計(jì)算作業(yè)的方法600的流程圖。方法600在步驟610開(kāi)始,其中,計(jì)算節(jié)點(diǎn)110經(jīng)由控制網(wǎng)絡(luò)150從控制系統(tǒng)208接收到用于保留來(lái)自相同應(yīng)用的在前調(diào)用的頁(yè)表的消息。在步驟620,計(jì)算節(jié)點(diǎn)110識(shí)別與用戶應(yīng)用有關(guān)的頁(yè)表。此后,開(kāi)始包括步驟630-660的循環(huán)。在每次經(jīng)過(guò)該循環(huán)時(shí),計(jì)算節(jié)點(diǎn)110確定是保留還是丟棄來(lái)自與應(yīng)用有關(guān)的頁(yè)表的條目。在步驟630,計(jì)算節(jié)點(diǎn)110確定正在考慮中的頁(yè)是否被標(biāo)記為可寫(xiě)。如果是的話,則在步驟640,從頁(yè)表中清除該頁(yè)并且從存儲(chǔ)器丟棄該頁(yè)。否則,在步驟650,如果頁(yè)表中的條目未被標(biāo)記為可寫(xiě),那么,計(jì)算節(jié)點(diǎn)110保留該頁(yè)表?xiàng)l目,以便在與該頁(yè)表有關(guān)的應(yīng)用程序的后續(xù)調(diào)用期間使用。相反地,在步驟630,計(jì)算節(jié)點(diǎn)110可以確定頁(yè)表中的條目是否被標(biāo)記為只讀(即,被標(biāo)記為可執(zhí)行),并且因此保留或丟棄該頁(yè)。在丟棄或保留正在考慮中的頁(yè)表?xiàng)l目后,在步驟660,計(jì)算節(jié)點(diǎn)110確定是否需要估計(jì)更多頁(yè)表?xiàng)l目。如果是的話,則計(jì)算節(jié)點(diǎn)110返回到步驟630,并且估計(jì)另一頁(yè)表?xiàng)l目。
否則,在步驟660,一旦已經(jīng)估計(jì)了頁(yè)表中的所有條目,則計(jì)算節(jié)點(diǎn)110就可以通過(guò)使用來(lái)自同一應(yīng)用程序的先前調(diào)用的修改了的頁(yè)表,來(lái)開(kāi)始執(zhí)行應(yīng)用程序。因此,再入的頁(yè)(即,僅包括可執(zhí)行指令的頁(yè))在頁(yè)表中保持有效,并且不必為了加載程序而被引入到計(jì)算節(jié)點(diǎn)的物理存儲(chǔ)器中。
圖7A和7B根據(jù)本發(fā)明的一個(gè)實(shí)施例示例說(shuō)明由高度并行或分布式計(jì)算機(jī)系統(tǒng)的計(jì)算節(jié)點(diǎn)110維護(hù)的頁(yè)表。如圖所示,圖7A表示在兩個(gè)用戶應(yīng)用(被標(biāo)記為P0和P1)已經(jīng)完成執(zhí)行后計(jì)算節(jié)點(diǎn)110的狀態(tài)。虛擬存儲(chǔ)器表710示出了由進(jìn)程P0使用的4個(gè)頁(yè)面(頁(yè)0、1、2和3)。進(jìn)程P0包括三頁(yè)(頁(yè)0、1和3)可執(zhí)行指令,以及被標(biāo)記為不可執(zhí)行(即,被標(biāo)記為可寫(xiě)數(shù)據(jù))的單個(gè)頁(yè)面(頁(yè)2)。頁(yè)表715將進(jìn)程P0使用的虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器730中的地址。特別地,頁(yè)0、1、2和3被分別映射到物理存儲(chǔ)器730中的頁(yè)1、4、3和7。如圖所示,頁(yè)表715包括示出了從所處的虛擬頁(yè)到物理存儲(chǔ)器730的映射的列716,表示頁(yè)是否可執(zhí)行的列717,以及表示頁(yè)表?xiàng)l目是否有效的列718。類(lèi)似地,頁(yè)表725將進(jìn)程P1使用的頁(yè)720映射到物理存儲(chǔ)器730中的頁(yè)。進(jìn)程P1包括單頁(yè)可執(zhí)行指令(頁(yè)1)以及三個(gè)數(shù)據(jù)頁(yè)(頁(yè)1、2和3)。頁(yè)表725將進(jìn)程P1使用的虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器730中的地址。如圖所示,頁(yè)0、1、2和3被分別映射到物理存儲(chǔ)器730中的頁(yè)0、2、5和6。
圖7B示例說(shuō)明了在從控制系統(tǒng)208接收到準(zhǔn)備第二次執(zhí)行進(jìn)程P0的消息后圖7A的計(jì)算節(jié)點(diǎn)110的狀態(tài)。作為響應(yīng),計(jì)算節(jié)點(diǎn)110已經(jīng)從頁(yè)表715中丟棄了某些條目,并且改變了其他條目的值。例如,計(jì)算節(jié)點(diǎn)110可以根據(jù)圖6所示的方法600,修改頁(yè)表715。如圖所示,已經(jīng)丟棄了用于進(jìn)程P1的頁(yè)表725。然而,因?yàn)橛?jì)算節(jié)點(diǎn)110正打算再次執(zhí)行P0,所以已經(jīng)保留了頁(yè)表715。頁(yè)表715中的條目繼續(xù)將頁(yè)0、1和3從虛擬存儲(chǔ)空間710分別映射到物理存儲(chǔ)器735中的頁(yè)1、4和7。然而,已經(jīng)移除了用于虛擬存儲(chǔ)頁(yè)2的頁(yè)表?xiàng)l目。如圖所示,頁(yè)表715現(xiàn)在示出了用于頁(yè)2的條目是無(wú)效的。另外,所示的值存在于物理存儲(chǔ)器735的頁(yè)3中,其中,在進(jìn)程P0的先前調(diào)用被顯示為已經(jīng)設(shè)置為空期間,映射該頁(yè)。當(dāng)再一次執(zhí)行程序P0時(shí),將不會(huì)出現(xiàn)頁(yè)0、1和3的頁(yè)錯(cuò)誤。
可以使用本發(fā)明的實(shí)施例來(lái)減少在分布式或高度并行的計(jì)算機(jī)系統(tǒng)中加載程序以便執(zhí)行所需的時(shí)間。這通過(guò)重新使用在特定計(jì)算節(jié)點(diǎn)處在程序的先前調(diào)用期間創(chuàng)建的某些頁(yè)表?xiàng)l目來(lái)實(shí)現(xiàn)。因此,整體上減少了必須分頁(yè)到計(jì)算節(jié)點(diǎn)的存儲(chǔ)器中的頁(yè)數(shù),從而減少了程序加載時(shí)間。在可以多次執(zhí)行相同作業(yè)的大規(guī)模并行系統(tǒng)和分布式或集群系統(tǒng)中,對(duì)整個(gè)系統(tǒng)性能的改進(jìn)可能是很重要的,即使各個(gè)計(jì)算節(jié)點(diǎn)處的改進(jìn)可能是相對(duì)最小的。
盡管上文針對(duì)本發(fā)明的實(shí)施例進(jìn)行了描述,但是在不背離本發(fā)明的基本范圍的情況下,可以設(shè)計(jì)出本發(fā)明的其他實(shí)施例和進(jìn)一步的實(shí)施例,并且本發(fā)明的范圍由以下的權(quán)利要求來(lái)確定。
權(quán)利要求
1.一種在包括若干個(gè)處理節(jié)點(diǎn)的計(jì)算系統(tǒng)上加載程序的方法,包括如果處理節(jié)點(diǎn)可用,則識(shí)別先前執(zhí)行該程序的多個(gè)處理節(jié)點(diǎn),其中,該程序與提交用于由計(jì)算系統(tǒng)執(zhí)行的計(jì)算作業(yè)有關(guān);向每一個(gè)識(shí)別的處理節(jié)點(diǎn)傳送用于保留與該程序的先前執(zhí)行有關(guān)的頁(yè)表的消息;以及將該計(jì)算作業(yè)分派到多個(gè)處理節(jié)點(diǎn)。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括記錄向其分派了該計(jì)算作業(yè)的多個(gè)計(jì)算節(jié)點(diǎn)的指示。
3.如權(quán)利要求1所述的方法,其中,每一處理節(jié)點(diǎn)都至少包括CPU和存儲(chǔ)器。
4.如權(quán)利要求1所述的方法,其中,該計(jì)算系統(tǒng)包括并行計(jì)算系統(tǒng)。
5.如權(quán)利要求1所述的方法,其中,該計(jì)算系統(tǒng)包括分布式計(jì)算系統(tǒng)。
6.如權(quán)利要求1所述的方法,其中,如果最后執(zhí)行該程序的多個(gè)處理節(jié)點(diǎn)不可用,則分派該計(jì)算作業(yè),以便在計(jì)算系統(tǒng)上執(zhí)行,并且記錄把該計(jì)算作業(yè)分派給哪個(gè)處理節(jié)點(diǎn)的指示。
7.如權(quán)利要求1所述的方法,進(jìn)一步包括響應(yīng)于接收到用于保留與該程序的先前執(zhí)行有關(guān)的頁(yè)表的消息,而識(shí)別與該程序有關(guān)的頁(yè)表;以及對(duì)每一頁(yè)表?xiàng)l目,確定該頁(yè)表?xiàng)l目是否引用與該程序有關(guān)的可執(zhí)行指令序列;如果該頁(yè)表?xiàng)l目引用可執(zhí)行指令序列,則將該條目保留在該頁(yè)表中;以及如果該頁(yè)表?xiàng)l目不引用可執(zhí)行指令序列,則從該頁(yè)表中丟棄該條目。
8.如權(quán)利要求7所述的方法,進(jìn)一步包括擦除存儲(chǔ)器中由所丟棄的頁(yè)表?xiàng)l目所映射到的物理存儲(chǔ)器地址的內(nèi)容。
9.一種并行計(jì)算系統(tǒng),包括多個(gè)計(jì)算節(jié)點(diǎn);以及控制系統(tǒng),被配置成通過(guò)執(zhí)行操作,在多個(gè)計(jì)算節(jié)點(diǎn)中的至少一些計(jì)算節(jié)點(diǎn)上執(zhí)行計(jì)算作業(yè),所述操作包括如果處理節(jié)點(diǎn)可用,則識(shí)別先前執(zhí)行程序的多個(gè)處理節(jié)點(diǎn),其中,該計(jì)算作業(yè)標(biāo)識(shí)將在該并行計(jì)算系統(tǒng)上執(zhí)行的程序;向計(jì)算節(jié)點(diǎn)集中的至少一些計(jì)算節(jié)點(diǎn)傳送用于保留與程序的先前執(zhí)行有關(guān)的頁(yè)表的消息;以及將該計(jì)算作業(yè)分派到包括在該計(jì)算節(jié)點(diǎn)集中的至少一些計(jì)算節(jié)點(diǎn)。
10.如權(quán)利要求9所述的并行計(jì)算系統(tǒng),其中,該操作進(jìn)一步包括記錄把該計(jì)算作業(yè)分派給哪個(gè)計(jì)算節(jié)點(diǎn)的指示。
11.如權(quán)利要求9所述的并行計(jì)算系統(tǒng),其中,每一計(jì)算節(jié)點(diǎn)都至少包括CPU和存儲(chǔ)器。
12.如權(quán)利要求9所述的并行計(jì)算系統(tǒng),其中,分派該計(jì)算作業(yè)的操作包括將該程序處理的數(shù)據(jù)傳送到該計(jì)算節(jié)點(diǎn)集。
13.如權(quán)利要求9所述的并行計(jì)算系統(tǒng),其中,如果最后執(zhí)行程序的計(jì)算節(jié)點(diǎn)集不可用,則分派該計(jì)算作業(yè),以便在并行計(jì)算系統(tǒng)上執(zhí)行,并且記錄向其分派了該計(jì)算作業(yè)的計(jì)算節(jié)點(diǎn)的指示。
14.如權(quán)利要求9所述的并行計(jì)算系統(tǒng),其中,頁(yè)表包括從分配用于存儲(chǔ)該程序和與該程序有關(guān)的數(shù)據(jù)的虛擬存儲(chǔ)空間到與特定計(jì)算節(jié)點(diǎn)有關(guān)的物理存儲(chǔ)空間的映射。
15.如權(quán)利要求9所述的并行計(jì)算系統(tǒng),其中,該操作進(jìn)一步包括響應(yīng)于接收到用于保留與該程序的先前執(zhí)行有關(guān)的頁(yè)表的消息,而識(shí)別與該程序有關(guān)的頁(yè)表;以及對(duì)每一頁(yè)表?xiàng)l目,確定該頁(yè)表?xiàng)l目是否引用與該程序有關(guān)的可執(zhí)行指令序列;如果該頁(yè)表?xiàng)l目引用可執(zhí)行指令序列,則將該條目保留在該頁(yè)表中;以及如果該頁(yè)表?xiàng)l目不引用可執(zhí)行指令序列,則從該頁(yè)表中丟棄該條目。
16.如權(quán)利要求15所述的并行計(jì)算系統(tǒng),其中,所述操作進(jìn)一步包括擦除存儲(chǔ)器中由所丟棄的頁(yè)表?xiàng)l目映射到的物理存儲(chǔ)器地址的內(nèi)容。
全文摘要
本發(fā)明的實(shí)施例提供了一種用于減少高度并行或分布式計(jì)算機(jī)中的程序加械時(shí)間的方法。在一個(gè)實(shí)施例中,這通過(guò)有選擇地重新使用在高度并行或分布式計(jì)算機(jī)系統(tǒng)的特定節(jié)點(diǎn)處程序的先前調(diào)用期間生成的頁(yè)表中的條目來(lái)實(shí)現(xiàn)。
文檔編號(hào)G06F9/445GK101051302SQ20071008785
公開(kāi)日2007年10月10日 申請(qǐng)日期2007年3月21日 優(yōu)先權(quán)日2006年4月6日
發(fā)明者丹尼爾·P.·考爾茲, 杰伊·S.·布賴(lài)恩特, 達(dá)美施·J.·帕特爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鄂托克旗| 区。| 洱源县| 巴塘县| 涟源市| 青海省| 将乐县| 天柱县| 谢通门县| 鄱阳县| 郓城县| 天津市| 阿图什市| 新巴尔虎左旗| 麟游县| 昂仁县| 理塘县| 丰顺县| 平邑县| 阿克苏市| 宁蒗| 德江县| 阆中市| 深州市| 修文县| 三穗县| 巫溪县| 浏阳市| 罗城| 临夏县| 樟树市| 崇左市| 富阳市| 昌平区| 荔波县| 芒康县| 尉犁县| 同心县| 上栗县| 云阳县| 共和县|