一種基于任務(wù)遷移的集群系統(tǒng)動(dòng)態(tài)負(fù)載均衡方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及負(fù)載均衡方法,特別是涉及一種基于任務(wù)迀移的集群系統(tǒng)動(dòng)態(tài)負(fù)載均衡方法。
【背景技術(shù)】
[0002]在實(shí)際應(yīng)用中,由于集群系統(tǒng)中某個(gè)或部分節(jié)點(diǎn)可能發(fā)生損壞或更新升級(jí),這使得集群系統(tǒng)中的各個(gè)計(jì)算節(jié)點(diǎn)配置將不同,面對(duì)相同的任務(wù)時(shí),處理的速度將會(huì)有差別,這樣大大降低了集群的并行性。同時(shí)目前傳統(tǒng)的負(fù)載均衡集群系統(tǒng)還存在一定的局限,集中反映在自適應(yīng)性、可擴(kuò)展性以及異構(gòu)性三個(gè)方面。因此,對(duì)于異構(gòu)系統(tǒng)而言負(fù)載均衡的效果并不顯著。通過本文設(shè)計(jì)的可以有效解決這一問題,。
[0003]因此,需要提供一種基于任務(wù)迀移的動(dòng)態(tài)負(fù)載均衡方法,在集群系統(tǒng)運(yùn)行過程中能夠以各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載信息狀況為依據(jù),計(jì)算任務(wù)合理的在各個(gè)計(jì)算節(jié)點(diǎn)間進(jìn)行迀移,以滿足在集群系統(tǒng)中,實(shí)現(xiàn)負(fù)載均衡的同時(shí),提高計(jì)算速率和集群系統(tǒng)的并行性能。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是提供一種基于任務(wù)迀移的集群系統(tǒng)動(dòng)態(tài)負(fù)載均衡方法,以解決集群系統(tǒng)中某個(gè)或部分節(jié)點(diǎn)損壞、計(jì)算量差異過大或更新升級(jí),造成的計(jì)算節(jié)點(diǎn)配置不均而導(dǎo)致的處理速度降低和系統(tǒng)并行性能差的問題。
[0005]為解決上述技術(shù)問題,本發(fā)明采用下述技術(shù)方案
[0006]一種基于任務(wù)迀移的集群系統(tǒng)動(dòng)態(tài)負(fù)載均衡方法,該方法的步驟包括
[0007]對(duì)當(dāng)前集群系統(tǒng)的負(fù)載均衡情況進(jìn)行分析;
[0008]根據(jù)分析結(jié)果,對(duì)各個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行初始任務(wù)量分配;
[0009]以集群系統(tǒng)內(nèi)各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載監(jiān)控信息為依據(jù),將計(jì)算任務(wù)在各個(gè)計(jì)算節(jié)點(diǎn)間進(jìn)行任務(wù)迀移,實(shí)現(xiàn)動(dòng)態(tài)負(fù)載均衡。
[0010]優(yōu)選的,對(duì)集群系統(tǒng)中各個(gè)節(jié)點(diǎn)的負(fù)載情況進(jìn)行分析;對(duì)集群系統(tǒng)中處于空閑狀態(tài)的節(jié)點(diǎn)進(jìn)行統(tǒng)計(jì)。
[0011]優(yōu)選的,所述初始任務(wù)量分配的步驟包括
[0012]計(jì)算每個(gè)節(jié)點(diǎn)至少分配到的數(shù)據(jù)個(gè)數(shù)Avg_num:Avg_num = Pic_num/m,其中m為計(jì)算節(jié)點(diǎn)的個(gè)數(shù),Pic_num為數(shù)據(jù)個(gè)數(shù);
[0013]若數(shù)據(jù)個(gè)數(shù)Pic_num能夠被m整除,則每個(gè)計(jì)算節(jié)點(diǎn)被分配的數(shù)據(jù)個(gè)數(shù)為Node_num,此時(shí) Node_num = Avg_num = Pic_num/m ;
[0014]若數(shù)據(jù)個(gè)數(shù)Pic_num不能夠被m整除,得到余數(shù)Mod_num:Mod_num = Pic_num%m,貝丨」此時(shí):Node_num = Avg_num = Pic_num/m, Node_num0 = Avg_num+Mod_num = Pic_num/m+Pic_num% mD其中,Node_num0為負(fù)載最輕計(jì)算節(jié)點(diǎn)被分配的數(shù)據(jù)個(gè)數(shù),Node_num為剩余每個(gè)節(jié)點(diǎn)被分配的數(shù)據(jù)個(gè)數(shù)。
[0015]優(yōu)選的,所述負(fù)載均衡的步驟包括
[0016]調(diào)度管理節(jié)點(diǎn)將初始任務(wù)量分配給各個(gè)計(jì)算節(jié)點(diǎn);
[0017]每個(gè)計(jì)算節(jié)點(diǎn)在完成一組數(shù)據(jù)的計(jì)算后,向調(diào)度管理節(jié)點(diǎn)發(fā)送當(dāng)前負(fù)載信息,若剩余任務(wù)負(fù)載的數(shù)量不為0,則等待調(diào)度管理節(jié)點(diǎn)的反饋信息,否則,等待其他計(jì)算節(jié)點(diǎn)任務(wù)迀移信息;
[0018]調(diào)度管理節(jié)點(diǎn)負(fù)責(zé)監(jiān)控各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載狀況,并存儲(chǔ)相應(yīng)的負(fù)載信息,若當(dāng)前計(jì)算節(jié)點(diǎn)的剩余任務(wù)負(fù)載量為0,其他計(jì)算節(jié)點(diǎn)的剩余任務(wù)負(fù)載量不為0,則開始負(fù)載均衡調(diào)動(dòng);
[0019]計(jì)算節(jié)點(diǎn)接收調(diào)度管理節(jié)點(diǎn)的反饋信息,判斷系統(tǒng)內(nèi)計(jì)算節(jié)點(diǎn)的當(dāng)前的負(fù)載情況,開始從負(fù)載最重的計(jì)算節(jié)點(diǎn)向負(fù)載最輕的計(jì)算節(jié)點(diǎn)進(jìn)行任務(wù)迀移;
[0020]直至系統(tǒng)中所有計(jì)算節(jié)點(diǎn)的任務(wù)負(fù)載量為0,結(jié)束并行計(jì)算。
[0021]優(yōu)選的,所述負(fù)載信息包括當(dāng)前節(jié)點(diǎn)的剩余任務(wù)負(fù)載量Ni和計(jì)算效率E -
[0022]優(yōu)選的,所述監(jiān)控各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載狀況的步驟包括
[0023]根據(jù)負(fù)載監(jiān)控信息,(Nk-n)*Ek= n*E ^n= (E^Ei) / (Nk*Ek),其中,k為計(jì)算負(fù)載最重的計(jì)算節(jié)點(diǎn),η為迀移任務(wù)量,i為計(jì)算負(fù)載最重的計(jì)算節(jié)點(diǎn),Nk為節(jié)點(diǎn)k的剩余任務(wù)負(fù)載量,Ek和E i為節(jié)點(diǎn)k與節(jié)點(diǎn)i的計(jì)算效率;
[0024]向負(fù)載最重的計(jì)算節(jié)點(diǎn)k發(fā)送負(fù)載均衡標(biāo)識(shí)、負(fù)載最輕的計(jì)算節(jié)點(diǎn)的標(biāo)號(hào)i以及迀移任務(wù)量η ;
[0025]向負(fù)載最輕計(jì)算節(jié)點(diǎn)i發(fā)送負(fù)載均衡標(biāo)識(shí)flag、節(jié)點(diǎn)p的編號(hào)以及迀移任務(wù)量η。
[0026]優(yōu)選的,所述計(jì)算節(jié)點(diǎn)接收調(diào)度管理節(jié)點(diǎn)的反饋信息的步驟包括
[0027]若flag = 0,則繼續(xù)進(jìn)行計(jì)算,負(fù)載均衡并未啟動(dòng);
[0028]若flag = I且剩余任務(wù)量為0,則當(dāng)前計(jì)算節(jié)點(diǎn)i為負(fù)載最輕的計(jì)算節(jié)點(diǎn),此時(shí)的反饋信息包括負(fù)載均衡標(biāo)識(shí)flag、負(fù)載最重的計(jì)算節(jié)點(diǎn)的編號(hào)k以及迀移任務(wù)量n,接收由負(fù)載最重計(jì)算節(jié)點(diǎn)k迀移來的任務(wù),更新計(jì)算節(jié)點(diǎn)i的數(shù)據(jù),繼續(xù)進(jìn)行計(jì)算;
[0029]若flag= I且剩余任務(wù)量不為0,則當(dāng)前計(jì)算節(jié)點(diǎn)k為負(fù)載最重的計(jì)算節(jié)點(diǎn),這時(shí)的反饋信息包括負(fù)載均衡標(biāo)識(shí)flag、負(fù)載最輕的計(jì)算節(jié)點(diǎn)的編號(hào)i以及迀移任務(wù)量n,發(fā)送η個(gè)任務(wù)給負(fù)載最輕計(jì)算節(jié)點(diǎn)i,更新當(dāng)前計(jì)算節(jié)點(diǎn)k的數(shù)據(jù),繼續(xù)進(jìn)行計(jì)算。
[0030]優(yōu)選的,該方法進(jìn)一步包括在MPI并行變成模型中進(jìn)行動(dòng)態(tài)負(fù)載均衡。
[0031]本發(fā)明的有益效果如下:
[0032]本發(fā)明所述技術(shù)方案本發(fā)明所述技術(shù)方案使集群系統(tǒng)在運(yùn)行過程中能夠以各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載信息狀況為依據(jù),計(jì)算任務(wù)合理的在各個(gè)計(jì)算節(jié)點(diǎn)間進(jìn)行迀移,負(fù)載最輕的計(jì)算節(jié)點(diǎn)接收負(fù)載最重的計(jì)算節(jié)點(diǎn)迀移來的計(jì)算任務(wù),使得各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載盡可能的均衡;通過本發(fā)明所述技術(shù)方案可以有效地提升計(jì)算速率,提升對(duì)計(jì)算任務(wù)的協(xié)調(diào)和整合,提升集群系統(tǒng)的并行計(jì)算能力。
【附圖說明】
[0033]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)的說明;
[0034]圖1示出一種基于任務(wù)迀移的集群系統(tǒng)動(dòng)態(tài)負(fù)載均衡方法的示意圖。
【具體實(shí)施方式】
[0035]本發(fā)明公開了一種基于任務(wù)迀移的集群系統(tǒng)動(dòng)態(tài)負(fù)載均衡方法,該方法的步驟包括
[0036]第一步分析集群系統(tǒng)的負(fù)載均衡
[0037]在集群群系統(tǒng)中,由于各個(gè)計(jì)算節(jié)點(diǎn)的配置不同會(huì)出現(xiàn)負(fù)載不均衡這一現(xiàn)象。當(dāng)某些計(jì)算節(jié)點(diǎn)負(fù)載較重時(shí),而其他某些計(jì)算節(jié)點(diǎn)則負(fù)載較輕或者處于空閑狀態(tài),這將嚴(yán)重影響集群系統(tǒng)的并行計(jì)算效率。負(fù)載均衡作為集群系統(tǒng)構(gòu)建的核心技術(shù)之一,其算法是否高效直接影響了集群系統(tǒng)的性能,能夠有效均衡集群系統(tǒng)中各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載,可以用集群系統(tǒng)的可擴(kuò)展性、負(fù)載信息的監(jiān)控、通信開銷的大小以及任務(wù)的迀移策略等來衡量算法的優(yōu)劣。
[0038]負(fù)載均衡主要包括靜態(tài)負(fù)載均衡和動(dòng)態(tài)負(fù)載均衡,無論在集群系統(tǒng)中實(shí)現(xiàn)靜態(tài)負(fù)載平衡還是動(dòng)態(tài)負(fù)載平衡,都能夠有效提高集群系統(tǒng)的計(jì)算性能。靜態(tài)負(fù)載均衡是集群系統(tǒng)實(shí)現(xiàn)負(fù)載均衡的基本方法,是指在集群系統(tǒng)運(yùn)行前各個(gè)計(jì)算節(jié)點(diǎn)的任務(wù)量已明確,各個(gè)計(jì)算節(jié)點(diǎn)各自的計(jì)算任務(wù)盡量同時(shí)完成,從而降低計(jì)算時(shí)間,有效地提升集群系統(tǒng)的并行計(jì)算能力。
[0039]動(dòng)態(tài)負(fù)載均衡是指在集群系統(tǒng)運(yùn)行過程中能夠以各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載信息狀況為依據(jù),計(jì)算任務(wù)合理的在各個(gè)計(jì)算節(jié)點(diǎn)間進(jìn)行迀移,負(fù)載最輕的計(jì)算節(jié)點(diǎn)接收負(fù)載最重的計(jì)算節(jié)點(diǎn)迀移來的計(jì)算任務(wù),使得各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載盡可能的均衡,從而有效地提升計(jì)算速率,提升對(duì)路面圖像數(shù)據(jù)的協(xié)調(diào)和整合,提升集群系統(tǒng)的并行計(jì)算能力。然而在靜態(tài)負(fù)載均衡中,計(jì)算任務(wù)的實(shí)際運(yùn)行時(shí)間與估算值有較大的差異,這主要是由于對(duì)計(jì)算任務(wù)的任務(wù)量估算不準(zhǔn)確和每個(gè)計(jì)算節(jié)點(diǎn)完成各自任務(wù)所需的時(shí)間存在很大的差異造成的。此夕卜,靜態(tài)負(fù)載均衡沒有考慮計(jì)算節(jié)點(diǎn)的負(fù)載狀況而均衡負(fù)載,這造成了集群系統(tǒng)資源利用和計(jì)算性能的降低。而動(dòng)態(tài)負(fù)載均衡可以有效地彌補(bǔ)靜態(tài)負(fù)載均衡的不足之處,集群系統(tǒng)運(yùn)行前各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)量不需要被明確。特別在對(duì)任務(wù)量估算不準(zhǔn)確的情況下,動(dòng)態(tài)負(fù)載均衡的效果顯著。本文設(shè)計(jì)的負(fù)載均衡算法正是一種動(dòng)態(tài)負(fù)載均衡算法。
[0040]第二步設(shè)計(jì)集群系統(tǒng)的任務(wù)分配策略
[0041]本文的任務(wù)劃分采用塊分配策略,即將具體的計(jì)算任務(wù)劃分成若干個(gè)連續(xù)的任務(wù)塊,集群系統(tǒng)中每個(gè)計(jì)算節(jié)點(diǎn)負(fù)責(zé)一塊數(shù)據(jù)的計(jì)算。
[0042]設(shè)集群系統(tǒng)的計(jì)算任務(wù)是對(duì)大量的圖像數(shù)據(jù)進(jìn)行處理,圖像個(gè)數(shù)為Pic_num,計(jì)算節(jié)點(diǎn)個(gè)數(shù)為m,各個(gè)計(jì)算節(jié)點(diǎn)至少分配到的圖像個(gè)數(shù)為Avg_num。
[0043]為了實(shí)現(xiàn)圖像信息的并行計(jì)算,首先需要計(jì)算出Avg_num,即:Avg_num = Pic_num/m ;
[0044]如果子計(jì)算節(jié)點(diǎn)的個(gè)數(shù)m不能被Pic_num整除,則會(huì)得到余數(shù)Mod_num,即:Mod_num = Pic_num% m ;
[0045]因此,每個(gè)計(jì)算節(jié)點(diǎn)分配的圖像個(gè)數(shù)為Node_num,若余數(shù)Mod_num ! =0,則將余數(shù)劃分給集群系統(tǒng)中負(fù)載最輕的計(jì)算節(jié)點(diǎn),即:
[0046]Node_num = Avg_num = Pic_num/m,
[0047]Node_num0 = Avg_num+Mod_num = Pic_num/m+Pic_num% m。
[0048]其中,Node_num0為負(fù)載最輕計(jì)算節(jié)點(diǎn)被分配的數(shù)據(jù)個(gè)數(shù),Node_num為剩余每個(gè)節(jié)點(diǎn)被分配的數(shù)據(jù)個(gè)數(shù)。
[0049]這樣就得到各個(gè)計(jì)算節(jié)點(diǎn)的初始任務(wù)分配量,調(diào)度管理節(jié)點(diǎn)據(jù)此分配任務(wù)。
[0050]第三步設(shè)計(jì)基于任務(wù)迀移的動(dòng)態(tài)負(fù)載均衡算法
[0051]一般情況下,動(dòng)態(tài)負(fù)載均衡算法需要解決負(fù)載的監(jiān)控、任務(wù)的迀移策略以及迀移的實(shí)現(xiàn)這三個(gè)主要問題。
[0052]因此,動(dòng)態(tài)負(fù)載均衡算法也相應(yīng)的包括負(fù)載監(jiān)控、任務(wù)迀移策略以及迀移實(shí)現(xiàn)的具體方法。這三個(gè)部分并不是相互獨(dú)立的,集群系統(tǒng)以各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載監(jiān)控信息為依據(jù),結(jié)合任務(wù)迀移策略,計(jì)算任務(wù)能夠在各個(gè)計(jì)算節(jié)點(diǎn)間進(jìn)行合理的迀移,使得各個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載盡可能的均衡,從而有效地提升計(jì)算速率,提升集群系統(tǒng)的并行計(jì)算能力。
[0053]設(shè)一個(gè)集群系統(tǒng)包含I個(gè)調(diào)度管理節(jié)點(diǎn)和m個(gè)計(jì)算節(jié)點(diǎn),各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算性能為EiQ = 1,2,......,m),即每個(gè)計(jì)算節(jié)點(diǎn)處理一張圖像數(shù)據(jù)所需的計(jì)算時(shí)間,計(jì)算任務(wù)的任務(wù)量為Pic_n張圖像,各個(gè)計(jì)算節(jié)點(diǎn)的任務(wù)負(fù)載量為NiQ = 1,2,......,m),各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算運(yùn)行時(shí)間為Ti (i = 1,2,……,m),負(fù)載最輕與負(fù)載最重節(jié)點(diǎn)的計(jì)算運(yùn)行