專利名稱:基于逐步提升下界的分布式任務(wù)分配與計(jì)算方法
技術(shù)領(lǐng)域:
基于逐步提升下界的分布式任務(wù)分配與計(jì)算方法屬于互聯(lián)網(wǎng)IP路由器數(shù)據(jù)以及任務(wù)調(diào)度算法研究領(lǐng)域。
背景技術(shù):
在現(xiàn)代的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,路由器是最核心的連接設(shè)備。互聯(lián)網(wǎng)的飛速發(fā)展帶來(lái)了路由器體系結(jié)構(gòu)的革新。下一代互聯(lián)網(wǎng)對(duì)下一代IP路由器體系結(jié)構(gòu)提出了新的需求。對(duì)單節(jié)點(diǎn)進(jìn)行優(yōu)化,提高其處理能力已經(jīng)不再是系統(tǒng)改進(jìn)的最根本方式,因?yàn)檫@種方式受限于物理器件的發(fā)展速度影響?;趩喂?jié)點(diǎn)的傳統(tǒng)IP路由器體系結(jié)構(gòu)已經(jīng)無(wú)法適應(yīng)網(wǎng)絡(luò)的飛速發(fā)展??蓴U(kuò)展的體系結(jié)構(gòu)是下一代IP路由器的主要發(fā)展方向。
在可擴(kuò)展路由器軟件體系結(jié)構(gòu)中,如何通過(guò)對(duì)任務(wù)的合理調(diào)度來(lái)提高不同的處理單元的處理效率一直是研究的熱點(diǎn)問(wèn)題。雖然分布式計(jì)算理論為可擴(kuò)展路由器軟件體系結(jié)構(gòu)提供了很有價(jià)值的參考,但是由于分布式計(jì)算系統(tǒng)的主要目標(biāo)是為一類問(wèn)題提供通用的處理平臺(tái),它所側(cè)重的是系統(tǒng)作為一個(gè)計(jì)算機(jī)器所能提供的服務(wù)能力。需要在處理很大的負(fù)載的同時(shí),保證很高的實(shí)時(shí)性。一個(gè)完整路由器軟件體系結(jié)構(gòu)包含若干模式完全不同的計(jì)算任務(wù),例如網(wǎng)絡(luò)管理、路由計(jì)算等,不同的路由協(xié)議其計(jì)算模式也有很大差別,即使在一個(gè)路由協(xié)議內(nèi)部,通常也包含了路由交互、路由計(jì)算、路由表維護(hù)等多個(gè)功能不同的子任務(wù)??傊酚善鬈浖w系結(jié)構(gòu)是一個(gè)很復(fù)雜的多任務(wù)系統(tǒng),現(xiàn)有的分布式計(jì)算系統(tǒng)幾乎無(wú)法在一個(gè)結(jié)構(gòu)下同時(shí)滿足可擴(kuò)展路由器的所有性能需求。并且在實(shí)際的路由器應(yīng)用場(chǎng)景中,存在多個(gè)相對(duì)獨(dú)立的任務(wù),各個(gè)任務(wù)資源占用模式也非常不同,使用全局的方式尋找一個(gè)在所有任務(wù)間的最優(yōu)分配模式?jīng)]有意義也無(wú)法達(dá)到。并且任務(wù)在節(jié)點(diǎn)上的分配模式需要滿足兩個(gè)條件每個(gè)節(jié)點(diǎn)上的負(fù)載不能過(guò)載;節(jié)點(diǎn)間通信不能過(guò)載。所以如何避免過(guò)載,如何針對(duì)每一項(xiàng)可能造成瓶頸的單一或者若干有一定關(guān)聯(lián)的負(fù)載進(jìn)行評(píng)價(jià)并通過(guò)搜索系統(tǒng)最大可承受負(fù)載是防止系統(tǒng)瓶頸以及提高整個(gè)分布式系統(tǒng)性能的出現(xiàn)的關(guān)鍵問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種避免系統(tǒng)過(guò)載的基于逐步提升下界的分布式任務(wù)分配與計(jì)算方法。
本發(fā)明的特征在于,它依次含有以下步驟步驟(1.)建立一個(gè)節(jié)點(diǎn)任務(wù)分配表,其中,行數(shù)表示節(jié)點(diǎn)的數(shù)目,列數(shù)表示任務(wù)個(gè)數(shù),形成一個(gè)負(fù)載矩陣,該負(fù)載矩陣的元素是相應(yīng)節(jié)點(diǎn)在任務(wù)分配后在各元素相應(yīng)空間內(nèi)所剩余的資源數(shù);同時(shí)根據(jù)任務(wù)占用資源情況填寫(xiě)任務(wù)分配表;步驟(2.)建立一個(gè)策略標(biāo)記表,其中,行數(shù)表示節(jié)點(diǎn)數(shù)目,列數(shù)表示任務(wù)個(gè)數(shù),矩陣元素是指已經(jīng)使用過(guò)的或者還沒(méi)有使用過(guò)的分配任務(wù)方式,其中,用-1表示初試化時(shí)或者允許進(jìn)行任務(wù)分配時(shí)的空間,用-2表示已經(jīng)使用過(guò)的節(jié)點(diǎn)元素;步驟(3.)隨機(jī)地從任務(wù)分配表中選擇一種任務(wù)分配方式作為初始方式,填入所述的策略標(biāo)記表中,并對(duì)所有的節(jié)點(diǎn)依次按照以下步驟處理步驟(3.1.)把步驟(3)中所述節(jié)點(diǎn)任務(wù)分配表內(nèi)出事分方式所對(duì)應(yīng)的各節(jié)點(diǎn)的空閑資源數(shù)填入策略標(biāo)記表內(nèi)相應(yīng)的位置上,而策略標(biāo)記表內(nèi)的其他位置全部用-1表示;步驟(3.2.)掃描策略標(biāo)記表,找到該表中已經(jīng)被賦值的元素中所賦值最小的那一個(gè)位置;步驟(3.3.)按以下步驟逐個(gè)節(jié)點(diǎn)地嘗試把步驟(3.2.)所述位置中所對(duì)應(yīng)的任務(wù)交換到其他節(jié)點(diǎn)。直到找到使步驟(3.2.)所述的最小值得到了最大規(guī)模的提升為止;步驟(3.3.1.)先把步驟(3.2.)中所述的那個(gè)位置中的任務(wù)移動(dòng)到另一個(gè)節(jié)點(diǎn);步驟(3.3.2.)再把步驟(3.3.1)所述另一個(gè)節(jié)點(diǎn)中要處理的任務(wù)移到步驟(3.3.1)所述的另一個(gè)節(jié)點(diǎn)中,用數(shù)值-1表示的位置上,再計(jì)算其元素值;步驟(3.3.3.)計(jì)算步驟(3.3.2)中所述的另外一個(gè)節(jié)點(diǎn)內(nèi)任務(wù)中已經(jīng)被互換過(guò)的那個(gè)位置上元素的空閑資源數(shù);步驟(3.3.4.)掃描策略標(biāo)記表,把步驟(3.2)所述的那個(gè)互換后已經(jīng)不再使用位置上的數(shù)值修改為-2;步驟(4.)判斷策略標(biāo)記表中除了被標(biāo)記上-2的位置以外的其他位置是否能允許進(jìn)行下一次交換,如果允許,則轉(zhuǎn)到步驟(3.2.)繼續(xù)策略標(biāo)記表的掃描,否則,搜索結(jié)束。
根據(jù)實(shí)驗(yàn)的研究,該計(jì)算方法對(duì)初始分配模式很敏感,但是在實(shí)際情況中,系統(tǒng)本身就是分布式的,因此,可以在這個(gè)分布式基礎(chǔ)上進(jìn)行并行的搜索,每個(gè)節(jié)點(diǎn)選取不同的初始分配模式,只要有節(jié)點(diǎn)得到了最優(yōu)解,該方法即可停止。這樣就大幅度的提高了計(jì)算的性能,并且也減小了該方法對(duì)初始分配模式的依賴性。
我們分別在不同的節(jié)點(diǎn)規(guī)模下,重復(fù)生成隨機(jī)的可接納負(fù)載矩陣,執(zhí)行該搜索過(guò)程,圖5.中給出了嘗試下一個(gè)可行解次數(shù)隨節(jié)點(diǎn)規(guī)模的變化趨勢(shì),對(duì)每個(gè)節(jié)點(diǎn)配置取不同的最大可接納矩陣測(cè)量10次,數(shù)據(jù)分別以測(cè)量結(jié)果的最大值、最小值和平均值標(biāo)出。嘗試次數(shù)的平均值以比較穩(wěn)定的規(guī)律增長(zhǎng),但是最大值和最小值存在一定的“抖動(dòng)”,且最大值與最小值的差隨節(jié)點(diǎn)規(guī)模的增加而增大。這個(gè)結(jié)果表明如果進(jìn)行一次提升下界搜索,其性能的擺動(dòng)范圍可能很大,但是進(jìn)行多次搜索,其最小值仍然具有一定的比較優(yōu)勢(shì),這說(shuō)明我們采用并行的算法能夠提高該算法的性能圖6.中進(jìn)一步說(shuō)明了搜索步數(shù)的增長(zhǎng)趨勢(shì)。測(cè)量的平均值更遠(yuǎn)離測(cè)量的最小值,搜索步數(shù)在不同實(shí)驗(yàn)數(shù)據(jù)下的分布也更集中在較大的區(qū)域。這個(gè)結(jié)果表明通過(guò)初始匹配模式的輪換增加計(jì)算的分支數(shù),有利于大幅降低總的計(jì)算復(fù)雜度。
圖1.節(jié)點(diǎn)任務(wù)分配表示意圖;圖2.建策略標(biāo)記表示意圖;圖3.策略標(biāo)記表任務(wù)交換示意圖;圖4.本發(fā)明的總體處理流程圖;圖5.下一次可行解增長(zhǎng)趨勢(shì)圖;圖6.搜索步數(shù)的增長(zhǎng)趨勢(shì)圖;圖7.本發(fā)明的應(yīng)用示例圖。
具體實(shí)施例方式
經(jīng)典分布式計(jì)算模型解決的核心問(wèn)題是如何將負(fù)載分擔(dān)到多個(gè)計(jì)算節(jié)點(diǎn)上,提高處理效率和系統(tǒng)的資源利用率,“過(guò)載”并不是主要的問(wèn)題范疇。但是,在路由器中,過(guò)載是系統(tǒng)的關(guān)鍵性能瓶頸,可擴(kuò)展軟件體系結(jié)構(gòu)的評(píng)價(jià)指標(biāo)就是能夠容納的負(fù)載量。設(shè)計(jì)一種能夠避免系統(tǒng)過(guò)載的任務(wù)分配方法,是本發(fā)明的主要貢獻(xiàn)。
該方法的基本思想是,給定初始的負(fù)載分配方案,作為最優(yōu)解的下界。然后逐步搜索下一個(gè)可行的分配方案,同時(shí)提高最優(yōu)解的下界,直到找到“當(dāng)前最大可接納負(fù)載”的最大值,即全局最大可接納負(fù)載。其中,每輪搜索得到的“最優(yōu)解下界”就是當(dāng)前分配方案中可接納正規(guī)化負(fù)載的最小值。因此,新的搜索過(guò)程可以跳過(guò)包含不大于該最小值的所有分配方案,從而在每輪搜索之后都減小搜索的空間。此外,初始分配方案的確定對(duì)搜索過(guò)程有很大影響,但是在不知道負(fù)載規(guī)律的情況下很難判斷初始條件的好壞,因此可以利用分布式結(jié)構(gòu),n路并行從不同的初始條件進(jìn)行搜索,直到有一路找到了最優(yōu)解。
在本發(fā)明的描述中,對(duì)節(jié)點(diǎn)任務(wù)的分配使用節(jié)點(diǎn)任務(wù)分配表與建策略標(biāo)記表來(lái)進(jìn)行描述,其中行數(shù)表示節(jié)點(diǎn)的數(shù)目,列數(shù)表示任務(wù)數(shù),節(jié)點(diǎn)任務(wù)分配表中的表項(xiàng)表示了某個(gè)任務(wù)被分配到某一節(jié)點(diǎn)上以后該節(jié)點(diǎn)的剩余資源數(shù)。
節(jié)點(diǎn)任務(wù)分配表結(jié)構(gòu)見(jiàn)圖1.
建策略標(biāo)記表被用來(lái)標(biāo)記一種針對(duì)任務(wù)的分配方式。其中用-1表示可以進(jìn)行任務(wù)交換的位置,用-2表示已經(jīng)使用過(guò)的任務(wù)交換位置。
建策略標(biāo)記表結(jié)構(gòu)見(jiàn)圖2.
當(dāng)需要進(jìn)行任務(wù)分配的時(shí)候,首先對(duì)節(jié)點(diǎn)任務(wù)分配表與建策略標(biāo)記表進(jìn)行初始化,并且根據(jù)每個(gè)任務(wù)在所有節(jié)點(diǎn)中處理以后的剩余資源數(shù)填寫(xiě)節(jié)點(diǎn)任務(wù)分配表,并根據(jù)各節(jié)點(diǎn)中不同的初始任務(wù)分配方式填寫(xiě)策略標(biāo)記表,并針對(duì)策略標(biāo)記表中最小的剩余資源項(xiàng)依次進(jìn)行提升操作。
策略標(biāo)記表任務(wù)交換過(guò)程見(jiàn)圖3.
如圖3中,在初始分配方案中,任務(wù)2被分配給節(jié)點(diǎn)2,任務(wù)5被分配給節(jié)點(diǎn)5,如果將該兩個(gè)任務(wù)所在的位置互相交換,則策略標(biāo)記表中最小的剩余資源就由交換前的5變成交換后的8,即完成了一次下界的提升。
本發(fā)明的總體處理流程圖見(jiàn)圖4.
本發(fā)明的應(yīng)用示例圖見(jiàn)圖7.
本發(fā)明可以通過(guò)對(duì)一個(gè)隨機(jī)生成的初始任務(wù)分配方案中系統(tǒng)可用資源的下界進(jìn)行有規(guī)律的逐漸提升,獲得一種較優(yōu)的在分布式路由器體系中用于避免系統(tǒng)過(guò)載的任務(wù)分配模式,通過(guò)優(yōu)化系統(tǒng)的瓶頸問(wèn)題,最終提高了整個(gè)分布式系統(tǒng)的總體性能。
權(quán)利要求
1.基于逐步提升下界的分布式任務(wù)分配與計(jì)算方法,其特征在于該方法是通過(guò)在互聯(lián)網(wǎng)可擴(kuò)展IP路由器的中加入一個(gè)任務(wù)分配模塊后依次按以下步驟實(shí)現(xiàn)的步驟(1.)建立一個(gè)節(jié)點(diǎn)任務(wù)分配表,其中,行數(shù)表示節(jié)點(diǎn)的數(shù)目,列數(shù)表示任務(wù)個(gè)數(shù),形成一個(gè)負(fù)載矩陣,該負(fù)載矩陣的元素是相應(yīng)節(jié)點(diǎn)在任務(wù)分配后在各元素相應(yīng)空間內(nèi)所剩余的資源數(shù);同時(shí)根據(jù)任務(wù)占用資源情況填寫(xiě)任務(wù)分配表;步驟(2.)建立一個(gè)策略標(biāo)記表,其中,行數(shù)表示節(jié)點(diǎn)數(shù)目,列數(shù)表示任務(wù)個(gè)數(shù),矩陣元素是指已經(jīng)使用過(guò)的或者還沒(méi)有使用過(guò)的分配任務(wù)方式,其中,用-1表示初試化時(shí)或者允許進(jìn)行任務(wù)分配時(shí)的空間,用-2表示已經(jīng)使用過(guò)的節(jié)點(diǎn)元素;步驟(3.)隨機(jī)地從任務(wù)分配表中選擇一種任務(wù)分配方式作為初始方式,填入所述的策略標(biāo)記表中,并對(duì)所有的節(jié)點(diǎn)依次按照以下步驟處理步驟(3.1.)把步驟(3)中所述節(jié)點(diǎn)任務(wù)分配表內(nèi)出事分方式所對(duì)應(yīng)的各節(jié)點(diǎn)的空閑資源數(shù)填入策略標(biāo)記表內(nèi)相應(yīng)的位置上,而策略標(biāo)記表內(nèi)的其他位置全部用-1表示;步驟(3.2.)掃描策略標(biāo)記表,找到該表中已經(jīng)被賦值的元素中所賦值最小的那一個(gè)位置;步驟(3.3.)按以下步驟逐個(gè)節(jié)點(diǎn)地嘗試把步驟(3.2.)所述位置中所對(duì)應(yīng)的任務(wù)交換到其他節(jié)點(diǎn)。直到找到使步驟(3.2.)所述的最小值得到了最大規(guī)模的提升為止;步驟(3.3.1.)先把步驟(3.2.)中所述的那個(gè)位置中的任務(wù)移動(dòng)到另一個(gè)節(jié)點(diǎn);步驟(3.3.2.)再把步驟(3.3.1)所述另一個(gè)節(jié)點(diǎn)中要處理的任務(wù)移到步驟(3.3.1)所述的另一個(gè)節(jié)點(diǎn)中,用數(shù)值-1表示的位置上,再計(jì)算其元素值;步驟(3.3.3.)計(jì)算步驟(3.3.2)中所述的另外一個(gè)節(jié)點(diǎn)內(nèi)任務(wù)中已經(jīng)被互換過(guò)的那個(gè)位置上元素的空閑資源數(shù);步驟(3.3.4.)掃描策略標(biāo)記表,把步驟(3.2)所述的那個(gè)互換后已經(jīng)不再使用位置上的數(shù)值修改為-2;步驟(4.)判斷策略標(biāo)記表中除了被標(biāo)記上-2的位置以外的其他位置是否能允許進(jìn)行下一次交換,如果允許,則轉(zhuǎn)到步驟(3.2.)繼續(xù)策略標(biāo)記表的掃描,否則,搜索結(jié)束。
全文摘要
基于逐步提升下界的分布式任務(wù)分配與計(jì)算方法屬于互聯(lián)網(wǎng)IP路由器數(shù)據(jù)以及任務(wù)調(diào)度算法研究領(lǐng)域,其特征在于依次含有以下步驟在可擴(kuò)展路由器中進(jìn)行任務(wù)分配的時(shí)候,首先給出一種初始的負(fù)載分配方案,作為最佳解決方案的下界。然后建立逐步搜索下一個(gè)可行的分配方案,直到找出當(dāng)前最佳的任務(wù)分配模式,并且,由于初始分配方案的確定對(duì)搜索過(guò)程有很大影響,但是在不知道負(fù)載規(guī)律的情況下很難判斷初始條件的好壞,在設(shè)計(jì)中利用分布式結(jié)構(gòu),多路并行從不同的初始條件進(jìn)行搜索,直到有一路找到了局部最優(yōu)解,從而在很大程度上提高了該方法的效率。本發(fā)明實(shí)現(xiàn)了可擴(kuò)展IP路由器中基于避免過(guò)載的高可用性任務(wù)分配模式。
文檔編號(hào)G06F9/46GK1917464SQ20061011277
公開(kāi)日2007年2月21日 申請(qǐng)日期2006年9月1日 優(yōu)先權(quán)日2006年9月1日
發(fā)明者徐恪, 吳鯤, 王海洋 申請(qǐng)人:清華大學(xué)