摘要:對網(wǎng)格資源的含義及目的作了介紹,給出了資源管理的實現(xiàn)過程。在計算網(wǎng)格資源管理模型Globus的基礎(chǔ)上。提出了網(wǎng)格資源管理中作業(yè)管理的并行化,對各個管理部分做了具體的描述。提出了作業(yè)并行分析器,實現(xiàn)作業(yè)管理的并行化,在一定程度上縮短了作業(yè)管理的時間,提高了作業(yè)管理的效率。其中對作業(yè)并行分析器進行了詳盡的描述,使其根據(jù)各任務(wù)的依賴關(guān)系將作業(yè)中的任務(wù)劃分為不同的任務(wù)組,并對每個任務(wù)組進行適當描述后提交給資源分配器。
關(guān)鍵詞:計算網(wǎng)格;資源管理;Globus;DUROC:GRAM
0 引言
網(wǎng)格資源指所有能夠通過網(wǎng)格遠程使用的實體,包括計算機軟件、計算機硬件、設(shè)備和儀器等。網(wǎng)格的核心優(yōu)勢在于它能發(fā)現(xiàn)、分配并協(xié)調(diào)使用網(wǎng)絡(luò)可以達到的范圍內(nèi)的各種能力——它們可以是計算機提供的計算服務(wù)、軟件提供的應(yīng)用服務(wù)、網(wǎng)絡(luò)提供的帶寬或者是存儲系統(tǒng)提供的存儲空間。
資源管理的核心目的就是要在資源提供者和資源消費者之間建立一種共同協(xié)議,通過該協(xié)議資源提供者同意提供用于代表資源消費者執(zhí)行某項任務(wù)的能力。資源管理的目的總結(jié)起來有以下三點:
(1)為用戶提供訪問資源的簡單接口,將實際使用資源的具體細節(jié)隱藏起來,用戶看到的是一個經(jīng)過抽象的資源。
(2)協(xié)調(diào)資源的共享使用,既要支持多個請求者請求使用同一個資源的需要,也要支持請求者使用多個資源的需要。
(3)資源管理者還要代替請求者去使用資源,并建立安全的網(wǎng)格資源使用機制。
1 資源管理的實現(xiàn)過程
資源管理的整個過程如圖1所示。下面介紹每一步的過程,標號對應(yīng)圖中的數(shù)字。
(1)網(wǎng)格資源開始其生命周期的第—步是向資源管理器注冊。
(2)資源管理器把資源的注冊信息寫到資源信息數(shù)據(jù)庫中。注冊之后的資源就成了網(wǎng)格資源。
(3)用戶需要資源時,向資源管理器提出請求。
(4)資源管理器從資源信息數(shù)據(jù)庫中獲得匹配資源的信息,并返回給用戶。
(5)有了資源信息,用戶就可以同資源之間進行各種交互。
如果資源不想繼續(xù)在網(wǎng)格上存在,可向資源管理器請求注銷,資源信息數(shù)據(jù)庫中該資源的信息將被相應(yīng)清除,該資源作為網(wǎng)格資源的生命周期就結(jié)束了。
2 資源管理結(jié)構(gòu)
Globus項目組在網(wǎng)格協(xié)議制定上有重要發(fā)言權(quán),包括IBM、Microsoft、Sun、Compaq、SGI、NEC在內(nèi)的眾多重要公司都宣布支持Globus Toolkit。因此Globus所采用的分層模型代表了網(wǎng)格資源管理的發(fā)展趨勢。本文主要采用Globus資源管理結(jié)構(gòu),并在其基礎(chǔ)上加以優(yōu)化實現(xiàn)。
2.1 作業(yè)并行分析器
GRAM和本地資源管理器打交道,負責處理來自遠程應(yīng)用的資源請求,為請求資源的應(yīng)用分配資源,并管理作業(yè)的執(zhí)行過程。它主要由門衛(wèi)和作業(yè)管理器兩部分組成。GRAM API可以實現(xiàn)作業(yè)的提交、作業(yè)的取消及查詢已經(jīng)提交了的作業(yè)狀態(tài);然后將請求提交給作業(yè)管理器。這個請求包括該作業(yè)中所含的多個任務(wù)的相關(guān)信息、任務(wù)間的依賴關(guān)系及每個任務(wù)的計算資源需求。作業(yè)并行分析器分析該作業(yè)中的任務(wù)及相互關(guān)系,根據(jù)各任務(wù)的依賴關(guān)系將作業(yè)中的任務(wù)劃分為不同的任務(wù)組,并對每個任務(wù)組進行適當描述后提交給資源分配器。
每一個作業(yè)又由若干個任務(wù)組成,為了考慮任務(wù)的執(zhí)行時間以及通信時間,可以將任務(wù)分成若干個并行段即任務(wù)組,然后實現(xiàn)并行分析及運行。
并行段是一個可并行執(zhí)行的任務(wù)序列,這個序列中的任務(wù)之間沒有優(yōu)先約束關(guān)系。實現(xiàn)的算法為:
(1)將開始節(jié)點作為第一個并行段中的一個節(jié)點。
(2)考查主序列的下一個節(jié)點,如果該節(jié)點與當前并行段的任何節(jié)點都無優(yōu)先約束關(guān)系,則將這個節(jié)點加入當前并行段;否則生成一個新的并行段作為當前并行段,該節(jié)點作為當前并行段的第一個節(jié)點。
(3)繼續(xù)第二步,直到遇到第一個出分支節(jié)點為止。
(4)將主序列中所有出分支節(jié)點按其優(yōu)先約束關(guān)系插入到各并行段中。
形成并行段之后,再按照短作業(yè)優(yōu)先的調(diào)度規(guī)則將各個并行段即任務(wù)組分配到本地資源管理器。這種按照短作業(yè)優(yōu)先的調(diào)度規(guī)則增強了單位時間內(nèi)作業(yè)完成的吞吐量,提高了系統(tǒng)的周轉(zhuǎn)效率。
并行段調(diào)度:
當將任務(wù)分成若干并行段之后,按照短作業(yè)優(yōu)先的原則,采用經(jīng)理/雇員模式進行調(diào)度。經(jīng)理負責任務(wù)分配,每個雇員(并行段)重復從經(jīng)理那里請求并執(zhí)行具體任務(wù)。
2.2 DUROC
DUROC即協(xié)同分配器,執(zhí)行由底層資源規(guī)范描述的資源分配。它可以直接為用戶獲得資源。DUROC的請求分配語法是,一個高層請求。包含多個組成部分,每個部分代表一個本地資源管理器請求,該請求被DUROC作為其分配的分布式作業(yè)的一部分。DUROC將抽取底層多重請求的每個組成部分,去掉面向DUROC的部分,然后把請求提交給指定的本地資源管理器。
DUROC可以實現(xiàn)協(xié)同分配,通過本地資源管理器API和協(xié)同分配器實現(xiàn)作業(yè)開始的原子操作和協(xié)同分布式處理,獲得DUROC的布局,發(fā)送一個字節(jié)向量到DUROC作業(yè)中的其他子作業(yè),接收DUROC作業(yè)中的其他子作業(yè)發(fā)送的一個字節(jié)向量,獲得本地子作業(yè)進程的級別和大小,發(fā)送一個字節(jié)向量到DUROC子作業(yè)的其他進程,接收DUROC子作業(yè)中的其他進程發(fā)送的一個字節(jié)向量。
2.3 Condor
Condor是高吞吐率的調(diào)度器。采用樂觀的調(diào)度方法。它管理客戶和管理系統(tǒng)之間的任務(wù)服務(wù)等級協(xié)議。通過提交服務(wù)和單個資源之間建立更為具體的資源服務(wù)等級協(xié)議和任務(wù)服務(wù)等級協(xié)議,Condor實現(xiàn)了客戶端任務(wù)服務(wù)等級協(xié)議。這些低級別的作業(yè)執(zhí)行用戶任務(wù)并且保存進出資源的檢查點數(shù)據(jù)。
3 結(jié)束語
本文首先對資源管理的概念及目的進行了簡述,然后在網(wǎng)格資源管理基礎(chǔ)上,對作業(yè)管理實行并行化,以提高作業(yè)處理的速度,縮短處理時間;對網(wǎng)格資源的管理在一定程度上進行了優(yōu)化;最后對計算網(wǎng)格資源管理的各個部分進行了詳細的描述。