馮鳴夏,伍衛(wèi)國(guó),邸德海
(1.西安交通大學(xué) 電子與信息工程學(xué)院,陜西 西安 710049;2.西安交通大學(xué) 管理學(xué)院,陜西 西安 710049)
隨著高性能計(jì)算的高速發(fā)展,超級(jí)計(jì)算機(jī)的發(fā)展進(jìn)入了一個(gè)蓬勃發(fā)展的新時(shí)代。由國(guó)內(nèi)自主研發(fā)的神威太湖之光[1]實(shí)現(xiàn)了處理器核心全部國(guó)產(chǎn)化,整個(gè)系統(tǒng)擁有1 000萬(wàn)核,處理速度達(dá)到了每秒12.5億億次,在2017年11月的top500排名中再次位居世界第一。高性能計(jì)算是戰(zhàn)略性、前沿性的高新技術(shù),是世界各國(guó)爭(zhēng)奪的戰(zhàn)略制高點(diǎn),是國(guó)家創(chuàng)新體系的重要組成部分。國(guó)內(nèi)已經(jīng)擁有了由19個(gè)高性能計(jì)算中心組成的中國(guó)國(guó)家網(wǎng)格[2],計(jì)算資源能力位居世界前列。
高性能計(jì)算中心都運(yùn)行著獨(dú)立的作業(yè)調(diào)度系統(tǒng)如OpenPBS,Slurm,Condor等。主流的資源管理系統(tǒng)主要由資源管理和作業(yè)管理兩個(gè)部分組成。資源管理服務(wù)主要負(fù)責(zé)對(duì)計(jì)算中心的計(jì)算資源進(jìn)行管理,為被調(diào)度的作業(yè)分配計(jì)算資源。作業(yè)管理服務(wù)主要維護(hù)用戶的作業(yè)隊(duì)列,根據(jù)調(diào)度策略選擇合適的作業(yè)進(jìn)行提交。目前對(duì)大規(guī)模作業(yè)調(diào)度系統(tǒng)的研究主要集中在單計(jì)算中心內(nèi)部的作業(yè)調(diào)度策略,這些調(diào)度算法的設(shè)計(jì)主要考慮到系統(tǒng)吞吐率、利用率和公平性。N.Rathore等[3]通過(guò)網(wǎng)格內(nèi)作業(yè)遷移實(shí)現(xiàn)計(jì)算中心內(nèi)的負(fù)載均衡;李榮盛等[4]提出了基于價(jià)值密度和相對(duì)截止期的作業(yè)調(diào)度算法以提高資源利用率;梁毅等[5]提出的RB-FIFT策略有效地減少了資源碎片;Niu Shuangcheng等[6]提出的基于檢查點(diǎn)的回填策略提高了作業(yè)響應(yīng)時(shí)間;Dan Tsafrir等[7]通過(guò)系統(tǒng)產(chǎn)生作業(yè)預(yù)測(cè)時(shí)間提高作業(yè)回填調(diào)度的準(zhǔn)確性;蔣江等[8]研究了單集群內(nèi)基于多種資源的負(fù)載均衡算法;曹宗雁等[9]提出的基于用戶評(píng)價(jià)的集群作業(yè)優(yōu)先級(jí)調(diào)度提高了用戶服務(wù)質(zhì)量。這些調(diào)度策略只能盡量保證計(jì)算中心內(nèi)部資源的高效利用,并不能保證各個(gè)計(jì)算中心的負(fù)載均衡。于珊珊等[10]針對(duì)多數(shù)據(jù)中心任務(wù)調(diào)度,提出了基于SLA的最大化收益任務(wù)調(diào)度算法。這種調(diào)度算法僅適用于云計(jì)算數(shù)據(jù)中心,而對(duì)于高性能計(jì)算中心并不完全適用。
在國(guó)家高性能計(jì)算環(huán)境中,由于網(wǎng)絡(luò)帶寬和地域等因素,可能會(huì)造成不同計(jì)算中心資源忙閑不均[11]。針對(duì)多計(jì)算中心作業(yè)調(diào)度,采用基于負(fù)載感知和QoS的多中心作業(yè)調(diào)度策略,充分考慮各個(gè)計(jì)算中心的負(fù)載情況和用戶對(duì)作業(yè)的QoS需求,對(duì)作業(yè)進(jìn)行分流,以提高計(jì)算中心的服務(wù)水平。
圖1 多中心作業(yè)服務(wù)示意圖
任務(wù)到達(dá)間距遵循參數(shù)為λ的泊松分布,任務(wù)的服務(wù)時(shí)間遵循參數(shù)為μ的負(fù)指數(shù)分布,這樣的假設(shè)是合理的,并且在許多研究文獻(xiàn)中都支持這種假設(shè)。
(1)
(2)
(3)
根據(jù)式1~3可得:
(4)
單個(gè)計(jì)算中心的服務(wù)滿足M/M/1的排隊(duì)論模型。根據(jù)little公式可知:
計(jì)算中心Ci的等待隊(duì)長(zhǎng)為:
(5)
多計(jì)算中心排隊(duì)總長(zhǎng)度為:
(6)
計(jì)算中心Ci的等待時(shí)間為:
(7)
多計(jì)算中心平均等待時(shí)間為:
(8)
高性能計(jì)算節(jié)點(diǎn)的負(fù)載包括CPU的負(fù)載、內(nèi)存使用率等。與此同時(shí),節(jié)點(diǎn)溫度也是負(fù)載的重要指標(biāo)。定義一個(gè)負(fù)載指數(shù)load_index衡量物理節(jié)點(diǎn)的綜合負(fù)載程度。
對(duì)計(jì)算中心的負(fù)載進(jìn)行劃分:
(1)輕載:當(dāng)空閑節(jié)點(diǎn)比例超過(guò)α?xí)r,表示該計(jì)算中心處于輕載狀態(tài)。
(2)正常:當(dāng)正常節(jié)點(diǎn)的比例超過(guò)β時(shí),表示該計(jì)算中心處于正常狀態(tài)。
(3)過(guò)載:當(dāng)過(guò)載節(jié)點(diǎn)的比例超多γ時(shí),表示該計(jì)算中心處于過(guò)載狀態(tài)。
在計(jì)算中心內(nèi)部負(fù)載正常的情況下,作業(yè)直接分配給最近計(jì)算中心完成,如果計(jì)算中心處于過(guò)載或者故障狀態(tài),這個(gè)作業(yè)就會(huì)分配給其他計(jì)算中心完成。
QoS服務(wù)質(zhì)量是來(lái)源于網(wǎng)絡(luò)性能機(jī)制的參數(shù),但在計(jì)算中心用QoS表示用戶提交的作業(yè)所需求的各種服務(wù)特征參數(shù)。用戶在向計(jì)算中心提交作業(yè)時(shí),對(duì)于計(jì)算平臺(tái)的服務(wù)質(zhì)量有一定的要求。用戶可能將成本的開(kāi)銷、完成時(shí)間、響應(yīng)時(shí)間、平臺(tái)可靠性等作為QoS目標(biāo)約束。滿足用戶對(duì)QoS參數(shù)的要求,可以提高計(jì)算中心的用戶滿意度。因此,計(jì)算中心保證QoS,對(duì)于它向用戶提供的服務(wù)至關(guān)重要。用戶每次提交作業(yè)時(shí),可能會(huì)根據(jù)作業(yè)的特點(diǎn)對(duì)QoS的屬性有不同的偏好。用戶在提交作業(yè)時(shí),同時(shí)會(huì)對(duì)本次作業(yè)的QoS屬性的偏好進(jìn)行選擇。選取計(jì)算中心5個(gè)服務(wù)質(zhì)量屬性作為目標(biāo)約束。
(1)計(jì)算價(jià)格(P)。
用戶將要執(zhí)行的作業(yè)和數(shù)據(jù)上傳到計(jì)算中心,并提交作業(yè)到作業(yè)調(diào)度系統(tǒng)等待獲取可計(jì)算資源,計(jì)算中心會(huì)根據(jù)作業(yè)請(qǐng)求的計(jì)算核數(shù)以及作業(yè)的執(zhí)行時(shí)間收取費(fèi)用。計(jì)算中心的計(jì)算資源通常按照核每小時(shí)進(jìn)行收費(fèi)。
(2)排隊(duì)時(shí)間(Q)。
當(dāng)用戶提交作業(yè)到計(jì)算中心的作業(yè)調(diào)度系統(tǒng),如果當(dāng)前計(jì)算中心的資源無(wú)法滿足作業(yè)提交時(shí)申請(qǐng)的資源時(shí),作業(yè)會(huì)進(jìn)入排隊(duì)狀態(tài)。當(dāng)有空閑資源時(shí),調(diào)度系統(tǒng)會(huì)重新調(diào)度作業(yè),給作業(yè)分配資源。
(3)計(jì)算能力(C)。
不同的計(jì)算中心可能采用不同的硬件資源和不同的網(wǎng)絡(luò)拓?fù)?。?jì)算中心的計(jì)算能力存在差異。如果作業(yè)對(duì)計(jì)算能力有要求,用戶可能會(huì)選擇計(jì)算能力強(qiáng)的計(jì)算中心。
(4)上行傳輸速度(Bin)。
用戶使用計(jì)算中心資源時(shí),首先需要將程序執(zhí)行需要的運(yùn)行數(shù)據(jù)上傳到計(jì)算中心的登錄節(jié)點(diǎn)。對(duì)于大輸入應(yīng)用,生物計(jì)算領(lǐng)域,如BLAST[12],計(jì)算數(shù)據(jù)主要由比對(duì)文件和比對(duì)數(shù)據(jù)庫(kù)兩部分組成。比對(duì)數(shù)據(jù)庫(kù)文件通常很大,用戶上傳需要很長(zhǎng)的時(shí)間。
(5)下行傳輸速度(Bout)。
當(dāng)用戶的程序執(zhí)行結(jié)束后,用戶需要下載程序執(zhí)行結(jié)果時(shí),需要從計(jì)算中心的存儲(chǔ)節(jié)點(diǎn)下載到本地。對(duì)于大輸出應(yīng)用,選擇分子動(dòng)力學(xué)和工程學(xué)中用于產(chǎn)生運(yùn)動(dòng)軌跡的應(yīng)用軟件。如Fluent[13],隨著計(jì)算步數(shù)的增加輸出數(shù)據(jù)會(huì)明顯增加。
用戶根據(jù)作業(yè)的性質(zhì),對(duì)各個(gè)屬性進(jìn)行打分。分?jǐn)?shù)的范圍設(shè)置為0~10。當(dāng)用戶對(duì)某一項(xiàng)評(píng)分為0時(shí),表示不關(guān)心此QoS屬性。
在一個(gè)計(jì)算中心Ci中,計(jì)算價(jià)格是由計(jì)算中心的管理人員制定的,在一段時(shí)間內(nèi)不會(huì)發(fā)生改變;計(jì)算能力由硬件資源和網(wǎng)絡(luò)拓?fù)錄Q定,在一段時(shí)間內(nèi)不會(huì)發(fā)生改變;上行傳輸速度和下行傳輸速度由當(dāng)前網(wǎng)絡(luò)環(huán)境決定,需要定時(shí)測(cè)量;影響排隊(duì)時(shí)間的因素主要由計(jì)算中心內(nèi)排隊(duì)的隊(duì)長(zhǎng)決定。
計(jì)算中心Ci的計(jì)算價(jià)格屬性維度為:
(9)
計(jì)算中心Ci的排隊(duì)時(shí)間屬性維度為:
(10)
計(jì)算中心Ci的計(jì)算能力屬性維度為:
(11)
計(jì)算中心Ci的上行傳輸速度屬性維度為:
(12)
計(jì)算中心Ci的下行傳輸速度屬性維度為:
(13)
該方法實(shí)現(xiàn)對(duì)原始數(shù)據(jù)的等比例縮放,其中X_norm為歸一化后的數(shù)據(jù),X為原始數(shù)據(jù),Xmax、Xmin分別為原始數(shù)據(jù)集的最大值和最小值。
多中心作業(yè)調(diào)度算法首先考慮各個(gè)計(jì)算中心的負(fù)載情況,當(dāng)作業(yè)到來(lái)時(shí),首先將輕載或負(fù)載正常的計(jì)算中心作為備選計(jì)算中心。在此基礎(chǔ)上,考慮用戶作業(yè)對(duì)服務(wù)質(zhì)量的需求,對(duì)作業(yè)和計(jì)算中心進(jìn)行QoS匹配,通過(guò)計(jì)算作業(yè)提交的QoS屬性向量和計(jì)算中心QoS屬性向量的余弦值,找到與作業(yè)親和度Affinity最高的計(jì)算中心。算法描述如下:
算法:基于負(fù)載反饋和QoS約束的多中心作業(yè)調(diào)度算法
輸入:用戶對(duì)QoS屬性的打分,計(jì)算價(jià)格(s1),排隊(duì)時(shí)間(s2),計(jì)算能力(s3),上行傳輸速度(s4),下行傳輸速度(s5)
輸出:最優(yōu)計(jì)算中心
1.for each hub in hubsList do
2.getcurrentState(hub);//獲取每一個(gè)計(jì)算中心的負(fù)載
3.if(hub.state==idle||hub.state==normal)then
4.candidatesList.add(hub);
5.end if
6.end for
7.for each candidate in candidatesList do
8.tmpAffinity=calculteCos(s1,s2,s3,s4,s5);//計(jì)算作業(yè)和計(jì)算中心的親和度
9.if(Affinity 10.bestSelect=candidate; 11.tmpAffinity=Affinity; 12.end if 13.end for 14.return bestSelect 隨著系統(tǒng)規(guī)模不斷擴(kuò)大,系統(tǒng)的故障率也在不斷增加,需要在多中心作業(yè)調(diào)度系統(tǒng)中添加作業(yè)遷移容錯(cuò)機(jī)制,以保證用戶作業(yè)得到更好的服務(wù)?;跈z查點(diǎn)的多中心間作業(yè)遷移容錯(cuò)策略一方面支持傳統(tǒng)的用戶手動(dòng)的檢查點(diǎn)恢復(fù)功能,另一方面解決大量長(zhǎng)時(shí)應(yīng)用在作業(yè)運(yùn)行時(shí)出現(xiàn)異常中斷的問(wèn)題。一些科學(xué)計(jì)算作業(yè)通常都采用并行處理,需要多個(gè)計(jì)算節(jié)點(diǎn)協(xié)同完成。在作業(yè)任務(wù)量比較大的情況下,需要較長(zhǎng)的時(shí)間開(kāi)銷。如果在運(yùn)行過(guò)程中出現(xiàn)異常中斷,只能從頭開(kāi)始計(jì)算。即使作業(yè)支持檢查點(diǎn)機(jī)制,也需要用戶顯示地恢復(fù)作業(yè),這就造成了系統(tǒng)吞吐率下降,影響作業(yè)的響應(yīng)時(shí)間。 當(dāng)計(jì)算中心遇到例行維護(hù)等工作時(shí),系統(tǒng)會(huì)將正在運(yùn)行的作業(yè)掛起,當(dāng)系統(tǒng)恢復(fù)正常時(shí)再重新執(zhí)行掛起的作業(yè)。定期將程序檢查點(diǎn)文件遷移到災(zāi)備計(jì)算中心。目前在計(jì)算中心的調(diào)度系統(tǒng)中,如果某一個(gè)計(jì)算節(jié)點(diǎn)出現(xiàn)問(wèn)題而導(dǎo)致整個(gè)作業(yè)被中斷,必須重新被調(diào)度從頭開(kāi)始運(yùn)行,當(dāng)作業(yè)運(yùn)行時(shí)間較長(zhǎng)時(shí),非常耗費(fèi)資源且無(wú)法保證用戶的服務(wù)體驗(yàn)。多中心間作業(yè)遷移是指將一個(gè)計(jì)算中心的作業(yè)遷移到另一計(jì)算中心運(yùn)行的方法。作業(yè)遷移可以提高計(jì)算中心的負(fù)載均衡,實(shí)現(xiàn)高效的容錯(cuò),為用戶提供更加優(yōu)質(zhì)的服務(wù)。 檢查點(diǎn)技術(shù)廣泛應(yīng)用于程序運(yùn)行中間狀態(tài)的保存和運(yùn)行狀態(tài)的恢復(fù)。當(dāng)前該技術(shù)并未應(yīng)用在多中心作業(yè)遷移的容錯(cuò)策略中。根據(jù)用戶設(shè)定的檢查點(diǎn)同步時(shí)間間隔,當(dāng)檢查點(diǎn)同步時(shí)間到期時(shí),主計(jì)算中心將當(dāng)前作業(yè)檢查點(diǎn)數(shù)據(jù)同步到災(zāi)備計(jì)算中心,檢查點(diǎn)的網(wǎng)絡(luò)傳輸和作業(yè)運(yùn)行是并行的,并不會(huì)對(duì)作業(yè)產(chǎn)生多余的時(shí)間開(kāi)銷。當(dāng)災(zāi)備計(jì)算中心在一定時(shí)間內(nèi)沒(méi)有收到主計(jì)算中心的同步信號(hào)時(shí),則災(zāi)備計(jì)算中心根據(jù)作業(yè)檢查點(diǎn)信息重新提交用戶作業(yè),當(dāng)作業(yè)獲取調(diào)度器分配的資源時(shí),作業(yè)從檢查點(diǎn)處恢復(fù)作業(yè)的執(zhí)行。 在源計(jì)算中心,作業(yè)遷移發(fā)送模塊根據(jù)用戶作業(yè)提交的信息,設(shè)定作業(yè)檢查點(diǎn)遷移周期和災(zāi)備計(jì)算中心。當(dāng)檢查點(diǎn)遷移周期到期時(shí),作業(yè)遷移發(fā)送模塊檢查作業(yè)的運(yùn)行狀態(tài),如果作業(yè)沒(méi)有運(yùn)行結(jié)束,遷移模塊壓縮作業(yè)的檢查點(diǎn)文件并將其同步傳輸?shù)侥繕?biāo)計(jì)算中心。 在災(zāi)備計(jì)算中心,作業(yè)遷移接收模塊定期會(huì)收到源計(jì)算中心的心跳信息和保存作業(yè)的檢查點(diǎn)文件,當(dāng)遷移接收模塊在一段時(shí)間內(nèi)沒(méi)有收到心跳信息,則認(rèn)為源計(jì)算中心發(fā)生故障。遷移接收模塊將從檢查點(diǎn)處提交作業(yè)。 系統(tǒng)可用性(Availability)是信息工業(yè)界用來(lái)衡量一個(gè)信息系統(tǒng)提供持續(xù)服務(wù)的能力,表示在給定時(shí)間系統(tǒng)或者系統(tǒng)某一能力在特定環(huán)境中能夠滿意工作的概率。其計(jì)算方法為: (14) MTTF(mean time to failure,平均無(wú)故障時(shí)間),指系統(tǒng)無(wú)故障運(yùn)行的平均時(shí)間,取所有從系統(tǒng)開(kāi)始正常運(yùn)行到發(fā)生故障之間的時(shí)間段的平均值。即使每一個(gè)零件有很高的可靠性,但組成的系統(tǒng)的MTTF值會(huì)驟然下降。MTTR(mean time to repair,平均修復(fù)時(shí)間),指系統(tǒng)從發(fā)生故障到維修結(jié)束之間的時(shí)間段的平均值。 在目前的作業(yè)調(diào)度系統(tǒng)中,如果計(jì)算節(jié)點(diǎn)發(fā)生故障,在節(jié)點(diǎn)上運(yùn)行的作業(yè)都會(huì)異常退出。用戶需要等待計(jì)算中心故障修復(fù),然后重新從檢查點(diǎn)提交作業(yè)。從用戶角度,從作業(yè)異常退出到作業(yè)再次提交的這段時(shí)間內(nèi),計(jì)算中心的計(jì)算節(jié)點(diǎn)不可用屬于MTTR。MTTR取決于用戶發(fā)現(xiàn)故障的時(shí)間和計(jì)算中心故障修復(fù)的時(shí)間。多計(jì)算中心作業(yè)遷移容錯(cuò)機(jī)制保證了災(zāi)備計(jì)算中心第一時(shí)間發(fā)現(xiàn)用戶作業(yè)發(fā)生故障,遷移調(diào)度模塊自動(dòng)根據(jù)作業(yè)的檢查點(diǎn)信息重新提交作業(yè),大大縮短了由于源計(jì)算中心故障修復(fù)和用戶發(fā)現(xiàn)故障不及時(shí)帶來(lái)的時(shí)間開(kāi)銷。在多中心間作業(yè)遷移容錯(cuò)模型中,當(dāng)災(zāi)備計(jì)算中心探測(cè)到源數(shù)據(jù)中心發(fā)生故障時(shí),將根據(jù)作業(yè)檢查點(diǎn)信息重新提交作業(yè),減少了人為故障探測(cè)和等待計(jì)算中心故障修復(fù)的時(shí)間代價(jià)。整個(gè)遷移容錯(cuò)過(guò)程大大降低了MTTR,從而提高了系統(tǒng)的可用性?;跈z查點(diǎn)的作業(yè)遷移流程如圖2所示。 圖2 多中心作業(yè)遷移容錯(cuò)示意圖 檢查點(diǎn)生成之后,源中心的遷移發(fā)送模塊需要將檢查點(diǎn)文件傳輸?shù)綖?zāi)備計(jì)算中心,檢查點(diǎn)的傳輸和作業(yè)的運(yùn)行是異步進(jìn)行的,影響程序執(zhí)行的主要因素是作業(yè)檢查點(diǎn)的開(kāi)銷。由于一些作業(yè)生成的檢查點(diǎn)文件較大,需要在傳輸前進(jìn)行壓縮處理。壓縮可以有效地減少傳輸帶來(lái)的開(kāi)銷。 仿真工具使用GridSim[14],它是澳大利亞墨爾本大學(xué)開(kāi)發(fā)的基于Java離散事件的網(wǎng)格仿真工具,基于SimJava開(kāi)發(fā)。該工具支持對(duì)網(wǎng)格資源、用戶和應(yīng)用的仿真和建模。它提供了創(chuàng)建應(yīng)用任務(wù)和網(wǎng)格資源管理調(diào)度的方法。仿真結(jié)束后,用戶可以調(diào)用GridSim中稱為GridStatisties的庫(kù)函數(shù)來(lái)收集各種模擬的統(tǒng)計(jì)資料。 利用GridSim構(gòu)建了4個(gè)計(jì)算中心,計(jì)算中心的資源情況如表1所示。 仿真使用的實(shí)驗(yàn)數(shù)據(jù)集是由捷克國(guó)家電網(wǎng)基礎(chǔ)設(shè)施MetaCentrum提供的Zewura工作日志[15]。Zewura日志包含五個(gè)月的執(zhí)行工作(2012年1月-5月)從TORQUE跟蹤生成的數(shù)據(jù)集。該日志包括17 257個(gè)作業(yè)。 將提出的Laq算法和兩種主流的負(fù)載均衡算法Random、RoundRobin分別從作業(yè)總完成時(shí)間、作業(yè)平均響應(yīng)時(shí)間、作業(yè)平均等待時(shí)間、計(jì)算中心平均負(fù)載等多個(gè)維度進(jìn)行比較,如圖3所示。 圖3 多計(jì)算中心服務(wù)性能比較 由仿真結(jié)果可得,相比Random和RoundRobin,Laq算法顯著降低了多計(jì)算中心作業(yè)的完成時(shí)間、平均響應(yīng)時(shí)間、平均等待時(shí)間。在Laq算法的作業(yè)調(diào)度策略下使各個(gè)計(jì)算中心保持相對(duì)平均的負(fù)載,合理利用和分配計(jì)算資源,提高了資源利用率。 針對(duì)分布在不同地域的計(jì)算中心存在計(jì)算資源忙閑不均,缺少統(tǒng)一調(diào)度和管理的問(wèn)題,提出了一種基于負(fù)載感知和QoS的多中心作業(yè)調(diào)度算法。該算法根據(jù)各個(gè)計(jì)算中心的負(fù)載情況將需要處理的作業(yè)分配給負(fù)載較輕的計(jì)算中心,充分考慮到用戶的QoS需求,將作業(yè)盡量調(diào)度到符合用戶QoS需求的計(jì)算中心,從而提高計(jì)算中心的服務(wù)水平。通過(guò)與Random和RoundRobin的仿真對(duì)比,證明了該算法的有效性。4 基于檢查點(diǎn)的多中心間作業(yè)遷移容錯(cuò)策略
4.1 多中心間作業(yè)遷移
4.2 多中心系統(tǒng)的可用性分析
5 仿真實(shí)驗(yàn)分析與比較
6 結(jié)束語(yǔ)