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