專(zhuān)利名稱(chēng)::基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及云環(huán)境下的任務(wù)調(diào)度方法,尤其涉及一種基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,屬于分布式計(jì)算和計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用領(lǐng)域。
背景技術(shù):
:云計(jì)算是一種利用互聯(lián)網(wǎng)實(shí)現(xiàn)隨時(shí)隨地、按需、便捷地訪(fǎng)問(wèn)共享資源池(如計(jì)算設(shè)施、存儲(chǔ)設(shè)備、應(yīng)用程序等)的計(jì)算模式,是網(wǎng)格計(jì)算的發(fā)展與商業(yè)實(shí)現(xiàn)。它將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的數(shù)據(jù)中心,從而使得各種應(yīng)用能夠根據(jù)需要獲取計(jì)算能力、存儲(chǔ)空間和信息服務(wù)。目前,云計(jì)算環(huán)境由大規(guī)模的廉價(jià)計(jì)算節(jié)點(diǎn)構(gòu)成,如何高效地使用這些節(jié)點(diǎn)的計(jì)算、存儲(chǔ)和寬帶等資源尤為重要。云環(huán)境下的任務(wù)調(diào)度策略是合理利用云環(huán)境下的資源的一種有效方式,高效的任務(wù)調(diào)度策略對(duì)縮短任務(wù)分配時(shí)間、提高云環(huán)境的資源使用率、確保云計(jì)算系統(tǒng)的服務(wù)質(zhì)量(QualityofService,QoS)、和云服務(wù)提供商遵守與用戶(hù)簽訂的服務(wù)等級(jí)協(xié)議(Service-LevelAgreement,SLA)具有十分重要的意義。云計(jì)算的任務(wù)調(diào)度主要研究如何將用戶(hù)提交的任務(wù)分配給計(jì)算節(jié)點(diǎn)以及如何對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)擴(kuò)展。由于云環(huán)境具有節(jié)點(diǎn)數(shù)量龐大、資源動(dòng)態(tài)分配、節(jié)點(diǎn)失效頻繁造成節(jié)點(diǎn)分布動(dòng)態(tài)變化等特點(diǎn),因此任務(wù)調(diào)度必須能適應(yīng)動(dòng)態(tài)的云計(jì)算環(huán)境。目前,云環(huán)境下的任務(wù)調(diào)度算法通常從保證用戶(hù)的QoS和降低云服務(wù)提供商的成本兩個(gè)方面展開(kāi)研究。用戶(hù)的QoS主要包括用戶(hù)按需支付的費(fèi)用、任務(wù)完成時(shí)間、可靠性和安全性等因素。而從云計(jì)算的服務(wù)提供商角度出發(fā),則希望在滿(mǎn)足以上用戶(hù)特定要求的基礎(chǔ)上能夠降低云系統(tǒng)的能量消耗,減少運(yùn)營(yíng)成本。例如,為保證用戶(hù)任務(wù)的執(zhí)行時(shí)間,JiayinLi等人提出一種基于動(dòng)態(tài)反饋的調(diào)度算法進(jìn)行搶占式任務(wù)調(diào)度,在資源競(jìng)爭(zhēng)緊張的情況下也能較好地確保任務(wù)的完成時(shí)間(JiayinLi,MeikangQiu,JianffeiLiu,etal.FeedbackDynamicAlgorithmsforPreemptableJobSchedulinginCloudSystems[J].IEEE/WIC/ACMInternationalConferenceonWebIntelligenceandIntelligentAgentTechnology.2010:561-564);為減少云服務(wù)提供商的運(yùn)營(yíng)成本,CaoQi等人提出一種ABC(ActivityBasedCosting)任務(wù)調(diào)度算法,通過(guò)衡量任務(wù)開(kāi)銷(xiāo)和任務(wù)運(yùn)行表現(xiàn)來(lái)獲得比傳統(tǒng)方法更準(zhǔn)確的成本測(cè)量結(jié)果,從而降低系統(tǒng)資源的開(kāi)銷(xiāo)成本(CaoQi,ZhiBoWei,WenMaoGong.AnOptimizedAlgorithmforTaskSchedulingBasedonActivityBasedCostinginCloudComputing[C],3rdInternationalConferenceonAdvancesinComputingandArtificialIntelligence.2009:1-3);蟻群算法由于其并行分布性、擴(kuò)展性、易實(shí)現(xiàn)和魯棒性強(qiáng)等優(yōu)點(diǎn),非常適合用于云環(huán)境下的任務(wù)調(diào)度。XinLu等人利用蟻群算法在云環(huán)境中某些節(jié)點(diǎn)負(fù)載過(guò)重的情況下遷移正在執(zhí)行的任務(wù),從而確保云環(huán)境的負(fù)載均衡,但當(dāng)任務(wù)較多時(shí)任務(wù)遷移的代價(jià)較大(XinLu,ZilongGu.Aload-adapativecloudresourceschedulingmodelbasedonantcolonyalgorithm[C],IEEEInternationalConferenceonCloudComputingandIntelligenceSystems2011:296-300);王永貴,韓瑞蓮在任務(wù)分配過(guò)程中將蟻群算法和CN102932422A書(shū)明說(shuō)2/8頁(yè)遺傳算法相結(jié)合,有效地縮短了任務(wù)分配時(shí)間,但是蟻群之間交互性不強(qiáng),會(huì)進(jìn)行過(guò)多的無(wú)效搜索(王永貴,韓瑞蓮.基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度研究.計(jì)算機(jī)測(cè)量與控制,2011(5):1203-1204,1211);劉永等人在蟻群算法中引入了雙向螞蟻機(jī)制,在一定程度上加強(qiáng)了螞蟻之間的交流,缺點(diǎn)是只有發(fā)現(xiàn)資源時(shí)才會(huì)產(chǎn)生反向螞蟻,如果云環(huán)境下可用資源較少,算法提升的效率不高(劉永,王新華,邢長(zhǎng)明等.云計(jì)算環(huán)境下基于蟻群優(yōu)化算法的資源調(diào)度策略[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011(9):19-23,27)。綜上所述,現(xiàn)有的用于云環(huán)境下任務(wù)調(diào)度的蟻群算法存在螞蟻之間缺乏交流導(dǎo)致搜索效率不高的問(wèn)題。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題在于克服現(xiàn)有技術(shù)的不足,從加強(qiáng)蟻群之間協(xié)作的角度對(duì)蟻群算法進(jìn)行改進(jìn),使其適應(yīng)于資源和負(fù)載動(dòng)態(tài)變化的云計(jì)算環(huán)境,提供一種基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,能夠提高蟻群算法在云環(huán)境中進(jìn)行任務(wù)調(diào)度的搜索效率和精度。本發(fā)明具體采用以下技術(shù)方案一種基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,管理節(jié)點(diǎn)為每個(gè)任務(wù)分配多只螞蟻分別進(jìn)行任務(wù)節(jié)點(diǎn)的搜索,管理節(jié)點(diǎn)根據(jù)所述多只螞蟻的搜索結(jié)果進(jìn)行任務(wù)分配,具體包括以下步驟步驟I:管理節(jié)點(diǎn)為每個(gè)任務(wù)節(jié)點(diǎn)賦予初始信息素;步驟2:確定每個(gè)任務(wù)所需派出的螞蟻數(shù)目;步驟3:為每只螞蟻設(shè)定生命周期及初始剩余生命信息素生命周期為螞蟻的最大跳數(shù),初始剩余生命信息素的值和生命周期相等;步驟4:將所有螞蟻隨機(jī)分布在云環(huán)境中的任務(wù)節(jié)點(diǎn)上,并根據(jù)所在節(jié)點(diǎn)初始化螞蟻結(jié)構(gòu)表的信息,所述螞蟻結(jié)構(gòu)表中包括生命周期、剩余生命信息素、禁忌節(jié)點(diǎn)集、最優(yōu)節(jié)點(diǎn)信息;步驟5:每只螞蟻搜索下一跳節(jié)點(diǎn)時(shí),先獲取所搜索到的節(jié)點(diǎn)上是否存在與其攜帶同一任務(wù)的其它螞蟻留存的剩余生命信息素信息,如不存在,則跳至該節(jié)點(diǎn)并將自身的剩余生命信息素信息留存于該節(jié)點(diǎn),繼續(xù)進(jìn)行下一跳節(jié)點(diǎn)的搜索;如存在,則判斷如跳至該節(jié)點(diǎn)后,自身的剩余生命信息素的值是否大于該節(jié)點(diǎn)上當(dāng)前所留存的剩余生命信息素的值,如大于,則螞蟻跳至該節(jié)點(diǎn),并用自身的剩余生命信息素的值更新該節(jié)點(diǎn)上當(dāng)前所留存的剩余生命信息素的值,繼續(xù)進(jìn)行下一跳節(jié)點(diǎn)的搜索;反之,螞蟻將該節(jié)點(diǎn)加入禁忌節(jié)點(diǎn)集,然后重新進(jìn)行下一跳節(jié)點(diǎn)的搜索;螞蟻每跳一步,自身的剩余生命信息素的值減I;當(dāng)自身的剩余生命信息素的值為O時(shí),螞蟻停止搜索;步驟6:螞蟻跳至下一跳節(jié)點(diǎn)后,計(jì)算所攜帶的任務(wù)在該節(jié)點(diǎn)上的預(yù)計(jì)執(zhí)行時(shí)間,若預(yù)計(jì)執(zhí)行時(shí)間小于螞蟻當(dāng)前結(jié)構(gòu)表中存儲(chǔ)的最小執(zhí)行時(shí)間,則以所述預(yù)計(jì)執(zhí)行時(shí)間更新螞蟻當(dāng)前結(jié)構(gòu)表中存儲(chǔ)的最小執(zhí)行時(shí)間,以該節(jié)點(diǎn)信息更新螞蟻當(dāng)前結(jié)構(gòu)表中存儲(chǔ)的最優(yōu)節(jié)點(diǎn)信息;反之,螞蟻結(jié)構(gòu)表中存儲(chǔ)的信息不改變;重復(fù)步驟5和步驟6直到所有螞蟻生命周期結(jié)束;步驟7:每個(gè)螞蟻將他們找到的最優(yōu)節(jié)點(diǎn)信息發(fā)送給管理節(jié)點(diǎn),管理節(jié)點(diǎn)從這些6最優(yōu)節(jié)點(diǎn)中選擇合適節(jié)點(diǎn)進(jìn)行任務(wù)分配。優(yōu)選地,管理節(jié)點(diǎn)為任意一個(gè)任務(wù)m所分配的螞蟻數(shù)目N(m)根據(jù)下式確定權(quán)利要求1.一種基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,管理節(jié)點(diǎn)為每個(gè)任務(wù)分配多只螞蟻分別進(jìn)行任務(wù)節(jié)點(diǎn)的搜索,管理節(jié)點(diǎn)根據(jù)所述多只螞蟻的搜索結(jié)果進(jìn)行任務(wù)分配,其特征在于,具體包括以下步驟步驟I:管理節(jié)點(diǎn)為每個(gè)任務(wù)節(jié)點(diǎn)賦予初始信息素;步驟2:確定每個(gè)任務(wù)所需派出的螞蟻數(shù)目;步驟3:為每只螞蟻設(shè)定生命周期及初始剩余生命信息素生命周期為螞蟻的最大跳數(shù),初始剩余生命信息素的值和生命周期相等;步驟4:將所有螞蟻隨機(jī)分布在云環(huán)境中的任務(wù)節(jié)點(diǎn)上,并根據(jù)所在節(jié)點(diǎn)初始化螞蟻結(jié)構(gòu)表的信息,所述螞蟻結(jié)構(gòu)表中包括生命周期、剩余生命信息素、禁忌節(jié)點(diǎn)集、最優(yōu)節(jié)點(diǎn)信息;步驟5:每只螞蟻搜索下一跳節(jié)點(diǎn)時(shí),先獲取所搜索到的節(jié)點(diǎn)上是否存在與其攜帶同一任務(wù)的其它螞蟻留存的剩余生命信息素信息,如不存在,則跳至該節(jié)點(diǎn)并將自身的剩余生命信息素信息留存于該節(jié)點(diǎn),繼續(xù)進(jìn)行下一跳節(jié)點(diǎn)的搜索;如存在,則判斷如跳至該節(jié)點(diǎn)后,自身的剩余生命信息素的值是否大于該節(jié)點(diǎn)上當(dāng)前所留存的剩余生命信息素的值,如大于,則螞蟻跳至該節(jié)點(diǎn),并用自身的剩余生命信息素的值更新該節(jié)點(diǎn)上當(dāng)前所留存的剩余生命信息素的值,繼續(xù)進(jìn)行下一跳節(jié)點(diǎn)的搜索;反之,螞蟻將該節(jié)點(diǎn)加入禁忌節(jié)點(diǎn)集,然后重新進(jìn)行下一跳節(jié)點(diǎn)的搜索;螞蟻每跳一步,自身的剩余生命信息素的值減I;當(dāng)自身的剩余生命信息素的值為O時(shí),螞蟻停止搜索;步驟6:螞蟻跳至下一跳節(jié)點(diǎn)后,計(jì)算所攜帶的任務(wù)在該節(jié)點(diǎn)上的預(yù)計(jì)執(zhí)行時(shí)間,若預(yù)計(jì)執(zhí)行時(shí)間小于螞蟻當(dāng)前結(jié)構(gòu)表中存儲(chǔ)的最小執(zhí)行時(shí)間,則以所述預(yù)計(jì)執(zhí)行時(shí)間更新螞蟻當(dāng)前結(jié)構(gòu)表中存儲(chǔ)的最小執(zhí)行時(shí)間,以該節(jié)點(diǎn)信息更新螞蟻當(dāng)前結(jié)構(gòu)表中存儲(chǔ)的最優(yōu)節(jié)點(diǎn)信息;反之,螞蟻結(jié)構(gòu)表中存儲(chǔ)的信息不改變;重復(fù)步驟5和步驟6直到所有螞蟻生命周期結(jié)束;步驟7:每個(gè)螞蟻將他們找到的最優(yōu)節(jié)點(diǎn)信息發(fā)送給管理節(jié)點(diǎn),管理節(jié)點(diǎn)從這些最優(yōu)節(jié)點(diǎn)中選擇合適節(jié)點(diǎn)進(jìn)行任務(wù)分配。2.如權(quán)利要求I所述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,管理節(jié)點(diǎn)為任意一個(gè)任務(wù)所分配的螞蟻數(shù)目鄭、根據(jù)下式確定TaskLm0k(m)+f^ForwardTasMi)IN(m)----———-—*JogοΜιτηAvgCpu*LkadLimfM式中,TaskLengih(Jn)表示任務(wù)》的長(zhǎng)度,*⑴表示管理節(jié)點(diǎn)中已經(jīng)分配出去但是還未執(zhí)行完畢的第i個(gè)任務(wù)的長(zhǎng)度,二者的單位均為兆比特;#為管理節(jié)點(diǎn)中已經(jīng)分配出去但是還未執(zhí)行完畢的任務(wù)總數(shù),為所述云環(huán)境中所有節(jié)點(diǎn)中各CPU的平均處理能力,單位為MIPS;DeadLine{m)表示任務(wù)《所允許的最長(zhǎng)執(zhí)行時(shí)間,單位為秒;—表示所述云環(huán)境中當(dāng)前可用節(jié)點(diǎn)的數(shù)目是調(diào)節(jié)因子,其取值范圍為(0,1)。3.如權(quán)利要求2所述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,調(diào)節(jié)因子#的值為0.7。4.如權(quán)利要求I所述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,所述螞蟻的生命周期按照下式計(jì)算得到”^NodeNum,,Hp=--KYim)TaskNum’其中,均>**表示為螞蟻々的生命周期,NodeNum表示所述云環(huán)境下可用節(jié)點(diǎn)的總數(shù)量,TaskNum表示管理節(jié)點(diǎn)將一個(gè)作業(yè)切分后的任務(wù)數(shù),越表示螞蟻A所攜帶的任務(wù)《的緊迫系數(shù)。5.權(quán)利要求4述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,所述任務(wù)《的緊迫系數(shù)f加)按照下式確定K)=-.DmdLim(m)式中,Deailineim)表示任務(wù)》允許的最長(zhǎng)執(zhí)行時(shí)間,表示所有任務(wù)中最小的允許的最長(zhǎng)執(zhí)行時(shí)間。6.權(quán)利要求1-5任一項(xiàng)所述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,步驟6中,計(jì)算所攜帶的任務(wù)在該節(jié)點(diǎn)上的預(yù)計(jì)執(zhí)行時(shí)間,具體按照以下公式PreTimeimJ)=—(m=l,2,3,---Mjj'=!,2,3,---W)其中,PrenmKmJ)表示任務(wù)》在節(jié)點(diǎn)j·上的預(yù)計(jì)執(zhí)行時(shí)間JasitienO)表示任務(wù)《的長(zhǎng)度;PrestO)表示節(jié)點(diǎn)j的剩余CPU處理能力。7.如權(quán)利要求1-5任一項(xiàng)所述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,任一任務(wù)節(jié)點(diǎn)i在t時(shí)刻的信息素Ti()按照下式計(jì)算=MmiXτξ()+⑷+Cif(£)式中,A表示節(jié)點(diǎn)i的CPU個(gè)數(shù)d、B、C分別為節(jié)點(diǎn)i在t時(shí)刻的CPU信息素tf(、內(nèi)存信息素、帶寬信息素的權(quán)重系數(shù),且J+i+C=l⑩、tf(0和彳的表達(dá)式分別如下'Pirres{f\=^fix100%其中”表示節(jié)點(diǎn)i的CPU最大處理能力,單位為MIPSA表示節(jié)點(diǎn)i的最大內(nèi)存,單位為M;&表示節(jié)點(diǎn)i的最大網(wǎng)絡(luò)帶寬,單位為兆比特/秒;ΡΓ、f(I)、ATr(f)分別為t時(shí)刻節(jié)點(diǎn)i的剩余CPU處理能力、剩余內(nèi)存和帶寬容量。8.如權(quán)利要求1-5任一項(xiàng)所述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,每只螞蟻搜索下一跳節(jié)點(diǎn)時(shí),首先選取相鄰節(jié)點(diǎn)中轉(zhuǎn)移概率最高的節(jié)點(diǎn),然后對(duì)其進(jìn)行剩余生命信息素的判斷;所述轉(zhuǎn)移概率根據(jù)下式計(jì)算9.如權(quán)利要求8所述基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法,其特征在于,α、P的取值范圍力=廣5,β=Γ50全文摘要本發(fā)明公開(kāi)了一種基于改進(jìn)蟻群算法的云環(huán)境任務(wù)調(diào)度方法。本發(fā)明在現(xiàn)有蟻群算法基礎(chǔ)上引入了剩余生命信息素(RLP)的概念,通過(guò)在搜索過(guò)程中兄弟螞蟻RLP的比較,可以有效地減少重復(fù)搜索,提高搜索精度;并進(jìn)一步給出了兄弟螞蟻的數(shù)目計(jì)算方法,使螞蟻數(shù)目能夠隨著云環(huán)境的負(fù)載和任務(wù)的具體情況動(dòng)態(tài)變化,從而在不給系統(tǒng)增加過(guò)重負(fù)擔(dān)的同時(shí)保證搜索精度。相比現(xiàn)有技術(shù),本發(fā)明方法能夠在盡可能滿(mǎn)足用戶(hù)任務(wù)執(zhí)行時(shí)間的需求的同時(shí),提高任務(wù)的分配效率和執(zhí)行效率。文檔編號(hào)H04L29/08GK102932422SQ20121037459公開(kāi)日2013年2月13日申請(qǐng)日期2012年9月29日優(yōu)先權(quán)日2012年9月29日發(fā)明者程春玲,吳皓,李陽(yáng),張登銀申請(qǐng)人:南京郵電大學(xué)