協同設計(Collaborative Design)是指在計算機的支持下,各成員圍繞一個設計對象,各自承擔相應部分的設計任務,并行交互地進行設計工作,最終得到符合要求的設計結果的設計。網格的出現為協同設計帶來了嶄新的解決思路。借助于網格研究的基礎設施以及Globus聯盟推出的網格既定標準GT3(Globus Toolkit 3),可以為制造業網絡設計提供極為方便的底層支撐,為快速建立一個健壯的設計平臺提供保證,GMCD就是這樣一個設計平臺。本文將首先分析網格環境中任務調度的模型,然后基于協同設計環境的特殊性,以GMCD為框架,建立一種實用的任務調度模型。 1 網格任務調度模型 網格環境中資源管理結構模型有分層模型、抽象所有者模型、計算市場(經濟)模型和混合模型。GMCD框架是以Globus為基礎的,而Globus的資源管理結構模型則是層次的。因此,本節著重討論分層模型中的網格調度。 1.1 網格任務調度的相關組件及功能 在分層的資源管理結構模型中,資源管理與調度是多級的,每個資源有自己的調度子系統,用戶只需把作業提交給資源請求代理,而代理后有多少資源提供者,以及該作業分配哪個資源,對于用戶來說都是透明的。資源提供者可以是單個PC機,可以是單個集群或多個集群,也可以是某個組織的一個中小型局域網。它們都有一個共同點,即都有一個管理者——局部資源管理器。單個PC機本身就是一個管理者;而集群和局域網,一般都有一臺服務器專職管理集群/局域網中的各結點。用戶作業在資源請求代理上進行一級調度,在局部資源管理器上進行二級調度,如果下面存在更多的集群或局域網,則存在三級、四級等多級調度。 在網格任務調度中有兩個非常重要的組件,分別是資源請求代理和資源管理器,它們在任務調度過程中分別進行一級和二級(多級)調度。其他與任務調度有關的組件還有網格工作站點以及負責聯系的組件: (1)資源請求代理 它是整個網格的資源管理者,負責接收用戶任務,根據其特點發送給域資源管理器,動態監視任務的運行情況,根據需要將結果提交給用戶或進行再調度。主要功能有: ①對服務提供方提供注冊功能,并對其加入和退出等動作進行控制。 ②建立網格資源信息庫并周期性地刷新,對全局資源進行統一管理和分配。 ③接收用戶提交的作業,并根據作業類型和要求(如資源的類型和數量等)形成作業調度參數。 ④根據作業調度參數調度作業,分派資源,并隨時監視作業的執行情況。 ⑤若作業執行有誤,則對其進行再調度,保證用戶作業的安全運行。 (2)域資源管理器 它是域內資源管理和動態調度的中心,負責本域工作的創建、屬性的收集、接收從資源請求代理提交的任務并根據其特點進行處理機的分配。主要功能有: ①監聽從本域結點發送來的信息,建立域成員信息資料庫并周期性刷新。 ②周期性地接收由資源請求代理提交的作業,并判斷其可行性,建立本域的任務隊列。 ③從任務隊列中選取作業,根據提交的參數和資源情況合理地分配作業。 ④將作業執行情況定時返回給資源請求代理,維持與上級數據庫的一致性。 ⑤監視各組員執行狀況,根據情況進行作業調整(域內調整或再調度)。 ⑥確保用戶作業的安全運行,將結果通知資源請求代理并直接返還給用戶。 (3)網格工作結點 它是任務執行的基本單位,一旦申請加入資源提供方,便由域資源管理器直接調度和由資源請求代理間接調度。主要功能有: ①向上級管理器提出申請,請求加入資源提供方。 ②收集本結點的狀態和負載信息,并周期性地提交給域資源管理器。 ③產生服務進程,隨時接收上級管理器提交的任務并執行。 (4)負責聯系的組件 鑒于各實體間的聯系比較多,可將其分為作業提交和資源匯報兩部分。 ①作業提交部分 用戶向資源請求代理提交作業任務;資源請求代理根據用戶參數將作業轉交給域資源管理器;域資源管理器根據各結點負載情況分派作業給合適的資源工作結點,任務執行完畢后保存作業結果;域資源管理器直接將結果返回給用戶。 ②資源匯報部分 它完成如下任務:網格工作結點向域資源管理器提供各結點的狀態和負載情況;域資源管理器將該域的負載信息匯總并送給資源請求代理供查詢和管理結點;域資源管理器周期性地刷新資源請求代理中的作業狀態;工作結點執行完畢。 1.2 網格任務調度的過程 用戶利用提交程序將作業任務和要求的環境屬性(如資源類型和數量等)提交給資源請求代理,資源請求代理分析環境屬性形成參數文件,根據任務性質、通信狀況和各資源負載情況進行粗粒度調度,尋求最佳分配方案將作業及參數文件提交給選中的域資源管理器。當域資源管理器接收到新任務或調度周期到來時,新任務被賦予任務優先級插入作業隊列。守護進程從結點機列表中獲取該域內所有資源負載情況,同時更新資源請求代理上全局數據庫中相關的信息表。確定已經到達該域的任務的優先級,每次選取一個任務分配合適的資源。相應地,守護進程派生出相應的作業線程,周期性地監視該作業的執行狀態,并向上一級(資源請求代理)匯報,以便進行全局管理與調度(或用戶查詢)。當任務途中異常中斷或執行性能比預期要差時,資源請求代理可進行再次調度,重新安排其他資源;而當任務完成時,資源請求代理會要求域資源管理器直接將作業結果返還給用戶。 2 GMCD中的任務調度機制 由于網格協同設計環境的特殊性,網格協同設計環境中的任務調度模型和通用的網格調度模型相比也具有特殊性。現以GMCD構架為例,討論網格協同設計中的任務調度機制。 GMCD系統體系結構由底而上可分為四層,即設計知識單元DKU(Design Knowledge Units)、網格中間件、設計中間件和應用層,如圖1所示。 DKU及互聯網絡組成了GMCD的底層支持結構。DKU是Internet上的具有設計能力的組織或機構,它們在某一類產品或零部件研發上具有先進的設計技術和生產能力。在DKU內部存在設計知識數據庫、局域網和設計工具(集)。它們之間通過Internet或專用高速網連通。在設計過程中,各個DKU之間具有平等關系,各自負責所獲得任務的運行,相對來說是獨立的。 用戶在應用層通過Portal將任務提交給設計中間件。設計中間件將由Portal提交的設計任務分解為可以被DKU執行的子任務。分解過程如下。 GMCD任務分解分為兩層。任務以XML(eXtensible Markup Language)文件形式被提交后,首先會由資源請求代理轉交給自稱能完成該任務的域,然后在域控制管理器內被首次分解,分解的原則是可執行原則。對于已經進入域控制管理器的任務,應用分解智能體根據知識庫內的知識,將其分解為可以被DKU執行的任務。知識庫內保留了該域內所有DKU的功能申明。域內任務分解(高層分解)的目標是把任務分解為可以被DKU執行的子任務,低層任務分解在DKU內進行,其目標是把子任務分解為可以被DKU中服務器執行的底層操作。由于設計工作的特殊性,DKU分布通常不均勻,能完成有關聯或相似性設計任務的DKU通常在一個或幾個域內。如果被提交的設計任務沒有合適的域可以執行,則還要在高層分解之前加入一層手工分解或由資源請求代理分解。也就是說,可以把任務返還給用戶,由用戶根據一定的設計知識對設計任務實行手工分解,也可以由資源請求代理根據域的功能自述分解為可以被域執行的子任務。域資源管理器和DKU的關系如圖2所示。 子任務在DKU內被重新解析為可以被服務器執行的底層任務,然后由DKU調度到各個服務器上去執行。 高層分解和低層分解在失敗時都回溯。 分解后的任務由域調度器調度到合適的DKU上去執行。GMCD的任務映射分為三個層次。資源請求代理保留了每個域的功能自述副本。任務通過Portal提交后,根據域的功能自述,被轉交給能完成該任務的域;然后在域內分解再由域調度器進行二次映射,二次調度的目的是把分解后的子任務映射到合適的DKU上去;在DKU內的調度是第三次映射,這次調度的目的是把解析子任務后得到的底層任務映射到合適的服務器上去。本文所關注的是第二次調度,也就是分解以后的任務如何由域調度器調度到DKU上。在第二次調度中,由于設計任務的特殊性,一組相似或相關任務通常會在一個時間段內陸續到達。 3 資源預留的引入 資源預留是網格系統中一個十分必要的機制,因為資源預留可以保證任務在開始執行時獲得必要的資源,從而提高網格系統的QoS。因此,資源預留的提出,從一開始就得到了廣泛的認可,在目前網格系統的調度模塊中已經被廣泛采用。在協同設計過程中,每個設計任務,特別是其中某些大任務的執行直接影響設計任務完成的時間,在本文中引入了資源預留機制,以便為其中的大任務提供動態預留資源,進而提高協同設計的效率。 下面討論引入資源預留的網格協同設計任務調度模型。 網格協同設計任務執行的框架分為三個層次:由底而上依次為資源層、資源管理控制層和應用(用戶)層。資源層是可以進行設計的實體DKU或者其他必要的資源,接受資源管理控制層的管理。應用層負責用戶任務的提交和結果的反饋。資源管理控制層可以抽象為一個資源管理器,在控制管理器內設置了負責任務映射和資源預留請求的模塊。 網格協同設計任務調度系統模型示意圖如圖3所示。 在圖3中,在設計應用層和資源管理器之間省略了一個資源請求代理層。這是因為假定任務已經由資源請求代理指定為由該域完成。在這個域中,有多種系統資源,主要考慮計算資源和存儲資源,在預留資源時既可能要預留計算資源也可能要預留存儲資源及其他資源。當調度系統有預留的需求時,就通過創建預留操作向資源預留請求處理模塊提出預留請求。資源信息由資源發現和資源監控提供。 在該任務調度系統模型中,任務執行的大致流程如下:用戶通過網格門戶Portal將任務提交給資源請求代理;資源請求代理將任務分配給可以執行該任務的域,必要時可以先對任務進行分解;在域內任務被分解并被調度到具體的資源上去執行。任務執行的結果由資源逐層向上返回給用戶,任務執行的狀態監控由資源監控模塊負責。 在本文中,首先分析了網格任務調度模型,然后基于網格協同設計環境的特殊性,以GMCD為構架,分析了網格協同設計中任務分解和任務執行的過程,引入了資源預留機制,建立了網格協同設計環境中的任務調度模型。 |