摘 要:針對網格環(huán)境下科學計算遺產程序執(zhí)行涉及到的關鍵問題進行了分析和設計,提出了一個基于固有計算執(zhí)行環(huán)境+網格運行支持擴展的計算作業(yè)網格執(zhí)行環(huán)境,以支持在網格環(huán)境下調用執(zhí)行科學程序,并將其應用到了科學計算遺產程序包裝成的網格服務運行中。計算作業(yè)網格執(zhí)行環(huán)境很好地滿足了傳統(tǒng)科學計算遺產程序在網格環(huán)境下共享后的運行管理的需要,具有廣泛的適用性和參考價值。
關鍵詞:科學計算遺產程序; 作業(yè)運行支持工具; 計算作業(yè)網格執(zhí)行環(huán)境; 網格運行支持擴展; 網格服務
中圖分類號:TP393 文獻標志碼:A 文章編號:1001-3695(2008)08-2546-04
Analysis, design and application of grid-enabled execution
environment for computing jobs
WANG Bin
( Computer Division, National Meteorological Information Center, Beijing100081, China)
Abstract:Regarding key issues in the execution process of scientific computing legacy codes, this paper made analysis and design.It proposed a grid-enabled execution environment for computing jobs based on “inherent computing runtime environment + grid runtime extension”to support execution of legacy codes. The proposed scheme was applied to the running of grid services wrapping scientific computing legacy codes. The proposed grid-enabled execution environment well satisfied requirements for runtime management of scientific computing legacy codes in grid environment and would see wide applicability and reference.
Key words:scientific computing legacy codes;job runtime tools; grid-enabled execution environment for computing jobs;grid runtime extension;grid services
科學計算各個領域存在著大量的遺產型應用程序,在各種科學計算中已經獲得了廣泛應用,是科學工作者進行研究的重要工具。這些科學計算遺產程序蘊涵了豐富的領域知識和專家技能,構成了科學計算資源的重要組成部分。用戶或網格服務應用在計算網格上通過提交計算作業(yè)來使用共享的科學計算遺產程序。作業(yè)的提交、運行過程包括計算作業(yè)的準備、提交啟動、狀態(tài)監(jiān)視匯報、運行時操縱和I/O支持等方面。
網格資源的異構性、分布性和動態(tài)性使得網格上的作業(yè)管理比起本地運行環(huán)境復雜許多。所以,任何一個網格運行環(huán)境要提供的一個基礎服務就是作業(yè)運行支持系統(tǒng),幫助用戶在網格資源上提交作業(yè)、執(zhí)行程序并且對運行著的作業(yè)進行生命期管理。主要的網格計算中間件系統(tǒng)Globus Toolkit[1]、Condor[2]、Legion[3]、UNICORE[4]等,都提供了相應的作業(yè)運行支持工具,如GRAM、Universe、legion_run/legion_probe_run、TSI等。已有的幾種網格技術不同程度地解決了網格上提交運行計算作業(yè)涉及到的大部分關鍵問題,如與主要計算執(zhí)行環(huán)境的集成、通用狀態(tài)的監(jiān)視匯報、部分運行干預、文件I/O、標準I/O等。但是,現(xiàn)有的作業(yè)運行支持技術只支持有本地運行經驗的用戶,缺乏對領域特有狀態(tài)信息、標準輸入、中間過程數(shù)據獲取等方面的支持,不能完全滿足網格上運行科學計算遺產程序的需要,還需要進一步改進、完善[5]。
鑒于目前已有的網格計算中間件系統(tǒng)提供的程序提交執(zhí)行和作業(yè)管理工具未能完全滿足網格上提交運行科學計算遺產程序的需要,筆者探索設計了一個基于固有計算執(zhí)行環(huán)境+網格運行支持擴展的計算作業(yè)網格執(zhí)行環(huán)境,以支持在網格環(huán)境下調用執(zhí)行科學程序。其目標就是實現(xiàn)與在本地運行計算一樣的支持,使得網格服務用戶獲得與在本地盡可能相同的用戶體驗,并將其應用到了科學計算遺產程序網格服務,用于包裝后獲得的網格服務調用過程去執(zhí)行對應的遺產程序。在此應用中,網格服務充當了提交計算作業(yè)的用戶,通過網格作業(yè)執(zhí)行環(huán)境調用遺產程序。
1 關鍵問題的分析與解決思路
1.1 準備固有計算執(zhí)行環(huán)境
在網格上執(zhí)行計算作業(yè)的一個首要問題就是要為計算作業(yè)準備必要的執(zhí)行環(huán)境。科學計算遺產程序的運行緊密地依賴于特定的計算執(zhí)行環(huán)境,跨平臺性差,離開了其固有的計算執(zhí)行環(huán)境就無法正常工作。科學計算遺產程序在網格上的共享不能改變其原有的運行方式,為了確保計算程序的順利運行,還是需要按照其原有的方式運行。
愿意共享科學計算遺產程序的科學工作者會在其網格部署描述信息中提供其固有計算執(zhí)行環(huán)境的信息。計算作業(yè)網格執(zhí)行環(huán)境就可以按照這些信息,根據科學計算遺產程序本身的類型特點,為之創(chuàng)建、維護對應的計算執(zhí)行環(huán)境。
計算作業(yè)網格執(zhí)行環(huán)境能夠有效工作的一個關鍵就是能與固有計算執(zhí)行環(huán)境很好地契合起來,支持不同類型計算執(zhí)行環(huán)境啟動和管理計算作業(yè),從而廣泛地支持各種類型計算程序的作業(yè)執(zhí)行。固有計算執(zhí)行環(huán)境雖然類型多樣,但提交運行作業(yè)需要與其交互的操作基本上是固定的,包括提交作業(yè)、獲取作業(yè)執(zhí)行狀態(tài)信息、得到作業(yè)結束通知及退出參數(shù)等。于是,可以考慮設計一個專門的適配器層,作為與各種固有計算執(zhí)行環(huán)境之間的界面。對于不同類型的固有計算執(zhí)行環(huán)境,提供不同種類的適配器,但是這些適配器向上提供了共同的接口,供作業(yè)提交和管理之用。
網格執(zhí)行環(huán)境接收到網格上的計算作業(yè)請求后,按照請求中對作業(yè)的描述,根據保存在網格部署信息文件中對遺產程序的描述獲知固有計算執(zhí)行環(huán)境的類型,然后使用相應的適配器創(chuàng)建相應的固有計算執(zhí)行環(huán)境,并且按照作業(yè)描述修改環(huán)境相關的設置,保證作業(yè)能夠正確順利地執(zhí)行。隨后固有計算執(zhí)行環(huán)境負責啟動程序的執(zhí)行。待到計算結束后,網格執(zhí)行環(huán)境使用適配器銷毀固有作業(yè)執(zhí)行環(huán)境。
1.2 資源部署信息機制
目前,幾種主要的網格平臺的作業(yè)提交執(zhí)行工具都要求網格用戶在提交作業(yè)描述時給出過多的資源細節(jié)。將計算作業(yè)描述中的計算資源細節(jié)交由提交作業(yè)的網格用戶指定的做法限制了用戶范圍,只能支持一部分具有本地計算運行經驗的網格用戶,其他類型網格用戶無法提交作業(yè)。此外,又造成了安全問題,無法有效地實現(xiàn)資源共享控制。
首先,使用這種方式提交作業(yè)假定了用戶必須對要運行的具體作業(yè)執(zhí)行的程序和所在計算節(jié)點環(huán)境有很多了解,在本地環(huán)境(或同一個管理域內)或者有過使用經驗的網格用戶是很容易做到的。但是有本地計算運行經驗的人只是網格用戶的一部分,其他許多網格用戶可能位于地理上相距遙遠的另一個組織內,通常不是很了解虛擬組織內用于執(zhí)行作業(yè)的各種資源,也不關心這些資源細節(jié),而只是關心能夠按時保質地完成他所提交的作業(yè)就可以了。這些用戶并不具備這些知識,無法給出詳細的作業(yè)描述,因而無法提交作業(yè)。其次,這種做法還存在著一個很大的安全隱患,就是網格用戶可以在作業(yè)描述中隨意指定在一個目標計算節(jié)點上的可執(zhí)行程序,然后提交執(zhí)行。如果網格作業(yè)用戶指定了一個惡意程序,可能會造成損失。再次,這種方法影響了對資源共享的精細控制。因為網格作業(yè)用戶在作業(yè)提交描述可以指定一個并不想共享到網格上的計算程序,作業(yè)管理仍會執(zhí)行。
對此,一個解決方案就是建立一個行之有效的資源部署信息機制,不是讓網格作業(yè)用戶描述具體的資源細節(jié),而是由提供遺產程序的科學工作者在共享資源時進行描述,既描述了如何使用執(zhí)行,又給出了共享控制要求。具體做法就是在每一個可以執(zhí)行計算作業(yè)的計算節(jié)點上設置一個計算程序網格化部署信息文件,上面記錄了這個計算節(jié)點上可以共享使用的各個科學計算遺產程序的相關信息。其中包括準備計算執(zhí)行環(huán)境的描述。計算程序網格化部署信息文件由網格作業(yè)運行環(huán)境維護,由提供科學計算遺產程序資源的所有者在共享部署資源時填寫。沒有列入計算程序網格化部署信息文件的程序不會允許被網格用戶使用。遺產程序共享者還可以在計算程序網格化部署信息文件寫入對資源的共享控制信息,如最大并發(fā)執(zhí)行作業(yè)數(shù)量、使用條件的限制(如本地負載高到一定程度時不會接收新作業(yè)提交)等。
1.3 狀態(tài)監(jiān)視:統(tǒng)一監(jiān)視框架+自定義監(jiān)視插件
用戶和網格系統(tǒng)非常關心運行中的科學計算遺產程序的運行狀態(tài)、資源使用情況等信息,希望能夠收集獲取計算進行的各種狀態(tài)信息,并以適當?shù)男问教峁┙o用戶。
在計算作業(yè)執(zhí)行的過程中要進行充分的監(jiān)視并及時向用戶和感興趣的方面匯報狀態(tài)。計算網格服務運行過程的主體就是遺產程序的執(zhí)行過程,這一過程是由作業(yè)運行環(huán)境管理的。因此,需要在管理遺產程序運行的計算執(zhí)行環(huán)境中考慮支持檢測計算進程的狀態(tài)信息。
大量的科學計算遺產程序的運行既有一些共同方面的狀態(tài)信息,如計算的階段信息、計算進程的狀態(tài)、運行時間、異常失敗信息,同時由于領域問題的不同,又具有一些特有的狀態(tài)信息。
現(xiàn)有的網格計算中間件系統(tǒng)中的作業(yè)執(zhí)行管理工具GRAM中提供了一個作業(yè)狀態(tài)變化的收集和匯報機制。但是這個作業(yè)狀態(tài)信息只考慮了計算作業(yè)運行過程的階段信息,如傳入/傳出數(shù)據文件、懸掛、活動、暫停、完成、失敗等。對于運行的計算程序所特有的狀態(tài)信息的收集匯報未提供支持。
針對科學計算遺產程序狀態(tài)信息的特點,本文提出了在計算執(zhí)行環(huán)境中添加一個網格上科學計算的作業(yè)狀態(tài)監(jiān)視模塊。它包括以下兩個部分:
a)統(tǒng)一監(jiān)視框架。在所有的計算執(zhí)行環(huán)境中提供了一個統(tǒng)一的作業(yè)執(zhí)行監(jiān)視模塊,用來對各種遺產程序運行過程中共有方面的狀態(tài)數(shù)據進行監(jiān)視。每一次創(chuàng)建、初始化計算執(zhí)行環(huán)境時就會啟動監(jiān)視框架,在計算遺產程序的運行過程中檢測、獲取各種通用狀態(tài)信息。
b)用戶自定義監(jiān)視插件。遺產程序的開發(fā)管理者/科學工作者可以根據服務的需要開發(fā)自己的監(jiān)視插件作為作業(yè)統(tǒng)一監(jiān)視框架模塊的補充。開發(fā)者要根據開發(fā)規(guī)范定義好相應的監(jiān)控插件,并且在服務描述中進行相應的描述。用戶自定義監(jiān)控插件的支持要完成兩件事情:提供一個監(jiān)控插件的編寫規(guī)范;完成監(jiān)控插件得到的信息搜集過程。用戶可以自定義多個插件,每一個插件監(jiān)控作業(yè)的某一個信息。
1.4 運行時操縱
很多情況下,用戶希望在充分了解計算作業(yè)運行狀態(tài)的基礎上對遺產程序的運行過程進行運行時干涉調整操縱,如取消、終止、重新運行、暫停計算服務等。
用戶有了狀態(tài)監(jiān)視信息作為基礎,就能及時發(fā)現(xiàn)異常出錯和性能下降,并將獲取得到的信息作為反饋,在一個統(tǒng)一監(jiān)控調度框架下調整操縱科學計算遺產程序的運行,提高整個系統(tǒng)的運行效率和可用性。
Globus Toolkit的作業(yè)執(zhí)行管理工具GRAM中提供了一些這方面的支持,可以取消已提交的作業(yè)。此外,GRAM提供了狀態(tài)保持釋放機制,可以在作業(yè)描述中指定當作業(yè)到達某個狀態(tài)時保持這個狀態(tài)(on hold),直到用戶請求釋放保持狀態(tài)(release hold)。這個功能的好處就是用戶可以直接訪問作業(yè)產生的輸出文件,而無須等待到文件傳出步驟才獲得想要的輸出文件,如用戶可以要求文件清理過程先不進行,讓用戶在刪除之前取走暫存的緩沖數(shù)據。但是,GRAM的狀態(tài)保持功能機制需要在作業(yè)提交運行前指定在作業(yè)描述中。目前還無法在運行時實現(xiàn)這個功能。
針對計算作業(yè)運行操縱的需求,筆者提出了在計算執(zhí)行環(huán)境中添加一個網格上科學計算的運行時操縱模塊,它包括對計算作業(yè)實施的幾個操縱控制,如終止、重新運行、暫停等操作。
1.5 標準輸出/出錯/輸入的支持
傳統(tǒng)的使用科學計算遺產程序計算的用戶,或者在自己的計算機,或者通過TELNET、SSH登錄到高性能計算機上啟動遺產程序進行計算。在該方式的計算過程中,用戶可以從屏幕上看到運行著的計算進程的標準輸出/出錯信息,了解運行情況。科學計算遺產程序在運行時會向輸出設備打印出許多運行時輸出信息和出錯信息,這些信息對于了解程序的運行診斷非常重要。獲得了科學計算進程的標準輸出/標準出錯等運行時信息后,一方面可以對運行著的程序有實時的了解;另一個方面,還可以將這些有價值的信息儲存到用戶的數(shù)據中心或指定站點,以備以后進行分析,或者重新模擬顯示。此外,用戶還可以在計算進行時通過鍵盤輸入以標準輸入的方式對進程的運行給予指導和干預[6]。
實際上計算程序運行過程的標準輸出/出錯信息可以看做是運行監(jiān)視內容的一部分,只不過其具體的內容語義是應用內容相關的。標準輸入的作用可以看做是運行時操縱的另一種手段。
用戶在使用對遺產程序服務化封裝后獲得的網格服務提交計算作業(yè)時,同樣非常希望能夠獲得與使用TELNET、SSH登錄直接調用遺產程序計算傳統(tǒng)方式一樣的效果。
為此,筆者覺得在計算執(zhí)行環(huán)境的設計框架中,要考慮對標準輸入/輸出/出錯等標準I/O進行充分的支持,使得使用網格服務的用戶能夠獲得與傳統(tǒng)方式一樣多的信息和能力。對于標準輸出和標準出錯,首先在服務的對外接口上提供獲取標準輸出和標準出錯信息的操作;然后在服務數(shù)據(資源屬性)中加上關于標準輸出/出錯是否更新的狀態(tài)位,更主要的是在計算執(zhí)行環(huán)境中提供重定向和收集機制,將遺產程序計算進程的標準輸出/出錯重定向,實時進行收集。對于標準輸入,也要在服務的對外接口上加上添加標準輸入的操作,在計算執(zhí)行環(huán)境中要提供重定向和添加機制將用戶在運行時給出的標準輸入信息加入到遺產程序計算進程的標準輸入中。
1.6 對中間結果的獲取支持
由于高性能科學計算的周期較長,科學工作者不希望在計算結束之前是暗箱操作,對計算的進行一無所知,而是想實時地對計算過程進行跟蹤,了解計算執(zhí)行的進度。另外,由于一次計算執(zhí)行的周期過長,科學工作者希望盡可能地對一次執(zhí)行的情況進行充分的分析和總結,以減少需要計算的次數(shù)。用戶可能需要計算狀態(tài)的監(jiān)視匯報、標準輸出/出錯信息的收集等,但很多情況下這些還不夠,用戶希望能夠獲取在計算執(zhí)行過程中產生的臨時文件中間結果。解決某一個領域的一個具體問題的遺產程序在計算過程產生了大量的中間結果,如果能夠獲得這些中間過程結果,既可能用于實時計算過程仿真,又可以用于計算后的分析回放。這就需要在科學計算進行的同時對中間計算結果進行保存,并傳遞到指定站點(如用于實時可視化仿真輸出)[6]。
此外,對于網格上的工作流或經過服務組裝而成的網格應用來說,中間結果的獲取保存具有重要意義。因為這樣的網格應用由若干個計算子任務組成,在網格的環(huán)境下執(zhí)行的過程有可能某個子任務的運行會出現(xiàn)問題,需要重新運行。如果能夠將每一步的子任務計算所得到的過程結果進行保存,那么在出現(xiàn)失敗的情況下就無須從頭開始計算,只需取保存好的前一個子任務計算的結果,重新運行失敗了的子任務即可。
具體實現(xiàn)可以視具體的領域遺產程序而定,由遺產程序的領域專家和網格開發(fā)者協(xié)作,提供獲得中間過程文件的程序,然后在網格服務接口中提供問題域數(shù)據的獲取操作。
2 設計方案
基于上述關鍵問題的分析和解決思路,目前已有的作業(yè)提交管理工具技術不能很好地滿足網格上運行科學計算遺產程序的需要。本文提出設計了一個基于固有計算執(zhí)行環(huán)境+網格擴展方案的計算作業(yè)網格執(zhí)行環(huán)境來支持在網格環(huán)境下調用執(zhí)行科學程序。計算作業(yè)網格執(zhí)行環(huán)境提供了一個網格化的計算程序執(zhí)行環(huán)境,目標就是實現(xiàn)與在本地運行計算一樣的支持,使得網格服務用戶獲得與在本地盡可能相同的用戶體驗。為了實現(xiàn)這個目標,計算作業(yè)網格執(zhí)行環(huán)境應該為用戶提供一個健壯的、可控的計算作業(yè)運行支持環(huán)境,在遠程網格計算節(jié)點上準備本地計算執(zhí)行環(huán)境,提交用戶的計算作業(yè);作業(yè)運行后,計算作業(yè)網格執(zhí)行環(huán)境應該具有對正在運行的計算程序的實時可觀察性和可操縱性。注重用戶體驗,為之提供實時的狀態(tài)信息匯報,支持標準I/O和文件I/O的用戶操縱和交互能力。
2.1 固有計算執(zhí)行環(huán)境+網格擴展方案
科學計算遺產程序與其固有計算執(zhí)行環(huán)境的緊密依賴關系,決定了無論是否在網格上運行都需要它們的支持。任何設計方案的一個前提就是不能改動遺產程序的固有計算執(zhí)行環(huán)境和運行方式。實現(xiàn)計算作業(yè)網格執(zhí)行環(huán)境的關鍵就是需要將程序的原有本地執(zhí)行環(huán)境加以網格化,使其在網格上可用,支持網格上的作業(yè)提交和運行。
計算作業(yè)網格執(zhí)行環(huán)境的功能應該不只是將各種計算程序按照原有的固有計算執(zhí)行環(huán)境啟動,很重要的一點就是根據網格環(huán)境的新需求和特點,對各種計算程序的固有執(zhí)行環(huán)境加以擴展,加入狀態(tài)信息監(jiān)視、運行時控制交互、I/O數(shù)據支持等功能模塊,使得網格上運行的計算作業(yè)運行支持盡可能與在本地運行一樣,提高網格服務用戶的體驗質量。
固有計算執(zhí)行環(huán)境+網格運行支持擴展的設計方案在保留遺產程序的固有計算執(zhí)行環(huán)境的基礎上擴展,加入網格運行支持擴展(grid runtime extension)。網格運行支持擴展與固有執(zhí)行環(huán)境之間通過適配器進行無縫的集成。網格運行支持擴展包含了多個模塊,包括適配器模塊、通信模塊、通用監(jiān)視框架、用戶自定義插件(可選)、運行時操縱(可選)、I/O支持、文件傳輸和資源網格化部署管理等模塊。這個方案既保存了遺產程序的原有運行環(huán)境,又很好地滿足了網格用戶提交運行作業(yè)的各種需求。
如圖1所示,左側是沒有使用網格之前,遺產程序在固有計算執(zhí)行環(huán)境中運行,共享范圍限于組織內部,只能是本地的用戶才能提交作業(yè),執(zhí)行計算遺產程序。經過加入了網格運行支持擴展后,計算遺產程序進入了網格環(huán)境,共享范圍擴大到整個網格上的用戶(前提是遺產程序提供者設定的共享策略允許),盡管還是在原來的固有執(zhí)行環(huán)境內運行,但是可以被網格上的用戶使用。
如圖2所示,網格運行支持擴展的設計可分為三個層次:
a)適配層。用于與計算程序的固有計算執(zhí)行環(huán)境交互。針對不同類型的固有計算執(zhí)行環(huán)境,可分為操作系統(tǒng)適配器、并行環(huán)境適配器、本地資源管理批處理適配器等。但是這些適配器向上面的功能層提供了統(tǒng)一的作業(yè)提交管理接口。
b)功能層。它包括多個功能模塊,用于支持網格環(huán)境下用戶的各種需求支持,使得網格上運行的計算作業(yè)盡可能與在本地運行一樣,得到一樣多的支持機制,提高網格服務用戶的體驗質量,包括通用監(jiān)視框架、用戶自定義監(jiān)視插件、運行時操縱、I/O支持、文件傳輸和資源網格化管理等模塊。
c)通信層。它負責與網格環(huán)境的通信,包括接收用戶作業(yè)請求、匯報狀態(tài)和接收命令指示等。
2.2 作業(yè)管理支持工具
按照設計,用戶或者程序通過使用作業(yè)管理支持工具來使用計算作業(yè)網格執(zhí)行環(huán)境。作業(yè)管理支持工具向網格環(huán)境提供的接口包括程序調用API(用于網格開發(fā)者開發(fā)網格服務/應用)、命令行工具(供網格用戶手工操作使用)等形式,用于提交管理計算作業(yè)。作業(yè)管理支持工具提供以下功能:
a)初始化作業(yè)執(zhí)行環(huán)境。向遺產程序所在的超級計算節(jié)點提交作業(yè)初始化請求,創(chuàng)建作業(yè)執(zhí)行環(huán)境。
b)查詢任務的狀態(tài)數(shù)據信息。查詢任務相關的狀態(tài)數(shù)據信息,如階段信息、計算進程狀態(tài)、異常、自定義狀態(tài)信息等。
c)提交計算任務。確認已經成功無誤地初始化作業(yè)執(zhí)行環(huán)境之后,提交計算任務,在計算任務描述中給出此次計算任務所需的參數(shù)、文件移動、環(huán)境等信息。
d)結束任務。作為提供給用戶的運行時干預接口之一,可以把正在運行之中的計算任務強行中止。
e)設置任務的最大運行時間。設置計算任務可以運行的最長忍耐時間。
f)取消任務。在任務已提交但還未運行時,取消任務。
g)清理計算任務現(xiàn)場。
h)獲取運行時輸出/出錯信息。獲取運行著的計算任務進程的標準輸出/出錯信息。
i)加入標準輸入信息。可以向運行著的計算任務進程的標準輸入接口加入控制指導信息。
3 在網格服務中的應用
目前,計算作業(yè)網格執(zhí)行環(huán)境的一個重要應用就是在科學計算遺產程序包裝成網格服務后,用于包裝獲得的網格服務調用過程去執(zhí)行對應的遺產程序。在該應用中,網格服務充當了提交計算作業(yè)的用戶,通過網格作業(yè)執(zhí)行環(huán)境調用遺產程序,如圖3所示。它由以下兩部分構成:a)作業(yè)管理支持。提供多種Web服務語言的API編程接口給網格服務開發(fā)者,用于在服務體內調用,向計算作業(yè)網格執(zhí)行環(huán)境提交計算作業(yè)請求。提交作業(yè)后,同時負責獲取相關的狀態(tài)信息,更新網格服務相應的有狀態(tài)資源。b)網格運行支持擴展。部署運行在計算節(jié)點上,支持各種遺產程序的固有計算執(zhí)行環(huán)境,向上屏蔽了各種計算執(zhí)行環(huán)境的不同,以統(tǒng)一的接口提供服務。應作業(yè)請求,創(chuàng)建相應的固有計算執(zhí)行環(huán)境,啟動科學計算遺產程序,管理監(jiān)視控制著啟動后的計算進程,向作業(yè)管理支持匯報狀態(tài),接收命令指示。
網格運行支持擴展和作業(yè)管理支持兩部分合起來,作為紐帶溝通了網格服務容器和計算執(zhí)行環(huán)境兩個不同的運行環(huán)境,將遺產程序與相應的計算網格服務集成在一起。該方案很好地解決了幾個關鍵需求:作業(yè)管理支持和網格運行支持擴展兩個部分既可以部署在不同的計算機上,也可位于同一節(jié)點;支持在網格服務中調用執(zhí)行任何位置的計算節(jié)點上的遺產程序。具有良好的適用性。作業(yè)管理支持提供了多種平臺語言的使用接口,中立于各種網格服務標準;而網格運行支持擴展通過多種適配器,支持多種類型的遺產程序固有計算執(zhí)行環(huán)境,實現(xiàn)了網格服務容器環(huán)境與計算執(zhí)行環(huán)境的松耦合關系。作業(yè)管理支持不綁定到任何網格服務容器上;網格運行支持擴展也沒有改變固有計算執(zhí)行環(huán)境,因此網格服務容器環(huán)境與計算執(zhí)行環(huán)境實現(xiàn)松耦合。兩者保持各自的獨立性,互不影響網格運行支持擴展和固有計算執(zhí)行環(huán)境的結合,充當了應用級別的執(zhí)行工具,并且克服了GRAM等工具的弊端。
4 結束語
基于對計算作業(yè)網格執(zhí)行環(huán)境的關鍵問題的分析,本文設計了一個計算作業(yè)網格執(zhí)行環(huán)境,很好地滿足了傳統(tǒng)科學計算遺產程序在網格環(huán)境下共享后的運行管理需要,具有廣泛的適用性和參考價值。
參考文獻:
[1]FOSTER I. Globus toolkit version 4:software for service-oriented systems[C]//ProcofNetwork and Parallel Computing.Heidelberg:Springer-Verlag, 2005:2-13.
[2]Condor Team. Condor version 6.7.0 manual[EB/OL].(2004-07-12).http://www.cs.wisc.edu/condor/manual/v6.7.0/.
[3] Legion Group.Legion 1.8 basic user manual[EB/OL]. (2001-06-28).http://legion.virginia.edu/documentation/BasicUser_1.8.pdf.
[4]RIEDEL M. UNICORE tutorial[EB/OL].(2006-08-30).http://summit.unicore.org/2006/presentations/7_Riedel_UNICORE_Tutorial_Summit2006.pdf.
[5]王彬,許卓群.網格環(huán)境下的作業(yè)運行支持系統(tǒng)[J].計算機應用研究, 2007, 24(2):106-109.
[6]王彬,徐國市,羅引,等.網格計算環(huán)境下的I/O支持機制的分析、改進與實現(xiàn)[J].計算機科學, 2004, 31(11):14-18, 58.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文