專利名稱:一種面向集合預報應用的兩層動態調度方法
技術領域:
本發明涉及一種基于網格技術的動態調度方法,特別涉及一種面向集合預報應用領域的動態調度方法。
背景技術:
數值天氣預報是氣象業務運行中必不可少的方法,它是在給定初始條件和邊界條件的情況下,根據大氣運動的物理定律,數值求解大氣運動基本方程組來預測未來時刻的大氣狀態過程。普通的數值天氣預報流程包括觀測資料預處理,氣象資料變分同化,模式預報,后處理,產品可視化等,這些任務特別是模式預報任務需要用到大量的高性能資源進行數值模式計算。集合預報是解決因普通數值天氣預報的初始條件不確定性和模擬過程的近似性問題而提出的新興數值天氣預報技術,與普通數值天氣預報相比,集合預報通過氣象資料變分同化以后,增加初始擾動任務,該任務產生多對初值樣本,并且每對初值樣本都需要進行模式預報,而模式預報是數值天氣預報計算規模最大的任務,每次模式預報都需要大量的CPU計算資源。因此集合預報的計算規模將是普通數值預報的幾十甚至上百倍(相關于初始擾動所產生的初值樣本數目)。集合預報應用具有以下特點1.集合預報應用計算量巨大,集合預報應用的工作流程非常復雜,特別是由初始擾動產生超過50對甚至100對以上的初值樣本,每對初值樣本都需要進行模式預報,而一次模式預報是具有規模很大的并行程序,需要大量的高性能計算資源,且計算時間一般很長。2.集合預報中的模式預報間可以獨立并發執行,即每次模式預報可以獨立在不同的機器上去執行;3.單次集合預報應用的時效性非常重要,否則會失去天氣預報的現實意義;4.處于初始擾動后的模式預報程序的并行度和加速比不是隨CPU資源數目N(N — 般取2的冪次數)的簡單線性增長。模式預報程序并行度一般首先隨N的增大而增加,達到一定數目后(與選擇的預報區域大小和預報時制有關),其并行度又會下降;雖然加速比隨N值擴大而不斷增加,但是其增加的緩和度與并行度存在一種關系的即一開始,并行度隨N值增加時,其加速比增速較大,隨著并行度達到最大值,加速比的增速也最大;當N增加到一定值時,其并行度達到最大,此時N值繼續增加時,并行度開始下降,此時加速比增速將趨于緩和。根據以上集合預報應用的特點,易知集合預報非常適合使用分布式的網格工作流技術來解決,并且當初值樣本數目很大時,單個網格節點很難滿足集合預報的計算需求,如果順序地執行這些模式預報程序,將會極大影響集合預報的時效性。因網格高性能計算節點環境的動態變化和模式預報并行程序本身的并行度與加速比趨勢特征,采用靜態的或者單純的網格節點間的調度手段是無法滿足集合預報應用需求的,需要使用動態的方式來合理安排對這些模式預報任務的并發執行,以提高整個集合預報的時效性;同時需要考慮模式預報并行程序的特征,每次合理地指定合適的CPU資源數目,盡量在不影響集合預報時效性的同時降低計算成本。在網格計算領域,獨立多任務調度方法是指各任務之間不存在數據或者控制相關,每個任務都可以被分配到網格節點中單獨執行,傳統的方法包括Min-Min調度方法, Max-Min調度方法,DupLex調度方法,Sufferage調度方法等。獨立多任務的調度算法中,Min-Min調度方法主要步驟包括步驟1 針對應用中的每個任務,預先估計每個網格節點執行該任務的時間,并選擇執行時間最小的網格節點;步驟2 從每個網格節點中,選擇預期運行時間最小的任務優先執行。Max-Min調度方法與Min-Min調度方法在步驟2剛好相反,在每個網格節點中, 選擇預期完成時間最大的任務優先執行,該調度方法適合于各任務執行時間相差較大的場景,優先將長任務分配到較好的網格節點中優先執行,能夠為應用獲得較好的完成時間。DupLex調度方法則是Min-Min調度方法與Max-Min調度方法的綜合,其首先分別基于Min-Min調度方法和Max-Min調度方法預估應用各自調度方法的可能執行時間,然后選擇執行時間較優的一種調度方法來執行。Sufferage調度方法是優先選擇可能損失較大的任務執行(如果該任務不分配到該計算節點),其主要步驟包括步驟1 對每個任務,預估其被分配到每個網格節點的執行時間;步驟2 計算每個任務相應的Sufferage值,即由步驟1所計算的次小執行時間與最小執行時間的差值;步驟3 對每一網格節點,優先選擇Sufferage值較大的任務執行。傳統的獨立多任務調度方法基本是解決不同種類獨立任務被高效率地分配到各網格計算節點運行問題,且這些任務大多計算量不大,其調度目標是優化整個應用執行時間。另一方面,這些調度方法并沒有考慮并行應用程序本身對CPU資源數目的依賴關系如并行度、加速比等因素,這些方法很難解決具有大規模計算量的集合預報這一特殊應用問題,特別是這類應用問題因計算時間較長而導致計算節點資源的計算能力發生動態變化。因此如何針對以上集合預報應用的特殊情形,提供一種適用于集合預報應用特征的調度方法,是數值氣象領域技術人員極為關注的技術問題。
發明內容
本發明要解決的技術問題是面向集合預報應用下傳統獨立多任務調度方法很難解決的問題,提出一種基于網格節點間動態選擇和節點內部資源數目動態指定的兩層調度方法,提高具有大規模計算特征的集合預報的時效性,有效節省執行一次集合預報的計算成本。本發明包括以下步驟第一步,構建兩層動態調度系統。該系統由服務端和節點端組成,服務端管理初始擾動所產生的初值樣本數據并控制節點端各模式預報服務的執行,其上部署了四個Web服務和兩個數據庫四個Web服務是指樣本數據歸檔服務、樣本數據管理服務、服務質量控制服務即QoS(Quality of Service)控制服務和預估服務。兩個數據庫分別是樣本數據文件元數據庫和模式預報程序執行經驗數據庫,前者存儲初值樣本數據元數據信息,支持樣本數據歸檔服務和樣本數據管理服務,管理每次集合預報所產生的初值樣本數據,后者存儲每次模式預報程序執行的輸入參數(預報區域,預報時制等)、依賴于具體CPU數目O的整數次冪)的歷史執行時間平均值以及所產生的輸出文件大小、并行度、加速比等記錄信息, 以支持預估服務對模式預報程序執行時間的預估;節點端由多個網格節點組成,每個網格節點部署有兩個Web服務,包括模式預報服務(主要包裝了本地集合預報流程的模式預報程序,一次集合預報流程中,模式預報服務可以多次執行模式預報程序,每次模式預報程序以一對初值樣本數據為輸入參數)和節點內部資源數目啟發式指定服務。兩層動態調度系統在集合預報應用流程的初始擾動之后啟動。服務端的樣本數據歸檔服務接收初始擾動所產生的初值樣本數據,對初值樣本數據進行歸檔;樣本數據管理服務通知節點端的各網格節點上的模式預報服務競爭獲取本次集合預報樣本數據;模式預報服務接收到樣本數據管理服務發出的“競爭初值樣本數據”通知以后,向樣本數據管理服務發送“獲取初值樣本數據”請求;樣本數據管理服務通過調用QoS控制服務來驗證所請求的模式預報服務所在網格節點是否滿足最低QoS需求,QoS服務驗證成功后,各模式預報服務以并發控制的方式讀取、鎖定并傳輸初值樣本數據,模式預報服務獲得初值樣本數據后,即完成了兩層動態調度系統對網格節點的選擇,完成第一層調度對網格節點的選擇;模式預報服務啟動本地節點內部資源數目啟發式指定服務,服務端的預估服務動態優化地指定執行本次模式預報服務的資源數目(指定過程以優化整個集合預報的時效性同時降低執行成本作為目標),然后模式預報服務啟動模式預報程序,完成第二層調度指定網格節點內的資源數目。本次集合預報的所有初值樣本數據被調度到各模式預報服務執行完后,由服務端的樣本數據管理服務觸發集合預報應用流程的下一任務——后處理。第二步,兩層調度系統為當前集合預報的調度過程進行初始化,包括以下三個步驟步驟2. 1,集合預報流程完成初始擾動后,以本次集合預報所運行的集合預報流程實例(為集合預報流程的一次具體執行)ID為參數,發送“樣本數據歸檔”請求給樣本數據歸檔服務以啟動兩層調度系統。集合預報流程實例ID是由本次集合預報應用流程實例隨機產生,能夠唯一標識本次集合預報流程實例的標識。步驟2. 2,樣本數據歸檔服務對初值樣本數據進行歸檔。使用文獻(Scott Jensen 等,A Hybrid XML-Relational Grid Metadata Catalog,Workshop on Web Services-based Grid Applications(WGSA ' 06)in association with International Conference on Parallel Processing, 2006)中所提出的元數據方法對每對初值樣本數據采用元數據記錄的方式進行描述并將元數據記錄歸檔到樣本數據文件元數據庫。每對初值樣本數據的元數據記錄包括集合預報流程實例ID,初值樣本數據編號,源網格節點(初值樣本初始存儲的網格節點)存儲URL (Uniform Resource Locator,統一資源定位符),樣本狀態,目標存儲網格節點URL,模式預報程序啟動時間。初值樣本數據編號是由樣本數據歸檔服務隨機產生,用來唯一標識本對初值樣本數據文件的編號。本地存儲URL表示本對初值樣本數據的本地存儲位置,方便后續的文件移動。樣本狀態包括0,1,2,3,狀態O為初值樣本數據初始狀態,表示本對初值樣本數據還沒有被任何模式預報服務占有;狀態1為初值樣本數據鎖定狀態,表示本對初值樣本數據已經被分布在某個網格節點上的模式預報服務占有但未傳輸到網格節點上;狀態2為初值樣本數據已被“消費”狀態,表示本對初值樣本數據已經被某個模式預報服務占有且成功傳輸到網格節點上;狀態3表示該初值樣本數據已經被模式預報服務的模式預報程序成功執行。目標存儲URL表示本對初值樣本數據被傳輸到的網格節點的地址;模式預報程序啟動時間表示模式預報開始以該初值樣本數據作為輸入參數啟動模式預報應用程序的時間,該時間用來控制一次模式預報程序時間在合理的范圍內。步驟2. 3,樣本數據管理服務通知所有已注冊的模式預報服務競爭“消費”初值樣本數據。初值樣本數據被歸檔管理以后,基于Web服務的消息訂閱/發布機制 (參考文獻Humphrey. M 等,State and events for Web services :a comparison of five WS_resource framework and WS-notification implementations,14th IEEE International Symposium on High Performance Distributed Computing,2005)通知所有網格節點的模式預報服務(當模式預報部署啟動后,其自動向樣本歸檔服務發布),告知各模式預報服務現在服務端已經有初值樣本數據,可以競爭獲取以進行模式預報。第三步,各地網格節點的模式預報服務根據自己的實際計算能力向樣本數據管理服務動態競爭還未被消費的初值樣本數據文件,包括以下步驟步驟3. 1,模式預報服務并發地請求初值樣本數據。模式預報服務首先使用網格節點的網格中間件軟件監控服務MDS (Monitoring and Discovery Service)獲得自身空閑資源數目,然后根據自身實際計算能力驗證是否滿足模式預報的最低QoS約束需求。 如果滿足,模式預報服務主動向服務端的樣本數據管理服務發送“申請初值樣本數據”請求消息,該請求消息內容包括本地網格節點URL,模式預報服務URI (Uniform Resource Identifiers,統一資源標識符);如果不滿足,則轉步驟3. 3 ;步驟3. 2,服務端樣本數據管理服務調用QoS控制服務對模式預報服務所在網格節點的QoS約束性條件進行驗證。QoS控制服務調用部署在網格節點上的網格中間件軟件監控服務MDS,判斷申請的模式預報服務所在網格節點是否滿足本次集合預報所要求的 QoS最低約束要求(包括空閑CPU數目,內存大小)。如果發現網格節點不滿足QoS最低約束要求,則發送“拒絕”消息到所請求的模式預報服務,模式預報服務接收到“拒絕”消息后, 暫停對本次集合預報流程實例(所謂集合預報流程實例是指集合預報流程的一次執行)的模式預報服務,轉步驟3. 3 ;;如果服務端QoS控制服務發現該模式預報服務所在網格節點滿足QoS最低約束要求,則進一步為該模式預報服務競爭當前集合預報流程實例ID下的一對初值樣本數據文件,方法是由樣本數據管理服務向樣本數據文件元數據庫搜索元數據記錄項,如果發現沒有狀態為O的元數據記錄,則向請求的模式預報服務發送“無可獲取的初值樣本數據文件”消息。模式預報服務接收到“無可獲取的初值樣本數據文件”消息后,停止申請獲取初值樣本數據,轉步驟4. 6 ;如果有狀態為O的元數據記錄,則進入步驟3. 4 ;步驟3. 3,模式預報服務定時循環地不斷監控本地資源空閑狀況,以驗證本地網格節點是否滿足QoS最低約束要求,如果滿足,轉步驟3. 1,否則繼續循環本步驟;步驟3. 4,請求的模式預報服務對獲取的初值樣本數據加鎖保護,方法是樣本數據管理服務執行一事務訪問操作,為請求的模式預報服務占有該初值樣本數據所對應的元數據記錄,以防止其它的模式預報服務申請該初值樣本數據,然后修改該初值樣本數據所對應狀態為1 ;步驟3. 5,樣本數據管理服務向申請的模式預報服務啟動初值樣本數據的端對端傳輸。方法是樣本數據管理服務調用網格中間件組件-可靠文件傳輸服務(RFT)(參考文獻B. Sotomayor 等,The Globus Toolkit 3Programmer ' s Tutorial, http://www. casa-sotomayor. net/gt3_tutorial/index. html, 2003),由 RFT 啟動初值樣本數據所在的服務節點到模式預報所在網格節點之間的可靠文件傳輸,如果初值樣本數據文件傳輸失敗,則進行有限次地重啟傳輸,如仍然傳輸失敗,則解鎖該初值樣本數據文件訪問權限,樣本數據管理服務修改初值樣本數據狀態為0,允許部署在其他網格節點上的模式預報服務申請該對初值樣本數據;初值樣本數據文件如成功傳輸,模式預報服務向樣本數據管理服務發送初值樣本數據“傳輸完成”消息,樣本數據管理端修改該初值樣本數據所對應狀態為 2。至此,完成了初值樣本數據對網格節點的選擇問題,完成第一層調度。第四步,網格節點優化指定模式預報程序的資源數目并啟動模式預報程序。模式預報服務調用部署在本地的節點內部資源啟發式指定服務來為本次模式預報程序執行指定資源數目(主要是CPU數目),目標是在不影響本次集合預報時效性的情況下兼顧提高并行效率(計算成本),步驟如下步驟4. 1,節點內部資源數目啟發式指定服務啟動預估服務評估,為當前模式預報服務預估其是否還有可能獲得下一對初值樣本數據文件,具體步驟為步驟4. 1. 1,節點內部資源數目啟發式指定服務預估自身模式預報程序完成時間并發送“預估請求”消息到預估服務,步驟如下步驟4. 1. 1. 1,節點內部資源數目啟發式指定服務根據當前獲得的初值樣本數據預報參數信息(預報區域和預報時制)、當前網格節點空閑可用的CPU資源信息和內存信息,基于模式預報程序執行經驗數據庫來預估當前模式預報服務所執行的本次模式預報程序完成時間;步驟4. 1. 1. 2,模式預報服務將預估的當前模式預報服務所執行的本次模式預報程序完成時間發布到服務端的預估服務;步驟4. 1. 1. 3,模式預報服務發送是否可能獲得下一對有效初值樣本數據的“預估請求”消息到預估服務。步驟4. 1. 2,預估服務廣播更新預估信息,獲得其它網格節點的模式預報服務預計完成當前模式預報程序的時間信息。預估服務在收到“預估請求”消息以后,動態地請求其它正在執行模式預報程序的模式預報服務發布“預計完成時間”信息到預估服務。每個模式預報服務收到廣播“預計完成時間”消息后,根據該模式預報所執行的模式程序實時執行情況和自身計算能力進行如步驟4. 1. 1所述的預估,所有模式預報服務預估完后,各自將將預計完成時間的結果發送到預估服務;步驟4. 1. 3,預估服務執行關于請求的模式預報獲得下一對初值樣本數據可能性的預估過程,方法是步驟4. 1. 3. 1,將所有模式預報服務預計完成時間按照由早到晚順序排序,從而得出發送“預估請求”消息的模式預報服務的優先次序k,k為正整數,表示發送“預估請求” 消息的模式預報服務處在所有模式預報服務中關于預計完成各自當前模式預報程序的時間按照由早到晚排列的位置順序;步驟4. 1. 3. 2,預估服務調用樣本數據管理服務獲取有效的初值樣本數據。樣本數據管理服務搜索初值樣本數據的所有元數據項記錄,獲得目前初值樣本數據文件狀態為0的所有元數據記錄數目,記為η,η為正整數;步驟4. 1. 3. 3,如果滿足條件k彡η,則預估結果返回True,否則返回i^alse。隨后將預估結果以消息形式發送到發送“預估請求”消息的模式預報服務,模式預報服務將預估結果轉交給本地節點內部資源數目啟發式指定服務。步驟4. 2,網格節點內部資源數目啟發式指定服務根據預估服務發送的預估結果選擇指定算法指定CPU資源數目,如果返回的預估結果為True,則轉步驟4. 2. 1 ;如果返回的預估結果為i^alse,則轉步驟4. 2. 2 :步驟4. 2. 1,本地網格節點內部資源數目啟發式指定服務執行時間優先的CPU資源數目指定過程指定盡可能大的CPU資源數目,以提高整個集合預報的時效性。假設當前空閑CPU資源數目為M,M為正整數,則按照該指定過程得到的CPU資源數目為cpU_nUm = 2m(其中滿足2m彡M, 2m+1 > M,m為正整數),表示指定的CPU資源數目為小于當前網格節點空閑CPU資源數目的最大2的整數次冪。步驟4. 2. 2,本地節點內部資源數目啟發式指定服務執行時間-效率平衡的CPU資源數目指定過程,在當前模式預報服務現有計算能力的基礎上,在不影響整個集合預報流程實例的時效性前提下,選擇合適的CPU資源數目,使得本次模式預報程序的并行效率盡量最大化,其步驟為步驟4. 2. 2. 1,采用基于歷史的方法預估本次集合預報所有初值樣本數據被執行的最晚完成時間、,步驟如下步驟4. 2. 2. 1. 1,對每一模式預報服務i,根據步驟4. 1. 3. 1中所排的次序,得到模式預報服務所能獲得的執行初值樣本數據份數Mimi ;步驟4. 2. 2. 1. 2,對每一模式預報服務i,根據該模式預報所在網格節點的實際最大計算能力cpu_nUm = 2m(滿足2m彡M,2m+1 > Μ)、預報區域大小、預報時制,基于模式預報程序執行經驗數據庫,查詢出該模式預報服務“消費”每份初值樣本數據的預計時間temp, 從而得到模式預報服務i的最快預計完成時間Ti = tempXnumi ;步驟4. 2. 2.1.3,得到各模式預報服務最快預計完成時間的最大值t1; tI =mJxO唭中s表示所有模式預報服務集合。步驟4. 2. 2. 2,根據當前時間te,采用單個模式預報程序輸出文件到后處理網格節點的文件傳輸時間預估方法得到本次模式預報程序可允許的運行時間tall。w = tfH,其中ttm表示當前模式預報程序輸出文件由當前網格節點傳輸到后處理所在網格節點的預估時間,單個模式預報程序輸出文件到后處理網格節點的文件傳輸時間預估方法步驟是步驟4. 2. 2. 2.1,以初值樣本數據的預報區域和預報時制作為輸入,從模式預報程序執行經驗數據庫中查找到本次模式預報預計輸出文件大小S ;步驟4. 2. 2. 2. 2,調用后處理所在網格節點的監控服務MDS得到實時的由模式預報服務所在網格節點到后處理所在網格節點的網絡實時傳輸速度V ;步驟4. 2. 2. 2. 3,通過計算ttm = S/V來預估模式預報程序本次預計輸出文件到后處理所在網格節點的傳輸時間。步驟4. 2. 2. 3,以當前初值樣本數據的區域大小和預報時制為參數查詢模式預報程序執行經驗數據庫,得到本次模式預報程序隨CPU數目變化的記錄列表pmList,pmList 的每個記錄包含以CPU數目為參數的當前模式預報程序執行的并行度、加速比和預計運行時間;步驟4. 2. 2. 4,以步驟4. 2. 2. 3所獲得的pmList和可允許的時間tall。w 作為參數,求解出成本優化CPU數目cpu_num = 2m,滿足條件Cpu_num彡M, cpu_num = max(pmList[i].pr) , As = {j | pmList [ j]. time 彡 tall。w,j 為 2 的整數次冪}。
pmList [i]. pr為列表pmList中記錄的第i項記錄的并行度字段,表示CPU數目為i時的并行度。步驟4. 3,模式預報服務啟動安裝在本地的模式預報程序,并發送“模式預報程序啟動”消息給樣本數據管理服務,樣本數據管理服務更新該初值樣本數據對應元數據中的啟動時間字段為當前時間。步驟4. 4,服務端QoS控制服務監聽每個模式預報服務執行本次模式預報程序的完成事件并為剛啟動模式預報程序的模式預報服務設置計時器。步驟如下步驟4. 4. 1,模式預報服務啟動模式預報程序時,同時發送“模式預報程序啟動”消息給服務端的QoS控制服務,QoS控制服務為該模式預報服務啟動本次計時器;步驟4. 4. 2,QoS控制服務監控已經啟動模式預報程序的模式預報服務,如果在用戶預先設置的最大容忍時間內沒有接受到某個模式預報服務的模式預報程序執行完成事件,則取消該模式預報服務,并將該模式預報服務所執行的當前初值樣本數據文件所對應的元數據狀態置0,從而對該初值樣本數據文件進行了解鎖,發送廣播消息通知其它有計算能力的模式預報服務;否則QoS控制服務繼續處于監聽狀態;如果在未超時的時間內監聽到某一個模式預報服務的“模式預報程序執行完成”事件,QoS控制服務調用樣本數據管理服務更新發送“模式預報程序執行完成”事件,將該模式預報服務所執行本次模式預報程序的初值樣本數據文件相對應地元數據狀態置為3,同時發送“有初值樣本數據被模式預報服務的模式預報程序成功執行”消息給樣本數據管理服務,服務端樣本數據管理服務以當前集合預報流程實例ID作為參數,查詢樣本數據文件元數據庫,如果所有的樣本數據文件元數據狀態為3,轉第5步,否則轉步驟4. 5。步驟4. 5,模式預報服務在產生“模式預報程序執行完成”事件后,完成對當前初值樣本數據文件為輸入的模式預報程序的執行,至此完成了一對初值樣本數據文件的完整兩層調度過程,轉步驟3. 1。步驟4. 6,停止本模式預報服務,并發送“空閑”消息到樣本數據管理服務,以告知樣本數據管理服務本模式預報服務當前處于停止運行狀態。第5步,服務端的樣本數據管理服務停止本次集合預報調度過程,調用本次集合預報流程的后處理外部調用接口以啟動集合預報流程的后處理。至此完成了本次集合預報的所產生的所有初值樣本數據被調度到有效地模式預報的兩層執行過程。采用本發明可以達到以下技術效果(1)本發明第三步根據各個網格節點的實時計算能力動態競爭初值樣本數據來完成初值樣本對部署在各網格節點的模式預報進行選擇,第四步在對節點內部資源數目的指定過程中,也是實時地根據當前網格節點的空閑狀況來優化指定的,因此本發明具有實時動態特性。(2)本發明第三步動態地進行了網格節點的選擇,第四步中的步驟4.2. 1對網格節點內部資源選擇時盡可能選擇最大的空閑資源,步驟4. 2. 2在不影響整個集合預報時效
13性的同時做成本優化指定,因此可以利用現有的空閑資源,提高單次集合預報的時效性。(3)本發明步驟4. 2. 2采用不影響整個集合預報時效性前提下,每個網格節點的模式預報服務根據本次模式預報程序的并行度和加速比,來盡可能選擇并行度較高的CPU 資源數目,因此提高了集合預報的執行效率,節省了資源成本。(4)本發明使用易于快速集成的Web服務技術來設計實現兩層調度系統,因此方便與各種方式實現的集合預報應用流程集成且Web服務本身具有良好的模塊化設計思想, 因此很容易被一般的軟件開發人員所理解和開發實現。
圖1普通數值天氣預報流程圖;圖2集合預報流程圖;圖3本發明的兩層動態調度系統結構圖;圖4本發明的總體流程圖。流程圖。
具體實施例方式圖1表示普通的數值天氣預報流程圖,其包括觀測資料預處理,氣象資料變分同化,模式預報,后處理,產品可視化等。圖2表示集合預報流程圖,與普通的數值天氣預報流程相比,在氣象資料變分同化后增加了初始擾動的步驟,該步驟將產生50對甚至100對以上的初值樣本數據,每對初值樣本都需要進行模式預報,因此其計算規模是普通數值天氣預報的幾十倍甚至上百倍。圖3是本發明的兩層動態調度系統結構圖,兩層動態調度系統設置在集合預報工作流程的初始擾動和后處理之間,負責對初值樣本數據管理,給部署在各分布異地的網格節點上的模式預報按能力提供動態協同競爭獲取本次集合預報的初值樣本數據的途徑,同時動態指定各節點內部的資源數目。一旦所有初值樣本數據都進行了模式預報,兩層動態調度系統負責啟動對應集合預報流程實例的后處理。兩層動態調度系統基于Web服務技術和網格技術實現,安裝在服務端和各網格節點端,其中服務端部署了四個Web服務和兩個數據庫,這四個Web服務包括樣本數據歸檔服務、樣本數據管理服務、QoS控制服務和預估服務。兩個數據庫分別是樣本數據文件元數據庫和模式預報程序執行經驗數據庫,前者存儲初值樣本數據元數據信息,支持樣本數據歸檔服務和樣本數據管理服務,管理每次集合預報所產生的初值樣本數據,后者存儲每次模式預報程序執行的輸入參數(預報區域, 預報時制等)、依賴于具體CPU數目O的整數次冪)的歷史執行時間平均值以及所產生的輸出文件大小、并行度、加速比等記錄信息,以支持預估服務對模式預報程序執行時間的預估;節點端由多個網格節點組成,每個網格節點部署有兩個Web服務,包括模式預報服務和節點內部資源數目啟發式指定服務。兩層動態調度系統在集合預報應用流程的初始擾動之后啟動。服務端的樣本數據歸檔服務接收初始擾動所產生的初值樣本數據,對初值樣本數據進行歸檔;樣本數據管理服務通知節點端的各網格節點上的模式預報服務競爭獲取本次集合預報樣本數據;模式預報服務接收到樣本數據管理服務發出的“競爭初值樣本數據”通知以后,向樣本數據管理服務發送“獲取初值樣本數據”請求;樣本數據管理服務通過調用QoS控制服務來驗證所請求的集合預報服務所在網格節點是否滿足最低QoS需求,QoS服務驗證成功后,各模式預報服務以并發控制的方式讀取、鎖定并傳輸初值樣本數據,模式預報服務獲得初值樣本數據后,即完成了兩層動態調度系統對網格節點的選擇,完成第一層調度對網格節點的選擇;模式預報服務啟動本地節點內部資源數目啟發式指定服務,服務端的預估服務動態優化地指定執行本次模式預報服務的資源數目,然后模式預報服務啟動模式預報程序,完成本發明的第二層調度指定網格節點內的資源數目。本次集合預報的所有初值樣本數據被調度到各模式預報服務執行完后,由服務端的樣本數據管理服務觸發集合預報應用流程的下一任務——后處理。圖4為本發明的總流程圖,包括五個主要步驟第一步,構建兩層動態調度系統,并將該系統設置在服務端和各網格節點端。第二步,兩層調度系統為當前集合預報的調度過程進行初始化。第三步,各地網格節點的模式預報服務根據自己的實際計算能力向樣本數據管理服務動態競爭還未被消費的初值樣本數據文件。第四步,網格節點優化指定模式預報程序的資源數目并啟動模式預報程序。第五步,服務端的樣本數據管理服務停止本次集合預報調度過程,調用本次集合預報流程的后處理外部調用接口以啟動集合預報流程的后處理。
權利要求
1. 一種面向集合預報應用的兩層動態調度方法,其特征在于包括以下步驟 第一步,構建兩層動態調度系統,該系統由服務端和節點端組成,服務端管理初始擾動所產生的初值樣本數據并控制節點端各模式預報服務的執行,其上部署了四個Web服務和兩個數據庫四個Web服務是指樣本數據歸檔服務、樣本數據管理服務、服務質量控制服務即QoS控制服務和預估服務;兩個數據庫分別是樣本數據文件元數據庫和模式預報程序執行經驗數據庫,樣本數據文件元數據庫存儲初值樣本數據元數據信息,模式預報程序執行經驗數據庫存儲每次模式預報程序執行的輸入參數、歷史執行時間平均值以及輸出文件的大小、并行度、加速比,所述輸入參數指預報區域,預報時制;節點端由多個網格節點組成, 每個網格節點部署有兩個Web服務,包括模式預報服務和節點內部資源數目啟發式指定服務,模式預報服務包裝了本地集合預報流程的模式預報程序;兩層動態調度系統在集合預報應用流程的初始擾動之后啟動;服務端的樣本數據歸檔服務接收初始擾動所產生的初值樣本數據,對初值樣本數據進行歸檔;樣本數據管理服務通知節點端的各網格節點上的模式預報服務競爭獲取本次集合預報樣本數據;模式預報服務接收到樣本數據管理服務發出的“競爭初值樣本數據”通知后,向樣本數據管理服務發送“獲取初值樣本數據”請求;樣本數據管理服務通過調用QoS控制服務來驗證所請求的模式預報服務所在網格節點是否滿足最低QoS需求,QoS服務驗證成功后,各模式預報服務以并發控制的方式讀取、鎖定并傳輸初值樣本數據,模式預報服務獲得初值樣本數據后,即完成了兩層動態調度系統對網格節點的選擇,完成第一層調度對網格節點的選擇;模式預報服務啟動本地節點內部資源數目啟發式指定服務,服務端的預估服務指定執行本次模式預報服務的資源數目,然后模式預報服務啟動模式預報程序,完成第二層調度指定網格節點內的資源數目;本次集合預報的所有初值樣本數據被調度到各模式預報服務執行完后,由服務端的樣本數據管理服務觸發集合預報應用流程的后處理;第二步,兩層調度系統為當前集合預報的調度過程進行初始化,包括以下三個步驟 步驟2. 1,集合預報流程完成初始擾動后,以本次集合預報所運行的集合預報流程實例 ID為參數,發送“樣本數據歸檔”請求給樣本數據歸檔服務以啟動兩層調度系統;集合預報流程實例指集合預報流程的一次具體執行;集合預報流程實例ID是由本次集合預報應用流程實例隨機產生,能夠唯一標識本次集合預報流程實例的標識;步驟2. 2,樣本數據歸檔服務使用元數據方法對每對初值樣本數據采用元數據記錄的方式進行描述并將元數據記錄歸檔到樣本數據文件元數據庫;每對初值樣本數據的元數據記錄包括集合預報流程實例ID,初值樣本數據編號,源網格節點即初值樣本初始存儲的網格節點存儲URL,樣本狀態,目標存儲網格節點URL,模式預報程序啟動時間,其中URL是統一資源定位符的縮寫;初值樣本數據編號是由樣本數據歸檔服務隨機產生,用來唯一標識本對初值樣本數據文件的編號。本地存儲URL表示本對初值樣本數據的本地存儲位置; 樣本狀態包括0,1,2,3,狀態O為初值樣本數據初始狀態,表示本對初值樣本數據還沒有被任何模式預報服務占有;狀態1為初值樣本數據鎖定狀態,表示本對初值樣本數據已經被分布在某個網格節點上的模式預報服務占有但未傳輸到網格節點上;狀態2為初值樣本數據已被“消費”狀態,表示本對初值樣本數據已經被某個模式預報服務占有且成功傳輸到網格節點上;狀態3表示該初值樣本數據已經被模式預報服務的模式預報程序成功執行;目標存儲URL表示本對初值樣本數據被傳輸到的網格節點的地址;模式預報程序啟動時間表示模式預報開始以該初值樣本數據作為輸入參數啟動模式預報應用程序的時間;步驟2. 3,樣本數據管理服務基于Web服務的消息訂閱/發布機制通知所有網格節點的模式預報服務,告知各模式預報服務現在服務端已經有初值樣本數據,可以競爭獲取以進行模式預報;第三步,各地網格節點的模式預報服務根據自己的實際計算能力向樣本數據管理服務動態競爭還未被消費的初值樣本數據文件,包括以下步驟步驟3. 1,模式預報服務并發地請求初值樣本數據模式預報服務首先使用網格節點的網格中間件軟件監控服務MDS獲得自身空閑資源數目,然后根據自身實際計算能力驗證是否滿足模式預報的最低QoS約束需求,如果滿足,模式預報服務主動向服務端的樣本數據管理服務發送“申請初值樣本數據”請求消息,該請求消息內容包括本地網格節點URL, 模式預報服務URI,URI是統一資源標識符的縮寫;如果不滿足,則轉步驟3. 3 ;步驟3. 2,服務端樣本數據管理服務調用QoS控制服務對模式預報服務所在網格節點的QoS約束性條件進行驗證QoS控制服務調用部署在網格節點上的網格中間件軟件監控服務MDS,判斷申請的模式預報服務所在網格節點是否滿足本次集合預報所要求的QoS最低約束要求,如果發現網格節點不滿足QoS最低約束要求,則發送“拒絕”消息到所請求的模式預報服務,模式預報服務接收到“拒絕”消息后,暫停對本次集合預報流程實例的模式預報服務,轉步驟3. 3 ;如果服務端QoS控制服務發現該模式預報服務所在網格節點滿足 QoS最低約束要求,則為該模式預報服務競爭當前集合預報流程實例ID下的一對初值樣本數據文件,方法是由樣本數據管理服務向樣本數據文件元數據庫搜索元數據記錄項,如果發現沒有狀態為O的元數據記錄,則向請求的模式預報服務發送“無可獲取的初值樣本數據文件”消息,模式預報服務接收到“無可獲取的初值樣本數據文件”消息后,停止申請獲取初值樣本數據,轉步驟4. 6 ;如果有狀態為O的元數據記錄,則進入步驟3. 4 ;步驟3. 3,模式預報服務定時循環地不斷監控本地資源空閑狀況,以驗證本地網格節點是否滿足QoS最低約束要求,如果滿足,轉步驟3. 1,否則繼續循環步驟3.3 ;步驟3. 4,請求的模式預報服務對獲取的初值樣本數據加鎖保護,方法是樣本數據管理服務執行一事務訪問操作,為請求的模式預報服務占有該初值樣本數據所對應的元數據記錄,以防止其它的模式預報服務申請該初值樣本數據,然后修改該初值樣本數據所對應狀態為1 ;步驟3. 5,樣本數據管理服務向申請的模式預報服務啟動初值樣本數據的端對端傳輸, 方法是樣本數據管理服務調用網格中間件組件可靠文件傳輸服務RFT,由RFT啟動初值樣本數據所在的服務節點到模式預報所在網格節點之間的可靠文件傳輸,如果初值樣本數據文件傳輸失敗,則進行有限次地重啟傳輸,如仍然傳輸失敗,則解鎖該初值樣本數據文件訪問權限,樣本數據管理服務修改初值樣本數據狀態為0,允許部署在其他網格節點上的模式預報服務申請該對初值樣本數據;初值樣本數據文件如成功傳輸,模式預報服務向樣本數據管理服務發送初值樣本數據“傳輸完成”消息,樣本數據管理端修改該初值樣本數據所對應狀態為2 ;至此,完成了初值樣本數據對網格節點的選擇問題,完成第一層調度;第四步,網格節點優化指定模式預報程序的資源數目并啟動模式預報程序,步驟如下步驟4. 1,節點內部資源數目啟發式指定服務啟動預估服務評估,為當前模式預報服務預估其是否還有可能獲得下一對初值樣本數據文件,具體步驟為步驟4. 1. 1,節點內部資源數目啟發式指定服務預估自身模式預報程序完成時間并發送“預估請求”消息到預估服務,步驟如下步驟4. 1. 1. 1,節點內部資源數目啟發式指定服務根據當前獲得的初值樣本數據預報參數信息一一預報區域和預報時制、當前網格節點空閑可用的CPU資源信息和內存信息, 基于模式預報程序執行經驗數據庫來預估當前模式預報服務所執行的本次模式預報程序完成時間;步驟4. 1. 1. 2,模式預報服務將預估的當前模式預報服務所執行的本次模式預報程序完成時間發布到服務端的預估服務;步驟4. 1. 1. 3,模式預報服務發送是否可能獲得下一對有效初值樣本數據的“預估請求”消息到預估服務;步驟4. 1. 2,預估服務廣播更新預估信息,獲得其它網格節點的模式預報服務預計完成當前模式預報程序的時間信息;預估服務在收到“預估請求”消息以后,動態地請求其它正在執行模式預報程序的模式預報服務發布“預計完成時間”信息到預估服務;每個模式預報服務收到廣播“預計完成時間”消息后,根據該模式預報所執行的模式程序實時執行情況和自身計算能力進行如步驟4. 1. 1所述的預估,所有模式預報服務預估完后,各自將預估后將預計完成時間的結果發送到預估服務,;步驟4. 1. 3,預估服務執行關于請求的模式預報獲得下一對初值樣本數據可能性的預估過程,方法是步驟4. 1. 3. 1,將所有模式預報服務預計完成時間按照由早到晚順序排序,從而得出發送“預估請求”消息的模式預報服務的優先次序k,k為正整數,表示發送“預估請求”消息的模式預報服務處在所有模式預報服務中關于預計完成各自當前模式預報程序的時間按照由早到晚排列的位置順序;步驟4. 1. 3. 2,預估服務調用樣本數據管理服務獲取有效的初值樣本數據,樣本數據管理服務搜索初值樣本數據的所有元數據項記錄,獲得目前初值樣本數據文件狀態為0的所有元數據記錄數目,記為η,η為正整數;步驟4. 1. 3. 3,如果滿足條件k < n,則預估結果返回True,否則返回False ;隨后將預估結果以消息形式發送到發送“預估請求”消息的模式預報服務,模式預報服務將預估結果轉交給本地節點內部資源數目啟發式指定服務。步驟4. 2,網格節點內部資源數目啟發式指定服務根據預估服務發送的預估結果選擇指定算法指定CPU資源數目,如果返回的預估結果為True,則轉步驟4. 2. 1 ;如果返回的預估結果為i^alse,則轉步驟4. 2. 2 步驟4. 2. 1,本地網格節點內部資源數目啟發式指定服務執行時間優先的CPU資源數目指定過程指定盡可能大的CPU資源數目,假設當前空閑CPU資源數目為M,M為正整數, 則按照該指定過程得到的CPU資源數目為cpU_nUm = 2m,其中2m彡Μ, 2m+1 > M,m為正整數; 步驟4. 2. 2,本地節點內部資源數目啟發式指定服務執行時間-效率平衡的CPU資源數目指定過程,其步驟為步驟4. 2. 2. 1,采用基于歷史的方法預估本次集合預報所有初值樣本數據被執行的最晚完成時間、,步驟如下步驟4. 2. 2. 1. 1,對每一模式預報服務i,根據步驟4. 1. 3. 1中所排的次序,得到模式預報服務所能獲得的執行初值樣本數據份數Mimi ;步驟4. 2. 2. 1. 2,對每一模式預報服務i,根據該模式預報所在網格節點的實際最大計算能力cpU_nUm = 2m、預報區域大小、預報時制,基于模式預報程序執行經驗數據庫,查詢出該模式預報服務“消費”每份初值樣本數據的預計時間temp,從而得到模式預報服務i的最快預計完成時間Ti = tempXHUiiii ;步驟4. 2. 2. 1. 3,得到各模式預報服務最快預計完成時間的最大值、,(=AfJx^),其中S表示所有模式預報服務集合。步驟4. 2. 2. 2,根據當前時間、,采用單個模式預報程序輸出文件到后處理網格節點的文件傳輸時間預估方法得到本次模式預報程序可允許的運行時間tall。w =,其中ttm 表示當前模式預報程序輸出文件由當前網格節點傳輸到后處理所在網格節點的預估時間, 單個模式預報程序輸出文件到后處理網格節點的文件傳輸時間預估方法步驟是步驟4. 2. 2. 2. 1,以初值樣本數據的預報區域和預報時制作為輸入,從模式預報程序執行經驗數據庫中查找到本次模式預報預計輸出文件大小S ;步驟4. 2. 2. 2. 2,調用后處理所在網格節點的監控服務MDS得到實時的由模式預報服務所在網格節點到后處理所在網格節點的網絡實時傳輸速度V ;步驟4. 2. 2. 2. 3,通過計算ttm = S/V來預估模式預報程序本次預計輸出文件到后處理所在網格節點的傳輸時間;步驟4. 2. 2. 3,以當前初值樣本數據的區域大小和預報時制為參數查詢模式預報程序執行經驗數據庫,得到本次模式預報程序隨CPU數目變化的記錄列表pmList,pmList的每個記錄包含以CPU數目為參數的當前模式預報程序執行的并行度、加速比和預計運行時間;步驟4. 2. 2. 4,以pmList和可允許的時間tall。w作為參數,求解出成本優化CPU 數目 cpu_num = 2m,滿足條件cpu_num ≤ M,cpu_num = m^(pmList\ilpr) , As ={· j I pmList [j] · time ≤ tallow,j 為 2 的整數次冪},pmList [i] · pr 為列表 pmList 中記錄的第i項記錄的并行度字段,表示CPU數目為i時的并行度;步驟4. 3,模式預報服務啟動安裝在本地的模式預報程序,并發送“模式預報程序啟動” 消息給樣本數據管理服務,樣本數據管理服務更新該初值樣本數據對應元數據中的啟動時間字段為當前時間;步驟4. 4,服務端QoS控制服務監聽每個模式預報服務執行本次模式預報程序的完成事件并為剛啟動模式預報程序的模式預報服務設置計時器,步驟如下步驟4. 4. 1,模式預報服務啟動模式預報程序時,同時發送“模式預報程序啟動”消息給服務端的QoS控制服務,QoS控制服務為該模式預報服務啟動本次計時器;步驟4. 4. 2,QoS控制服務監控已經啟動模式預報程序的模式預報服務,如果在用戶預先設置的最大容忍時間內沒有接受到某個模式預報服務的模式預報程序執行完成事件,則取消該模式預報服務,并將該模式預報服務所執行的當前初值樣本數據文件所對應的元數據狀態置0,從而對該初值樣本數據文件進行了解鎖,發送廣播消息通知其它有計算能力的模式預報服務;否則QoS控制服務繼續處于監聽狀態;如果在未超時的時間內監聽到某一個模式預報服務的“模式預報程序執行完成”事件,QoS控制服務調用樣本數據管理服務更新發送“模式預報程序執行完成”事件,將該模式預報服務所執行本次模式預報程序的初值樣本數據文件相對應地元數據狀態置為3,同時發送“有初值樣本數據被模式預報服務的模式預報程序成功執行”消息給樣本數據管理服務,服務端樣本數據管理服務以當前集合預報流程實例ID作為參數,查詢樣本數據文件元數據庫,如果所有的樣本數據文件元數據狀態為3,轉第5步,否則轉步驟4. 5。步驟4. 5,模式預報服務在產生“模式預報程序執行完成”事件后,完成對當前初值樣本數據文件為輸入的模式預報程序的執行,至此完成了一對初值樣本數據文件的完整兩層調度過程,轉步驟3. 1 ;步驟4. 6,停止本模式預報服務,并發送“空閑”消息到樣本數據管理服務; 第5步,服務端的樣本數據管理服務停止本次集合預報調度過程,調用本次集合預報流程的后處理外部調用接口以啟動集合預報流程的后處理。
2.如權利要求1所述的一種面向集合預報應用的兩層動態調度方法,其特征在于所述 QoS最低約束要求包括空閑CPU數目,內存大小。
全文摘要
本發明公開了一種面向集合預報應用的兩層動態調度方法,目的是提出一種基于網格節點間動態選擇和節點內部資源數目動態指定的兩層調度方法。技術方案是先構建兩層動態調度系統,并將該系統設置在服務端和各網格節點端;兩層調度系統為當前集合預報的調度過程進行初始化;各地網格節點的模式預報服務向樣本數據管理服務動態競爭還未被消費的初值樣本數據文件;網格節點優化指定模式預報程序的資源數目及啟動模式預報程序;服務端的樣本數據管理服務停止本次集合預報調度過程,啟動集合預報流程的后處理。本發明具有實時動態特性,采用本發明能提高具有大規模計算特征的集合預報的時效性,有效節省執行一次集合預報的計算成本。
文檔編號H04L12/56GK102185761SQ20111009277
公開日2011年9月14日 申請日期2011年4月13日 優先權日2011年4月13日
發明者劉海, 劉燦燦, 張衛民, 賈雄 申請人:中國人民解放軍國防科學技術大學