用於在計算系統上加載程序的方法和系統的製作方法
2023-06-01 05:04:31
專利名稱:用於在計算系統上加載程序的方法和系統的製作方法
技術領域:
本發明通常涉及計算機系統和開發。更具體地說,本發明涉及用於減少在分布式或高度並行的計算機系統中加載程序以便執行所需的時間的處理過程。
背景技術:
超級計算機系統繼續被開發來解決日益複雜的計算問題。已經證明了這些系統對於包括生命科學、財務建模、流體力學、量子化學、分子動力學、天文學、氣象建模和預報、以及地質建模的大量應用來說是特別有用的。超級計算機的開發人員關注大規模並行計算機體系結構,以便提供不斷增加的計算能力來應用到這些應用和其他應用。
依照所謂的深藍(blue gene)技術,由國際商業機器公司(IBM)開發(並繼續開發)了一系列大規模並行系統。深藍/L系統是可擴展的(scalable),其可以被配置有最大65,536(216)個計算節點。每一個深藍/L節點均包括具有存儲器和2個CPU的單個專用集成電路(ASIC)。深藍體系結構已經極其成功,並且在2005年10月27日,IBM宣布深藍/L系統已經達到了280.6teraflops的運算速度(每秒可完成280.6萬億次浮點運算),從而使其成為目前世界上最快的計算機。另外,自從2005年6月以來,在世界範圍內的各個地點的深藍/L安裝佔世界上最強大的前十臺計算機中的5臺。
IBM目前正在開發深藍/L系統的後繼產品,稱之為深藍/P。期望深藍/P是第一個以穩定的1petaflops(每秒完成1千萬億次浮點運算)進行操作的計算機系統。與深藍/L系統相似,深藍/P系統是設計具有最大73,728個計算節點的可擴展系統。每一個深藍/P節點均包括具有存儲器和4個CPU的單個專用集成電路(ASIC)。整個深藍/P系統容納在72個機架或機櫃中,每個系統具有32個節點板(每個板具有32個節點)。
除了由IBM開發的深藍體系結構外,其他分布式計算機系統可以具有與大規模並行計算機系統類似的整體體系結構。其他分布式系統的例子包括集群系統和基於網格的系統。例如,Beowulf集群是一組計算機系統,每個計算機系統運行類似Unix的作業系統,諸如Linux或BSD作業系統。該集合中的計算機系統經由高速網絡連接到小型的TCP/IP LAN中,並且安裝有允許在節點間共享處理的庫和程序。
在執行上述許多應用的過程中,超級計算機系統用來解決大量通常涉及為不同數據集執行基本上相同的計算的問題。這類應用的例子包括對分子相互作用進行建模,諸如,對單個蛋白質的摺疊進行仿真。對於這些類型的應用而言,在任何給定節點上執行的程序使用相對少量的數據。然後,該程序進行涉及該數據的許多計算。當完成計算時,返回計算的結果。因為上千個節點正在執行相同的計算(對於不同的數據集),所以在相對短的時間段中,可以處理極其大的數據集。
在給定高度並行的超級計算機、諸如深藍系統或者其他分布式系統中的節點的數量的情況下,要求任何單一節點的極其少量開銷的操作通常總體上轉換成用於該系統的大量時間。例如,由各個計算節點加載程序所需的總時間可能是相當大的。因此,總起來說,簡單地將程序傳送到計算節點,可能會花費相當大量的時間。在分布式系統中,出現了相同的現象,在所述分布式系統中數據集、程序等必須被傳送到作為分布式系統的一部分的處理節點。因此,現有技術中需要有可以減少高度並行或分布式計算機中的程序加載時間的技術。
發明內容
本發明總體上提供了一種用於減少在高度並行或分布式計算機系統中加載程序所需的時間的方法。本發明的一個實施例提供了一種在包括多個處理節點的計算系統上加載程序的方法。該方法總體上包括如果處理節點可用的話,則識別先前執行該程序的多個處理節點,其中,該程序與提交用於由計算系統執行的計算作業有關。該方法總體上進一步包括向每一個識別的處理節點傳送用於保留與該程序的先前執行有關的頁表的消息,以及將該計算作業分派到多個處理節點。
本發明的另一個實施例包括包含有程序的計算機可讀介質,當所述程序被執行時,執行用於在包括多個處理節點的計算系統上加載程序的操作。所述操作總體上包括如果處理節點可用,則識別先前執行該程序的多個處理節點,其中,該程序與提交用於由計算系統執行的計算作業有關。所述操作總體上進一步包括向每一個識別的處理節點傳送用於保留與該程序的先前執行有關的頁表的消息,以及將該計算作業分派到多個處理節點。
本發明的又一個實施例包括一種並行計算系統。該系統總體上包括多個計算節點和一控制系統,該控制系統被配置成通過執行一組操作,在多個計算節點中的至少一些計算節點上執行計算作業。所述操作總體上可以包括如果處理節點可用,則識別先前執行程序的多個處理節點,其中,該計算作業標識將要在該並行計算系統上執行的程序。所述操作總體上可以進一步包括向計算節點集中的至少一些計算節點傳送用於保留與該程序的先前執行有關的頁表的消息,以及將該計算作業分派到包括在該計算節點集中的至少一些計算節點。
通過參考在附圖中示出的本發明的實施例,可以獲得實現和詳細地理解本發明的上述特徵、優點和目的的方式,以及對以上簡要概括的本發明的更加具體的描述。
然而,應注意到,附圖僅僅示例說明了本發明的典型實施例,因此,不應將視為對本發明範圍的限制,對本發明來說,可以允許其他等效的實施例。
圖1是示例說明根據本發明的一個實施例的大規模並行計算機系統的框圖。
圖2是進一步示例說明根據本發明的一個實施例的大規模並行計算機系統的框圖。
圖3是進一步示例說明根據本發明的一個實施例的大規模並行計算機系統的方面的框圖。
圖4是根據本發明的一個實施例由服務節點維護的計算節點狀態表的框圖。
圖5是示例說明根據本發明的一個實施例用於準備計算節點集以便在高度並行或分布式計算機系統上執行計算作業的方法的流程圖。
圖6是根據本發明的一個實施例示例說明了高度並行或分布式計算機系統的計算節點執行計算作業的方法的流程圖。
圖7A-7B示例說明根據本發明的一個實施例由高度並行或分布式計算機系統的計算節點維護的頁表。
具體實施例方式
本發明的實施例提供了一種用於減少高度並行或分布式計算機中的程序加載時間的方法。這通過下述操作來實現只要可能的話,就重新使用由高度並行或分布式計算機系統的特定計算節點處的程序的先前調用所加載的信息。由於當分派作業以便執行時傳送到計算節點的一些數據段是存儲器中不可變的程序的二進位指令,所以根據相同程序的先前調用,能夠節省存儲頁。因此,本發明的實施例避免了否則每次控制系統將作業分派到特定計算節點時將會出現的頁錯誤。同時,當指示開始執行特定作業時,給定的計算節點不必等待將二進位指令分頁(page)到存儲器中。
在此參考由IBM開發的深藍體系結構來描述本發明的實施例。在此所述的實施例對於包括上千個處理節點的大規模並行計算機系統、諸如深藍系統而言特別有利。然而,本發明的實施例可以適用於採用被配置成經由網絡通信的多個CPU的各種並行計算機系統中。例如,實施例可以很容易地適用在諸如集群或網格之類的分布式體系結構中,在這種體系結構中,每個處理節點可能是經由本地、地區或全球網絡彼此通信的計算機系統。
在下文中,描述本發明的實施例,然而,應當理解,本發明不局限於具體描述的實施例。事實上,下述特徵和元素的任意組合,不管是否與不同實施例有關,預期都可以實現和實施本發明。此外,在不同實施例中,本發明提供了很多優於現有技術的優點。然而,儘管本發明的實施例可以實現優於其他可能的解決方案和/或現有技術的優點,但是,是否由給定的實施例實現特定的優點,不會對本發明構成限制。因此,下述方面、特徵、實施例和優點僅僅是示例性的,並且不應視為附加權利要求的要素或限制,除非在一個或多個權利要求中明確地記載了。同樣地,對「本發明」的描述不應當被視為對在此公開的任何發明主題的概括,並且也不應當被視為附加權利要求的要素或限制,除非在一個或多個權利要求中明確地描述了。
本發明的一個實施例被實現為用於與計算機系統、諸如例如圖1所示和以下所述的計算環境100一起使用的程序產品。程序產品中的程序(一個或多個)定義了實施例(包括在此所述的方法)中的功能,並且能夠被包含在多種信號承載介質上。示例性的信號承載介質包括但不局限於(i)在不可寫的存儲介質(例如,計算機內的只讀存儲器設備,諸如CD-R0M驅動器可讀的CD-ROM盤)上永久存儲的信息;(ii)在可寫的存儲介質(例如,盤驅動器或硬碟驅動器內的軟盤)上存儲的可變信息;以及(iii)通過通信介質、諸如通過計算機或電話網絡(包括無線通信)傳送到計算機的信息。後一種實施例特別包括了從網際網路或其他網絡下載的信息。這種信號承載介質在攜帶有指示本發明的功能的計算機可讀指令時,表示本發明的實施例。
通常,為實現本發明的實施例而執行的例程可以是作業系統或特定應用的一部分、組件、程序、模塊、對象或指令序列。本發明的電腦程式通常由將由本機轉換成機器可讀格式並由此轉換為可執行指令的大量指令組成。此外,程序包括對於程序而言本地駐留的或者在存儲器中或存儲設備上找到的變量和數據結構。另外,可以基於在本發明的具體實施例中實現程序的應用,標識下文所述的各種程序。然而,應當意識到,下文的任何特定術語僅僅是為了方便而使用的,由此本發明不應當被限制為僅僅用在由這種術語標識和/或暗示的任何特定應用中。
圖1是根據本發明的一個實施例示例說明了高度並行的計算機系統100的框圖。特別地,計算機系統100示例說明了深藍系統的高級框圖。如圖所示,計算機系統100包括計算節點集110和輸入/輸出(I/O)節點集112。計算節點110提供了計算機系統100的計算能力。在一個實施例中,每一計算節點110均包括一個或多個CPU。另外,每一計算節點110都可以包括用來存儲程序指令和對其執行指令的數據集的存儲器。
在一個實施例中,計算節點110可以被配置成對於同一程序的多次調用重新使用與在計算節點110上執行的程序有關的頁表。眾所周知,頁表提供了頁面的索引以及它們的物理和邏輯地址。下面更詳細地描述程序頁表的重新使用。
I/O節點112可以經由功能網絡160提供計算節點110和文件伺服器130間的物理接口。在一個實施例中,計算節點110和I/O節點112經由控制網絡150和/或功能網絡160與伺服器130、前端節點120和服務節點140進行通信。在深藍系統中,I/O節點112和計算節點110的彼此不同之處僅在於通過誰來啟用網絡接口,以及系統100如何使用該節點。I/O節點112也可以被配置成執行便於計算系統100的控制、引導、作業運行和調試的進程。這有助於簡化在每一計算節點110上運行的作業系統內核,因為每一計算節點110僅需要與幾個I/O節點112進行通信。前端節點120存儲由與系統100進行交互的用戶使用的編譯器和其他應用。典型地,用戶訪問前端節點120,提交程序以便進行編譯,以及將作業提交給服務節點140。
服務節點140可以包括由系統100提供的系統資料庫和所有管理工具。通常,服務節點140包括被配置成處理計算節點110上的軟體程序和數據的調度和加載的計算系統。在一個實施例中,服務節點可以被配置成組合一組計算節點110(被稱為塊),以及將作業分派到一個塊,以便執行。服務節點140通常是包括作業系統、存儲器、存儲設備和控制臺(未示出)的計算機系統。例如,深藍/P系統使用運行Linux作業系統的計算機系統。服務節點140經由控制網絡150與計算節點110進行通信。控制網絡150為服務節點140提供通信信道,以便控制系統100的操作方面。
圖2是根據本發明的一個實施例進一步示例說明大規模並行計算機系統的方面的框圖。特別地,圖2示出了示例說明深藍/P計算機系統的方面的框圖。如上所述,深藍/P是設計具有最大73,728個計算節點110的可擴展系統。在深藍/P系統中,每一計算節點110封裝在節點卡上,並且由具有存儲器214和四個CPU的單個專用集成電路(ASIC)212組成。節點板220容納32個節點卡,每個節點卡具有一節點110。因此,每一節點板具有32個節點,每個節點110具有存儲器214和4個CPU。機架230是保持32個節點板220的殼體。整個深藍/P系統將被容納在72個機架130中,並且每個機架中具有32個節點板220。因此,整個深藍/P系統將具有最大294,912個CPU(72個機架×32個節點板×32個節點×4個CPU)。
深藍/P計算機系統包括多個數據通信網絡。位於一些節點板220上的I/O處理器處理服務節點140和一組計算節點110間的數據通信。在一個實施例中,每一I/O節點112管理功能網絡160上的多至1024個計算節點110的數據通信。在深藍/P系統中,將73,728個計算節點110和1024個I/O節點配置為經由邏輯樹網絡和環形(torus)網絡進行通信。環形網絡以類似網格的結構連接計算節點110,該類似網格的結構允許每一計算節點110直接與其六個最近的鄰居節點進行通信。節點110可以使用非常公知的消息傳遞接口(MPI)、在開發用於高度並行或集群計算機系統(例如,系統100)的應用時使用的應用編程接口,經由環形網絡進行通信。任何一個計算節點110都可以經由環形網絡將消息路由到另一計算節點110。
圖3是根據本發明的一個實施例進一步示例說明大規模並行計算機系統的方面的框圖。特別地,圖3進一步示例說明了深藍/P計算機系統的系統體系結構的視圖。圖3包括被示為連接到控制系統208的計算核心210的計算機系統100的所有計算節點110的表示。計算核心210經由控制系統網絡150與控制系統208的服務節點140進行通信。把計算核心210通過將每一I/O節點112與計算節點集110連接的硬體控制器270連接到控制系統網絡150。
計算機系統100可以被描述為具有I/O節點面的計算節點核心210,其中,由同一I/O節點112管理與1024個計算節點110的通信。在深藍系統中,I/O節點112通過樹網絡214連接到計算節點110,並且通過千兆位乙太網(例如,網絡160),在功能上還具有廣域網能力。
在一個實施例中,硬體控制器270使用JTAG網絡219,與計算節點110進行通信。如已知的那樣,JTAG是低級通信協議,其可以用來初始化計算節點以及使它們準備好具有加載的系統映像。JTAG網絡也可以用來執行各種其他低級監視和支持功能。硬體控制器270駐留在每一機架230中,並且為控制系統208提供接口,以便配置計算節點110以及將程序指令和數據加載到計算節點的存儲器214中。在深藍/P計算機系統中,每一節點板和中平面的封裝包括IDo晶片。IDo晶片為使用經由JTAG網絡219發送的UDP包從服務節點接收命令的25MHz FPGA。
另外,如圖3所示,計算核心210還經由功能網絡160與文件伺服器130和前端節點120進行通信。功能網絡160可以是千兆位乙太網。文件伺服器130存儲用於用戶應用和系統映像的數據。各個計算節點通過與I/O節點112通信,來訪問文件伺服器。例如,計算節點可以經由NFS共享來訪問文件伺服器130。在一個實施例中,控制系統212包括被配置成保持用於指定與計算節點110有關的狀態信息的數據表的資料庫250。中平面管理控制系統(MMCS)144可以被配置成對將計算核心210中的硬體分配給不同計算作業進行管理。控制系統208還連接到功能網絡160。在一個實施例,該連接允許控制系統208檢測在加載了系統映像和數據文件後計算節點110何時完成引導過程。控制系統208進一步包括用於由用戶和系統管理員使用的控制臺260。
再次參考圖3,計算核心210示例說明了容納在機架230中的計算節點110。在深藍系統中,計算節點被分組成處理集(pset)。pset是在一個集合中組合在一起用於與特定I/O節點112進行通信的64個節點所構成的組。在一個實施例中,計算核心210可以被劃分成最大多個pset,每個pset都具有一個運行Linux作業系統內核的I/O節點112,以及64個運行作為系統映像經由控制網絡150傳送的計算節點內核(CNK)的計算節點110。如所描述的那樣,I/O節點112為給定pset中的計算節點提供功能網絡160上的通信。在深藍/P系統中,I/O節點112可以被配置成在8和128個計算節點間進行通信。
每一計算節點110都包括在計算節點110的存儲器214中存儲的系統映像和數據文件218。系統映像文件和計算節點內核(CNK)218包括系統文件,諸如作業系統內核。計算節點內核218存儲在每一計算節點110的存儲器214中。在指示計算節點110執行任何用戶應用前,通常加載系統映像文件,並且計算節點內核218通常開始執行。
為了在計算機系統100上執行計算作業,請求服務節點140將計算節點集110分配到一個塊以便運行作業。由於計算節點110可能不包括任何本地永久存儲器,諸如硬碟驅動器,因此,計算節點110必須加載有適當的軟體以便運行作業。在一個實施例中,用戶指定所需劃分的特性以便執行作業。調度器280選擇計算節點集110來形成用來執行作業的塊。一旦選定了計算節點,就由服務節點140使用控制網絡150把由調度器280選擇的計算節點110(以及相應的I/O節點112)配置成一個塊。一旦創建了塊,就可以通過經由網絡150和/或160與I/O節點112通信的控制系統208來分派作業。
在一個實施例中,服務節點140使用資料庫250和節點狀態表252來維護每一計算節點110上所調用的最後一個程序的表。當用戶調用作業時,控制系統208確定最後運行正在分派的相同程序的任何計算節點110當前是否可用。如果計算節點110可用,那麼控制系統208指示這些計算節點110保留與作業請求中標識的程序相關的頁表。除與正分派的程序有關的一個頁表外的所有頁表都被計算節點丟棄。另外,來自被標記為無效或可寫的保留頁表的條目可以從保留頁表中移除。現在已經從最後運行正在分派的程序的進程的存儲空間中清除了由該程序的先前執行所創建或修改的任何數據。同時,保留了被標記為只讀或可執行的頁,並且當由計算節點110執行正在分派的作業時,所述頁將不需要被加載,或者不會導致頁錯誤(頁錯誤是當在物理存儲器中未映射所需頁時由存儲器管理單元產生的異常)。
現在,將程序分派到計算節點110。控制系統208指示計算節點110使用所保留的頁表,而不是為正在分派的進程創建新頁表。作為計算作業的一部分的任何其他進程從清除存儲空間開始,並且可以通過使用按需分頁(paging)進程,使用功能網絡和I/O節點112將頁面引入存儲器中。當程序開始執行時,它嘗試從存儲器單元中加載第一條指令。通常,這將會觸發頁錯誤。該異常被傳遞到作業系統,作為響應,作業系統將所需頁面從某一輔助存儲源加載到物理存儲器中。然而,因為來自保留頁表的信息包含有效的映射,所以程序已經準備好訪問信息二進位指令。對於用於該程序的所有指令而言,這種情況都將會發生。因此,可以基本上減少與保留頁表有關的應用的加載時間。這特別適用於大規模並行系統、諸如深藍系統的情形,該大規模並行系統可以分派具有不同數據集的相同作業達數千、數百萬、甚至數十億次。
圖4是根據本發明的一個實施例由服務節點140維護的計算節點狀態表252的框圖。在一個實施例中,節點狀態表252可以被存儲為資料庫250的一部分。如圖所示,節點狀態表252包括計算節點110的列表,該計算節點是與在每一節點上執行的最後一個作業匹配的給定系統的一部分。因此,當用戶分派作業請求時,控制系統208可以使用節點狀態表252來識別先前執行正在分派的作業的節點。
圖5是根據本發明的一個實施例用於準備計算節點集110來在高度並行或分布式計算機系統上執行計算作業的方法的流程圖。方法500從步驟510開始,其中,控制系統208接收作業描述以便分派到計算核心210。在一個實施例中,作業描述可以指定要執行何種應用程式、所期望的性能特性,諸如要使用的執行所述作業的計算節點110的數量或者完成作業所需的估計時間,並且作業描述可以進一步包括與給定作業有關的數據集。
在步驟520,控制系統208可以確定最後執行在作業描述中指定的應用程式的計算節點110是否可用。如果不可用,那麼在步驟525,控制系統208將作業調度和分派到計算核心210。另外,一旦計算節點110完成了處理作業,控制系統208就可以在節點狀態表252中記錄使用了哪些計算節點110來執行所述作業。
否則,如果最後執行由作業描述所指定的應用程式的計算節點110可用,那麼在步驟530,控制系統208識別在其上最後執行該應用程式的計算節點集。在步驟540,控制系統208向所識別的計算節點110發送用以保留用於在作業描述中指定的應用程式的頁表的消息。在一個實施例中,控制系統經由控制網絡270與受影響的計算節點110進行通信。如下所述的圖6示例說明了響應於接收到保留用於應用程式的頁表的消息而由計算節點110執行的動作。
在步驟550,將作業分派到計算節點,以便執行。一旦計算節點110完成了作業的執行,則在步驟560,控制系統208就可以在節點狀態表252中記錄使用了哪些計算節點110來執行所述作業。
圖6是根據本發明的一個實施例示例說明了並行或分布式計算機系統的節點執行計算作業的方法600的流程圖。方法600在步驟610開始,其中,計算節點110經由控制網絡150從控制系統208接收到用於保留來自相同應用的在前調用的頁表的消息。在步驟620,計算節點110識別與用戶應用有關的頁表。此後,開始包括步驟630-660的循環。在每次經過該循環時,計算節點110確定是保留還是丟棄來自與應用有關的頁表的條目。在步驟630,計算節點110確定正在考慮中的頁是否被標記為可寫。如果是的話,則在步驟640,從頁表中清除該頁並且從存儲器丟棄該頁。否則,在步驟650,如果頁表中的條目未被標記為可寫,那麼,計算節點110保留該頁表條目,以便在與該頁表有關的應用程式的後續調用期間使用。相反地,在步驟630,計算節點110可以確定頁表中的條目是否被標記為只讀(即,被標記為可執行),並且因此保留或丟棄該頁。在丟棄或保留正在考慮中的頁表條目後,在步驟660,計算節點110確定是否需要估計更多頁表條目。如果是的話,則計算節點110返回到步驟630,並且估計另一頁表條目。
否則,在步驟660,一旦已經估計了頁表中的所有條目,則計算節點110就可以通過使用來自同一應用程式的先前調用的修改了的頁表,來開始執行應用程式。因此,再入的頁(即,僅包括可執行指令的頁)在頁表中保持有效,並且不必為了加載程序而被引入到計算節點的物理存儲器中。
圖7A和7B根據本發明的一個實施例示例說明由高度並行或分布式計算機系統的計算節點110維護的頁表。如圖所示,圖7A表示在兩個用戶應用(被標記為P0和P1)已經完成執行後計算節點110的狀態。虛擬存儲器表710示出了由進程P0使用的4個頁面(頁0、1、2和3)。進程P0包括三頁(頁0、1和3)可執行指令,以及被標記為不可執行(即,被標記為可寫數據)的單個頁面(頁2)。頁表715將進程P0使用的虛擬存儲器地址映射到物理存儲器730中的地址。特別地,頁0、1、2和3被分別映射到物理存儲器730中的頁1、4、3和7。如圖所示,頁表715包括示出了從所處的虛擬頁到物理存儲器730的映射的列716,表示頁是否可執行的列717,以及表示頁表條目是否有效的列718。類似地,頁表725將進程P1使用的頁720映射到物理存儲器730中的頁。進程P1包括單頁可執行指令(頁1)以及三個數據頁(頁1、2和3)。頁表725將進程P1使用的虛擬存儲器地址映射到物理存儲器730中的地址。如圖所示,頁0、1、2和3被分別映射到物理存儲器730中的頁0、2、5和6。
圖7B示例說明了在從控制系統208接收到準備第二次執行進程P0的消息後圖7A的計算節點110的狀態。作為響應,計算節點110已經從頁表715中丟棄了某些條目,並且改變了其他條目的值。例如,計算節點110可以根據圖6所示的方法600,修改頁表715。如圖所示,已經丟棄了用於進程P1的頁表725。然而,因為計算節點110正打算再次執行P0,所以已經保留了頁表715。頁表715中的條目繼續將頁0、1和3從虛擬存儲空間710分別映射到物理存儲器735中的頁1、4和7。然而,已經移除了用於虛擬存儲頁2的頁表條目。如圖所示,頁表715現在示出了用於頁2的條目是無效的。另外,所示的值存在於物理存儲器735的頁3中,其中,在進程P0的先前調用被顯示為已經設置為空期間,映射該頁。當再一次執行程序P0時,將不會出現頁0、1和3的頁錯誤。
可以使用本發明的實施例來減少在分布式或高度並行的計算機系統中加載程序以便執行所需的時間。這通過重新使用在特定計算節點處在程序的先前調用期間創建的某些頁表條目來實現。因此,整體上減少了必須分頁到計算節點的存儲器中的頁數,從而減少了程序加載時間。在可以多次執行相同作業的大規模並行系統和分布式或集群系統中,對整個系統性能的改進可能是很重要的,即使各個計算節點處的改進可能是相對最小的。
儘管上文針對本發明的實施例進行了描述,但是在不背離本發明的基本範圍的情況下,可以設計出本發明的其他實施例和進一步的實施例,並且本發明的範圍由以下的權利要求來確定。
權利要求
1.一種在包括若干個處理節點的計算系統上加載程序的方法,包括如果處理節點可用,則識別先前執行該程序的多個處理節點,其中,該程序與提交用於由計算系統執行的計算作業有關;向每一個識別的處理節點傳送用於保留與該程序的先前執行有關的頁表的消息;以及將該計算作業分派到多個處理節點。
2.如權利要求1所述的方法,進一步包括記錄向其分派了該計算作業的多個計算節點的指示。
3.如權利要求1所述的方法,其中,每一處理節點都至少包括CPU和存儲器。
4.如權利要求1所述的方法,其中,該計算系統包括並行計算系統。
5.如權利要求1所述的方法,其中,該計算系統包括分布式計算系統。
6.如權利要求1所述的方法,其中,如果最後執行該程序的多個處理節點不可用,則分派該計算作業,以便在計算系統上執行,並且記錄把該計算作業分派給哪個處理節點的指示。
7.如權利要求1所述的方法,進一步包括響應於接收到用於保留與該程序的先前執行有關的頁表的消息,而識別與該程序有關的頁表;以及對每一頁表條目,確定該頁表條目是否引用與該程序有關的可執行指令序列;如果該頁表條目引用可執行指令序列,則將該條目保留在該頁表中;以及如果該頁表條目不引用可執行指令序列,則從該頁表中丟棄該條目。
8.如權利要求7所述的方法,進一步包括擦除存儲器中由所丟棄的頁表條目所映射到的物理存儲器地址的內容。
9.一種並行計算系統,包括多個計算節點;以及控制系統,被配置成通過執行操作,在多個計算節點中的至少一些計算節點上執行計算作業,所述操作包括如果處理節點可用,則識別先前執行程序的多個處理節點,其中,該計算作業標識將在該並行計算系統上執行的程序;向計算節點集中的至少一些計算節點傳送用於保留與程序的先前執行有關的頁表的消息;以及將該計算作業分派到包括在該計算節點集中的至少一些計算節點。
10.如權利要求9所述的並行計算系統,其中,該操作進一步包括記錄把該計算作業分派給哪個計算節點的指示。
11.如權利要求9所述的並行計算系統,其中,每一計算節點都至少包括CPU和存儲器。
12.如權利要求9所述的並行計算系統,其中,分派該計算作業的操作包括將該程序處理的數據傳送到該計算節點集。
13.如權利要求9所述的並行計算系統,其中,如果最後執行程序的計算節點集不可用,則分派該計算作業,以便在並行計算系統上執行,並且記錄向其分派了該計算作業的計算節點的指示。
14.如權利要求9所述的並行計算系統,其中,頁表包括從分配用於存儲該程序和與該程序有關的數據的虛擬存儲空間到與特定計算節點有關的物理存儲空間的映射。
15.如權利要求9所述的並行計算系統,其中,該操作進一步包括響應於接收到用於保留與該程序的先前執行有關的頁表的消息,而識別與該程序有關的頁表;以及對每一頁表條目,確定該頁表條目是否引用與該程序有關的可執行指令序列;如果該頁表條目引用可執行指令序列,則將該條目保留在該頁表中;以及如果該頁表條目不引用可執行指令序列,則從該頁表中丟棄該條目。
16.如權利要求15所述的並行計算系統,其中,所述操作進一步包括擦除存儲器中由所丟棄的頁表條目映射到的物理存儲器地址的內容。
全文摘要
本發明的實施例提供了一種用於減少高度並行或分布式計算機中的程序加械時間的方法。在一個實施例中,這通過有選擇地重新使用在高度並行或分布式計算機系統的特定節點處程序的先前調用期間生成的頁表中的條目來實現。
文檔編號G06F9/445GK101051302SQ20071008785
公開日2007年10月10日 申請日期2007年3月21日 優先權日2006年4月6日
發明者丹尼爾·P.·考爾茲, 傑伊·S.·布賴恩特, 達美施·J.·帕特爾 申請人:國際商業機器公司