TWI414947B - 在包含多個處理節點之計算系統上載入一程式之方法、電腦可讀媒體及平行計算系統 - Google Patents
在包含多個處理節點之計算系統上載入一程式之方法、電腦可讀媒體及平行計算系統 Download PDFInfo
- Publication number
- TWI414947B TWI414947B TW096111848A TW96111848A TWI414947B TW I414947 B TWI414947 B TW I414947B TW 096111848 A TW096111848 A TW 096111848A TW 96111848 A TW96111848 A TW 96111848A TW I414947 B TWI414947 B TW I414947B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- computing
- node
- page table
- computing system
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 title claims description 35
- 238000013507 mapping Methods 0.000 claims description 4
- 108090000623 proteins and genes Proteins 0.000 description 32
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000009878 intermolecular interaction Effects 0.000 description 1
- 238000000329 molecular dynamics simulation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明概言之係關於電腦系統及開發。更具體而言,本發明係關於一種用於縮短在一分散式或高度平行化電腦系統中載入一執行程式所需時間之處理。
人們繼續開發超級電腦系統以處理日益複雜之計算問題。據證明,該等系統對很多種應用尤其有用,其中包括:生命科學、財務模型化、流體動力學、量子化學、分子動力學、天文學、氣象模型化及預報及地質模型化。超級電腦開發者將焦點集中於大規模平行電腦架構上以提供量不斷增加的計算能力以便適用於該等及其他應用。
International Business Machines(IBM)已(並持續)開發了一系列名為藍色基因(Blue Gene)之大規模平行系統。該藍色基因/L系統係一可組態有最多65,536(216
)個計算節點之可縮放系統。每一藍色基因/L節點皆包括一具有兩個CPU及記憶體的單個特定應用積體電路(ASIC)。該藍色基因架構獲得極大成功,且在2005年10月27日,IBM宣佈一藍色基因/L系統達到一280.6 teraflops(每秒280.6萬億次浮點運算)之運算速度,使其成為當時世界上最快的電腦。進一步,截至2005年6月,在世界範圍內不同地點處之藍色基因/L設施在世界前10個最強電腦中佔5個。
目前,IBM正在開發藍色基因/L系統之稱為藍色基因/P的下一代系統。預計藍色基因/P係第一個以1 petaflops(每秒10的15次方浮點運算)之恆定速率運算之電腦系統。如同藍色基因/L系統一樣,該藍色基因/P系統係一具有一設計最多為73,728個計算節點之可縮放系統。每一藍色基因/P節點包括一具有4個CPU及記憶體之單個特定應用積體電路(ASIC)。一完整之藍色基因/P系統應安裝在72個機架或機櫃中,每一機架或機櫃中具有32個節點板(每個節點板具有32個節點)。
除由IBM開發之藍色基因架構外,其他分散式電腦系統可具有一類似於一大規模平行電腦系統之總體架構。其他分散式系統之實例包括群集系統及格子系統。舉例而言,一Beowulf群集係一組電腦系統,每一電腦系統執行一類似於Unix之作業系統,例如Linux或BSD作業系統。該集合之電腦系統在高速網路上連接至一小型TCP/IP LAN中,並具有允許在該等節點間分享處理的庫及程式。
在實施諸多上述應用中,使用超級電腦系統來解決各種通常涉及對不同資料集執行本質上相同計算的問題。該類應用之實例包括分子間相互作用之模型化,例如,模擬個別蛋白之折疊。對於該等類型之應用,一執行於任一既定節點上之程式使用相對少量之資料。然後,該程式將執行涉及該資料之諸多計算。完成後,返回該計算結果。由於數以千計之節點(對不同的資料集)實施相同的計算,故可在一相對短之時期內處理極大的資料集。
鑒於一高度平行化超級電腦(諸如一藍色基因系統)或其他分散式系統中之節點數量,即便任一個別節點僅需少量開銷之作業對於該整個系統而言通常亦會變得需要大量時間。舉例而言,各個計算節點載入一程式所需之總時間可顯著地長。因此,總體而言,僅將一程式發送至一計算節點便會花費大量時間。於分散式系統中亦會出現同一現象,其中資料集、程式及諸如此類必須發送至為分散式系統之部分的處理節點。因此,此項技術中需要縮短高度平行化或分散式電腦系統中程式載入時間之技術。
本發明概言之係提供一種用來縮短在一高度平行化或分散式電腦系統中載入一程式所需時間之方法。本發明之一實施例提供一種用來在一包括多處理節點之計算系統上載入一程式之方法。該方法通常包括:識別(若可用)複數個先前執行該程式之處理節點,其中該程式與一經提交以由該計算系統執行之計算工作相關聯。該方法通常進一步包括:向每一識別之處理節點發訊息以便保留一與該程式之先前執行相關聯之分頁表,及將該計算工作分派至該複數個處理節點。
本發明之另一實施例包括一電腦可讀媒體,該電腦可讀媒體包含一程式,當執行該程式時,其會實施一在包括多處理節點之計算系統上載入一程式之作業。該等作業通常包括:識別(若可用)複數個先前執行該程式之處理節點,其中該程式與一經提交以由該計算系統執行之計算工作相關聯。該等作業通常進一步包括:向每一識別之處理節點發訊息以保留一與該程式之先前執行相關聯之分頁表,及將該計算工作分派至該複數個處理節點。
本發明之再一實施例包括一平行計算系統。該系統通常包括複數個計算節點及一控制系統,該控制系統經組態以藉由執行一組作業以便在該複數個計算節點之至少一些計算節點上執行一計算工作。該等作業通常可包括:識別(若可用)複數個先前執行該程式之處理節點,其中該計算工作識別一將在該平行計算系統上執行之程式。該等作業通常可進一步包括:至少向該組計算節點中的某些節點發訊息以保留一與該程式之先前執行相關聯之分頁表,及將該計算工作分派至包含於該組計算節點中之至少一些計算節點。
本發明之實施例提供一種用於縮短高度平行化或分散式電腦中之程式載入時間之方法。此係藉由如下方式達成:若可能,則再使用在該高度平行化或分散式電腦系統之一特定計算節點處先前叫用該程式期間而載入之資訊。由於在分派一工作以便執行時傳輸至計算節點之某些資料段係該程式之二元指令(其在記憶體中不改變),故可自該相同程式之先前叫用節省記憶頁面。因此,本發明之實施例可避免原本每當控制系統將工作分派至一特定計算節點時皆會發生之分頁錯誤。同時,當指示其開始執行一特定作業時,一既定計算節點無需等待二元指令調頁至記憶體中。
本文結合IBM開發之藍色基因電腦架構來闡釋本發明之實施例。本文所闡釋之實施例尤其有利於包括數以千計之處理節點之大規模平行電腦系統(諸如,一藍色基因系統)。然而,本發明之實施例可適於在各種使用多個CPU(其經佈置以在一網路上進行通信)之平行電腦系統中使用。舉例而言,實施例可容易地適用於分散式架構中,例如群集或格子架構,在該等架構中,每一處理節點皆可係一在本端、區域或全球網路上與其他電腦系統通信之電腦系統。
在下文中,將參考本發明之實施例。然而,應理解,本發明不限定於所闡述之具體實施例。相反,本發明涵蓋以下實施及實踐本發明之器件及元件之任一組合,不管其是否與不同實施例相關聯。此外,在各種實施例中,本發明提供諸多超過先前技術之優點。然而,儘管本發明之實施例可達成超過其它可能解決方案及/或超過先前技術之優點,但無論一既定實施例是否達成一特定優點皆不限制本發明。因而,下述態樣、特徵、實施例及優點僅係說明性且除於申請專利範圍內明確地加以陳述外不應被視為係隨附申請專利範圍之要素或限制。同樣地,對「本發明」之提及不應被理解為係本文所揭示任一發明性標的物之概括且除於申請專利範圍內明確地加以陳述外不應被視為隨附申請專利範圍之一要素或限制。
本發明之一實施例被實施為一用於與一電腦系統(諸如(例如)圖1中之計算環境100並於下文予以闡述)一同使用之程式產品。該程式產品之程式界定該等實施例(其包括本文所闡述之方法)之功能且可包含於各種信號承載媒體上。說明性信號承載媒體包括但不限於:(i)永久儲存於不可寫入儲存媒體(例如,一電腦內之唯讀記憶體裝置(例如,可由一CD-ROM驅動器讀取之CD-ROM磁碟))上之資訊;(ii)儲存於可寫儲存媒體(例如,一磁碟驅動器或硬碟驅動器內之軟磁碟)上之可改動資訊;及(iii)一包括無線通信之通信媒體經由(例如)一電腦或電話網路傳送至一電腦之資訊。具體而言,後一實施例包括自網際網路及其他網路下載之資訊。該信號承載媒體當攜載指揮本發明功能之電腦可讀指令時代表本發明之實施例。
一般而言,經執行以實施本發明實施例之常式可係一作業系統或一特定應用程式、組件、程式、模組、物件或指令序列之部分。本發明之電腦程式通常由諸多指令組成,該等指令將由原生(native)電腦轉譯成一機器可讀格式且因此轉譯成可執行指令。同樣,程式係由本端駐留於該程式或存在於記憶體或儲存裝置上之變數及資料結構組成。此外,可基於在本發明特定具體實施例中所實施之應用程式來識別下文所述之各種程式。然而,應瞭解,僅為方便起見而使用隨後之任一特定程式術語,且因而,本發明不應受限於僅用於任一由該術語識別及/或暗示之特定應用程式中。
圖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之控制、開機(booting)、工作啟動及除錯之處理。此可幫助簡化執行於每一計算節點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封裝於一節點卡上並由一具有4個CPU及記憶體214之單個特定應用積體電路(ASIC)212組成。一節點板220裝納有32個節點卡,每一節點卡具有一節點110。因此,每一節點板具有32個節點,每個節點110具有4個CPU及記憶體214。一機架230係一可容納32個節點板220之殼體。一完整之藍色基因/P系統應安裝於72個機架130中,每一機架中有32個節點板。因此,一完整藍色基因/P系統將最多可具有294,912個CPU(72個機架×32個節點板×4個CPU)。
該藍色基因/P電腦系統包括多個資料通信網路。一位於某些節點板220上之I/O處理器處理服務節點140與一組計算節點110之間的資料通信。在一實施例中,每一I/O節點112在功能網路160上管理多達1024個計算節點110之資料通信。在一藍色基因/P系統中,該73,728個計算節點110與1024個I/O節點經組態以在一邏輯樹網路及一圓環形網路兩者上進行通信。該圓環形網路將計算節點110連接於一格子樣結構中,以允許每一計算節點110直接與其最鄰近之6個節點進行通信。節點110可使用眾所周知之訊息傳遞介面(MPI)在該圓環形網路上進行通信,其中該資訊傳遞介面係一在為一高度平行或群集電腦系統(例如,系統100)開發應用程式中使用之應用程式程式化介面。任一計算節點110皆可在該圓環形網路上將訊息路由至另一計算節點110。
圖3係一方塊圖,其進一步圖解闡釋根據本發明一實施例之大規模平行電腦系統之若干態樣。特定而言,圖3進一步圖解闡釋一藍色基因/P電腦系統之系統架構之視圖。圖3包括電腦系統100之所有計算節點110之圖示,圖中該所有的計算節點顯示為一連接至控制系統208之計算核心210。計算核心210在控制系統網路150上與控制系統208之服務節點140進行通信。計算核心210藉由一將每一I/O節點112連接至一組計算節點110之硬體控制器270連接至控制系統網路150。
可將電腦系統100闡釋為一具有一I/O節點表面之計算節點核心210,其中通至1024個計算節點110之通信係由相同的I/O節點112來管理。在一藍色基因系統中,I/O節點112藉由樹狀網路214連接至計算節點110,且藉由一十億位元以太網路(例如,網路160)亦具有功能廣域網路能力。
在一個實施例中,硬體控制器270係使用JTAG網路219與計算節點110進行通信。眾所周知,JTAG係一可用來初始化該等計算節點並使其凖備載入系統影像之低階通訊協定。該JTAG網路亦可用以實施各種其他低階監視及支援功能。一硬體控制器270駐存於每一機架230中,並為控制系統208提供一介面以組態計算節點110並將程式指令及資料載入一計算節點之記憶體214中。在該藍色基因/P電腦系統中,每一節點板與中平面之封裝包括一IDo晶片。該等IDo晶片係25 MHz FPGA,其使用在JTAG網路219上發送之UDP封包以自該服務節點接收命令。
進一步,如圖3所示,計算核心210亦在功能網路160上與檔案伺服器130及前端節點120進行通信。功能網路160可係十億位元以太網。檔案伺服器130為使用者應用程式及系統影像儲存資料。個別計算節點藉由與一I/O節點112進行通信來存取該等檔案伺服器。舉例而言,該計算節點可在一NFS共享上存取檔案伺服器130。在一實施例中,控制系統212包括一資料庫250,該資料庫經組態以保存載明有關計算節點110之狀態資訊之資料表。該中平面管理及控制系統(MMCS)144可經組態以管理將一計算核心210中之硬體分配至不同計算工作。控制系統208亦連接至功能網路160。在一實施例中,該連接允許控制系統208偵測一計算結點在載入系統影像及資料檔案後何時完成該開機過程。控制系統208進一步包括一供使用者及系統管理員使用之控制台260。
再次參照圖3,計算核心210圖解闡釋安裝於機架230中之計算節點110。在一藍色基因系統中,該等計算節點被分組為若干個處理集(pset)。一處理集係一組64個節點,該等節點被分組在一起形成一集合以與一特定I/O節點112進行通信。在一個實施例中,可將計算核心210劃分為最大數量之處理集,每一處理集皆具有一個執行一Linux作業系統核心之I/O節點112,及64個執行一計算節點核心(CNK)(其在控制網路150上作為一系統影像傳輸)之計算節點110。如所述,I/O節點112在功能網路160上為一既定處理集中之計算節點提供通信。在一藍色基因/P系統中,一I/O節點112可經組態以與8至128個計算節點進行通信。
每一計算節點110皆包括儲存於一計算節點110之記憶體214中之系統影像及資料文件218。該等系統影像檔案及計算節點核心(CNK)218皆包括諸如作業系統核心之系統檔案。計算節點核心218儲存於每一計算節點110之記憶體214中。通常,載入該等系統影像檔案,且計算節點核心218通常在指示計算節點110執行任何使用者應用程式之前開始執行。
為在電腦系統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使用該保留分頁表,而並非為該分派之處理創建一個新分頁表。任何其他作為該計算工作之部分之處理皆係以「潔淨」的記憶體空間開始,且可使用該功能網路將頁面帶入記憶體中並可使用一要求調頁過程將頁面帶入I/O節點112中。當該程式開始執行時,其會試圖自記憶體中一位置載入第一指令。通常,此將觸發一分頁錯誤。該異常會傳至該作業系統,該作業系統(作為回應)會自某些二級儲存器源將所需頁面載入至實體記憶體中。然而,由於來自該保留分頁表中之資訊包含一有效映射,故該程式可容易地該存取資訊二元指令。該程式之所有指令皆將發生此種情形。因此,可顯著縮短與該保留分頁表相關聯之應用程式之載入時間。對一大規模平行系統(諸如一藍色基因系統)而言尤其如此,該大規模平行系統可分派具有不同資料集之同一工作達數千、數百萬或甚至數十億次。
根據本發明之一個實施例,圖4係由一服務節點140維持之計算節點狀態表252之方塊圖。在一實施例中,節點狀態表252可儲存為資料庫250之部分。如圖所示,節點狀態表252包括一計算節點110列表,該計算節點列表係一與每一節點上上次所執行之工作相匹配之既定系統的部分。因此,當一使用者分派一工作請求時,控制系統208可使用節點狀態表252來識別先前執行一分派工作之節點。
圖5係一根據本發明一實施例之流程圖,其圖解闡釋一用於凖備一組計算節點110以在一高度平行化或分散式電腦系統上執行一計算工作之方法500。方法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
包括3個可執行指令頁面(頁面0、1及3)及一標記為不可執行(即,標記為可寫資料)之單個頁面(頁面2)。分頁表715將處理P0
所使用之虛擬記憶體位址映射成實體記憶體730中之位址。具體而言,分別將頁面0、1、2及3映射成實體記憶體730之頁面1、4、3及7。如圖所示,分頁表715包括:欄716,其顯示自一定位之虛擬頁面至實體記憶體730之映射;欄717,其指示一頁面是否為可執行;及欄718,其指示一分頁表項目是否有效。類似地,分頁表725將由處理P1
使用之頁面720映射成實體記憶體730中之頁面。處理P1
包括可執行指令之單個頁面(頁面1)及3個資料頁面(頁面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中之項目會繼續將來自虛擬記憶體空間710之頁面0、1及3分別映射成實體記憶體735之頁面1、4及7。然而,移除虛擬記憶體頁面2之分頁表項目。如圖所示,分頁表715現在顯示頁面2之項目係無效。此外,圖中顯示實體記憶體735中頁面3(其中該頁面在處理P0
之先前調用期間被映射)處顯示存在的值已被設為0。當程式P0
經執行達一額外時間時,頁面0、1及3將不會發生分頁錯誤。
可使用本發明之實施例來縮短在一分散式或高度平行化電腦系統中載入一程式以便執行所需之時間。此可藉由再使用某些於先前將該程式調用至一特定計算節點處期間所創建之分頁表項目來達成。因此,總體而言,可減少必須調頁至該計算節點之記憶體中之頁數,籍此縮短程式載入的時間。在大規模平行系統及分散式或群集系統兩者中(其中同一工作可執行多次),儘管個別計算節點處之改善可係相對小,但對整個系統性能之改善可係顯著。
儘管上文係關於本發明之實施例,但在不背離本發明的基本範疇之前提下,亦可構想出本發明之其他及進一步實施例,且本發明之範疇由隨附申請專利範圍來確定。
100...電腦系統
110...計算節點
112...I/O節點
120...前端節點
130...檔案伺服器
140...服務節點
144...控制系統(MMCS)
150...控制系統網路
160...功能網路
210...計算核心
212...特定應用積體電路、控制系統
214...記憶體
218...計算節點核心
219...JTAG網路
220...節點板
230...機架
250...資料庫
252...節點狀態表
260...控制台
270...硬體控制器、控制網路
710...虛擬記憶體空間
參照隨附圖式中所圖解說明之實施例可獲得關於上述簡要歸納的本發明的更詳細說明,從而獲得並可更詳細地理解上文所陳述之本發明之特徵、優點及目標之方式。
然而,應注意:附圖僅是本發明的典型實施例,故不應視為對本發明範圍之限定,此乃因本發明可容許其他等效的實施例。
圖1係一方塊圖,其圖解闡釋一根據本發明一實施例之大規模平行電腦系統。
圖2係一方塊圖,其進一步圖解闡釋根據本發明一實施例之大規模平行電腦系統之若干態樣。
圖3係一方塊圖,其進一步圖解闡釋一根據本發明一實施例之大規模平行電腦系統之若干態樣。
圖4係根據本發明一實施例之一服務節點所維持之計算節點狀態表的方塊圖。
圖5係一根據本發明一實施例之流程圖,其圖解闡釋一用於凖備一組計算節點以在一高度平行化或分散式電腦系統上執行一計算工作之方法。
圖6係一根據本發明一實施例之流程圖,其圖解闡釋一用於一高度平行化或分散式電腦系統之計算節點以執行一計算工作之方法。
圖7A至圖7B圖解闡釋根據本發明一實施例之分頁表,該頁面係由一高度平行化或分散式電腦系統之計算節點來維持。
100...電腦系統
110...計算節點
112...I/O節點
120...前端節點
130...檔案伺服器
140...服務節點
150...控制系統網路
160...功能網路
Claims (17)
- 一種在一包括多個處理節點之計算系統上載入一程式之方法,其包括:識別先前執行該程式之可用的複數個處理節點,其中該程式與一經提交以由該計算系統執行之計算工作相關聯;向每一識別之處理節點發訊息以保留一與該程式之先前執行相關聯之分頁表;及將該計算工作分派至該複數個處理節點。
- 如請求項1之方法,其進一步包括記錄被分派到該計算工作的該複數個計算節點之指示。
- 如請求項1之方法,其中每一處理節點包括至少一個CPU及一記憶體。
- 如請求項1之方法,其中該計算系統包括一平行計算系統。
- 如請求項1之方法,其中該計算系統包括一分散式計算系統。
- 如請求項1之方法,其中若上次執行該程式之該複數個處理節點不可用,則分派該計算工作以在該計算系統上執行,並記錄一關於哪一個處理節點被分派到該計算工作之指示。
- 如請求項1之方法,其進一步包括:回應於接收該訊息以保留與該程式之先前執行相關聯之分頁表:識別與該程式相關聯之分頁表;及 對於每一分頁表項目,確定該分頁表項目是否參照一與該程式相關聯之可執行指令序列:若該分頁表項目參照一可執行指令序列,則在該分頁表中保留該項目;及若該分頁表項目並不參照一可執行指令序列,則自該分頁表捨棄該項目。
- 如請求項7之方法,其進一步包括擦除由一捨棄之分頁表項目所映射之實體記憶體位址內容。
- 一種包含一程式之電腦可讀媒體,當執行時該程式實施一作業而將一程式載入包括多個處理節點之一計算系統上,以執行前述第1至8項中任一項之方法。
- 一種平行計算系統,其包括:複數個計算節點,每一節點包括一或多個中央處理器及用以儲存程式指令及資料集之記憶體;及一處理單元,其經組態為藉由實施下列多個作業以在複數個計算節點中之至少一些計算節點上,執行一計算工作,該等作業包括:識別先前執行該程式之可用的複數個處理節點,其中該計算工作識別一擬在該平行計算系統上執行之程式;向該組計算節點中之至少一些計算節點發訊息以保留一與該程式之先前執行相關聯之分頁表;及將該計算工作分派至包括於該複數個計算節點中之至少一些計算節點。
- 如請求項10之平行計算系統,其中該等作業進一步包括記錄一關於哪一個計算節點被分派到該計算工作之指示。
- 如請求項10之平行計算系統,其中每一計算節點皆包括至少一個CPU及一記憶體。
- 如請求項10之平行計算系統,其中分派該計算工作包括將由該程式所操縱之資料傳輸至該組計算節點。
- 如請求項10之平行計算系統,其中若上次執行程式之該組計算節點不可用,則分派該計算工作以便在該平行計算系統上執行,並記錄一關於被分派到該計算工作的計算節點之指示。
- 如請求項10之平行計算系統,其中該分頁表包括一映射,該映射係自一配置用以儲存該程式及與該程式相關聯的資料之虛擬記憶體空間映射至一與一特定計算節點相關聯之實體記憶體空間。
- 如請求項10之平行計算系統,其中該等作業進一步包括:回應於接收該訊息以保留與該程式之先前執行相關聯之分頁表:識別與該程式相關聯之該分頁表;及對每一分頁表項目,確定該分頁表項目是否參照一與該程式相關聯之可執行指令序列:若該分頁表項目參照一可執行指令序列,則在該分頁表中保留該項目;及若該分頁表項目並不參照一可執行指令序列,則自 該分頁表捨棄該項目。
- 如請求項16之平行計算系統,其中該等作業進一步包括擦除由一捨棄之分頁表項目所映射之實體記憶體位址內容。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/278,829 US8429218B2 (en) | 2006-04-06 | 2006-04-06 | Process restart on a compute node |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200813738A TW200813738A (en) | 2008-03-16 |
TWI414947B true TWI414947B (zh) | 2013-11-11 |
Family
ID=38576848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096111848A TWI414947B (zh) | 2006-04-06 | 2007-04-03 | 在包含多個處理節點之計算系統上載入一程式之方法、電腦可讀媒體及平行計算系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8429218B2 (zh) |
JP (1) | JP5030647B2 (zh) |
CN (1) | CN100462956C (zh) |
TW (1) | TWI414947B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346886B2 (en) * | 2004-09-08 | 2013-01-01 | Red Hat, Inc. | System, method, and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system |
US7844620B2 (en) * | 2007-11-16 | 2010-11-30 | International Business Machines Corporation | Real time data replication for query execution in a massively parallel computer |
US8095512B2 (en) * | 2007-11-19 | 2012-01-10 | International Business Machines Corporation | Managing database resources used for optimizing query execution on a parallel computer system |
CN102053945B (zh) * | 2009-11-09 | 2012-11-21 | 中国科学院过程工程研究所 | 一种面向多尺度离散模拟的并行计算系统 |
US10642582B2 (en) | 2017-08-24 | 2020-05-05 | Google Llc | System of type inference for tuple graph programs method of executing a tuple graph program across a network |
US10599482B2 (en) | 2017-08-24 | 2020-03-24 | Google Llc | Method for intra-subgraph optimization in tuple graph programs |
US10887235B2 (en) | 2017-08-24 | 2021-01-05 | Google Llc | Method of executing a tuple graph program across a network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182130B1 (en) * | 1991-03-18 | 2001-01-30 | Echelon Corporation | Method for enhancing the performance of a network |
TW484059B (en) * | 1998-10-13 | 2002-04-21 | Ibm | Method and system in a distributed shared-memory data processing system for determining utilization of shared-memory included within nodes by a designated application |
TW200511773A (en) * | 2003-08-05 | 2005-03-16 | Freescale Semiconductor Inc | Arrangement and method for connecting a processing node in a distributed system |
US6925642B1 (en) * | 1999-04-29 | 2005-08-02 | Hewlett-Packard Development Company, L.P. | Distributed computer network which spawns inter-node parallel processes based on resource availability |
TW200527849A (en) * | 2003-12-02 | 2005-08-16 | Ibm | Packet processing system and method for a data transfer node with time-limited packet buffering in a central queue |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6105053A (en) * | 1995-06-23 | 2000-08-15 | Emc Corporation | Operating system for a non-uniform memory access multiprocessor system |
US6317774B1 (en) * | 1997-01-09 | 2001-11-13 | Microsoft Corporation | Providing predictable scheduling of programs using a repeating precomputed schedule |
JPH11259318A (ja) * | 1998-03-13 | 1999-09-24 | Hitachi Ltd | ディスパッチ方式 |
JP4475614B2 (ja) * | 2000-04-28 | 2010-06-09 | 大正製薬株式会社 | 並列処理方法におけるジョブの割り当て方法および並列処理方法 |
US7356026B2 (en) * | 2000-12-14 | 2008-04-08 | Silicon Graphics, Inc. | Node translation and protection in a clustered multiprocessor system |
CN1225691C (zh) * | 2002-07-08 | 2005-11-02 | 华为技术有限公司 | 一种程序动态加载方法 |
US7143412B2 (en) * | 2002-07-25 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Method and apparatus for optimizing performance in a multi-processing system |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
CN100342335C (zh) * | 2004-09-23 | 2007-10-10 | 华为技术有限公司 | 芯片程序加载方法 |
CA2584269A1 (en) * | 2004-10-06 | 2006-04-20 | Digipede Technologies, Llc | Distributed processing system |
-
2006
- 2006-04-06 US US11/278,829 patent/US8429218B2/en active Active
-
2007
- 2007-03-21 CN CNB2007100878548A patent/CN100462956C/zh active Active
- 2007-04-03 TW TW096111848A patent/TWI414947B/zh active
- 2007-04-04 JP JP2007098425A patent/JP5030647B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182130B1 (en) * | 1991-03-18 | 2001-01-30 | Echelon Corporation | Method for enhancing the performance of a network |
TW484059B (en) * | 1998-10-13 | 2002-04-21 | Ibm | Method and system in a distributed shared-memory data processing system for determining utilization of shared-memory included within nodes by a designated application |
US6925642B1 (en) * | 1999-04-29 | 2005-08-02 | Hewlett-Packard Development Company, L.P. | Distributed computer network which spawns inter-node parallel processes based on resource availability |
TW200511773A (en) * | 2003-08-05 | 2005-03-16 | Freescale Semiconductor Inc | Arrangement and method for connecting a processing node in a distributed system |
TW200527849A (en) * | 2003-12-02 | 2005-08-16 | Ibm | Packet processing system and method for a data transfer node with time-limited packet buffering in a central queue |
Also Published As
Publication number | Publication date |
---|---|
US20070239851A1 (en) | 2007-10-11 |
TW200813738A (en) | 2008-03-16 |
US8429218B2 (en) | 2013-04-23 |
JP2007280397A (ja) | 2007-10-25 |
CN101051302A (zh) | 2007-10-10 |
JP5030647B2 (ja) | 2012-09-19 |
CN100462956C (zh) | 2009-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI414947B (zh) | 在包含多個處理節點之計算系統上載入一程式之方法、電腦可讀媒體及平行計算系統 | |
US12073242B2 (en) | Microservice scheduling | |
CN101233489B (zh) | 自适应进程分派的方法和系统 | |
US10379883B2 (en) | Simulation of high performance computing (HPC) application environment using virtual nodes | |
US8972991B2 (en) | Systems and methods for exposing processor topology for virtual machines | |
JP4690988B2 (ja) | 持続的なユーザレベルスレッド用の装置、システムおよび方法 | |
US7689747B2 (en) | Systems and methods for an augmented interrupt controller and synthetic interrupt sources | |
CN108667859A (zh) | 一种实现资源调度的方法及装置 | |
KR102103596B1 (ko) | 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법 | |
US8112526B2 (en) | Process migration based on service availability in a multi-node environment | |
US20090228541A1 (en) | Network virtualization in a multi-node system with multiple networks | |
JP2011100431A (ja) | 仮想マシン制御装置及び仮想マシン制御方法 | |
US8612973B2 (en) | Method and system for handling interrupts within computer system during hardware resource migration | |
US20200341789A1 (en) | Containerized workload scheduling | |
JP6768823B2 (ja) | 投機的仮想マシン実行 | |
JP2004318880A (ja) | ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置 | |
US20090319662A1 (en) | Process Migration Based on Exception Handling in a Multi-Node Environment | |
CN116932130A (zh) | 一种基于OpenStack的仿真实验环境部署方法 | |
CN114510321A (zh) | 资源调度方法、相关装置和介质 | |
CN111310638A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113326098A (zh) | 支持kvm虚拟化与容器虚拟化的云管平台 | |
US20230034779A1 (en) | Service mesh for composable cloud-native network functions | |
WO2024220268A1 (en) | Mapping virtual processor cores to heterogeneous physical processor cores | |
Karlsson | Enea Hypervisor: Facilitating Multicore Migration with the Enea Hypervisor | |
de Lacerda Ruivo et al. | Efficient High-Performance Computing with Infiniband Hardware Virtualization |