王鵬偉,雷穎慧,趙玉瑩,章昭輝
(東華大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201620)
工作流是一組具有依賴性的任務(wù)組成的用于完成特定功能的集合。部署在計算機(jī)上的工作流,其依賴性通常由數(shù)據(jù)的傳輸表示,并且決定了任務(wù)的執(zhí)行順序。不同的工作流具有不同的拓?fù)浣Y(jié)構(gòu),如管道、數(shù)據(jù)分布和數(shù)據(jù)聚合,也有不同的資源需求,包括中央處理器(central processing unit,CPU)、內(nèi)存、輸入/出(Input/Output,I/O)等。不同需求所要求的資源類型也不同,在CPU密集的工作流中,任務(wù)需要更多的時間來實(shí)行計算。在內(nèi)存密集型的工作流中,任務(wù)需要較高的物理內(nèi)存使用量。而對于I/O密集型工作流,它需要更多的時間執(zhí)行I/O操作。由于復(fù)雜的工作流(如科學(xué)工作流)規(guī)模大、任務(wù)量多、結(jié)構(gòu)復(fù)雜,而云計算這種靈活按需的使用模式則很好地為其提供了一種更加高效的運(yùn)行環(huán)境。
云工作流結(jié)合了云計算和工作流的諸多特點(diǎn),是普通工作流往云計算環(huán)境下進(jìn)行遷移所得。云工作流調(diào)度是指用戶所提交的工作流任務(wù)分配到合適的計算資源上執(zhí)行,并根據(jù)資源的使用量即時地支付相應(yīng)費(fèi)用。在云計算環(huán)境中執(zhí)行工作流調(diào)度時,有兩個問題需要考慮,一個是資源的調(diào)配,包括確定工作流需要的云資源類型和數(shù)量,這意味著需要確定租用多少臺實(shí)例、它們的類型,以及何時啟動,何時關(guān)閉等問題。還有一個問題是實(shí)際的調(diào)度或任務(wù)分配階段,將每個任務(wù)都映射到最合適的資源上。在現(xiàn)有的研究中,通常結(jié)合了這兩個問題一起考慮。
上午快八點(diǎn)的時候,宋市長的秘書以及相關(guān)部門的負(fù)責(zé)人看到宋市長的專車還停在原地,也就不很著急,按慣例或開小車或騎摩托車或騎自行車魚貫而行,不慌不忙前去鎮(zhèn)里開會。哪里料到,一進(jìn)入會場,宋市長已端坐主席臺上,用嚴(yán)厲的目光掃視著每一個人。大家匆忙就坐后,主持人就宣布會議開始了。
隨著工作流規(guī)模和計算量的不斷增長,它們對分布式基礎(chǔ)設(shè)施的需求也逐漸加大,如何在分布式環(huán)境中有效地調(diào)度和部署工作流,是一個值得研究的問題。由于能夠提供近乎“無限”資源的特性,云計算可以令個人或組織在不需要構(gòu)建基礎(chǔ)設(shè)施的前提下,按照需要獲取、配置和使用云資源,并按使用進(jìn)行付費(fèi)。根據(jù)云資源的特性,為了使成本、性能等指標(biāo)達(dá)到最優(yōu),需要進(jìn)行良好的調(diào)度和優(yōu)化,特別是當(dāng)多個指標(biāo)需要同時優(yōu)化時,這個問題變得更具挑戰(zhàn)性。
工作流調(diào)度,不管在哪種環(huán)境下執(zhí)行,其目的都在于得到一個好的調(diào)度方案,將任務(wù)和資源做一個映射,保證工作流的成功執(zhí)行,并優(yōu)化某些指標(biāo)。已有的工作流調(diào)度相關(guān)研究,根據(jù)求解方式主要可以分為基于給定約束[1-3]、基于帕累托解[4-6]和基于權(quán)重[7-8]的三類方法。這些相關(guān)研究大多將單獨(dú)的任務(wù)和云實(shí)例匹配起來,一個任務(wù)分配到一個實(shí)例上,一個實(shí)例可能也只被分配到一個任務(wù)。而工作流是一個有數(shù)據(jù)依賴性的結(jié)構(gòu),這么做忽略了頻繁的數(shù)據(jù)通信可能帶來的成本和時間上升,以及故障增加的風(fēng)險。為此,本文中提出了一種基于集聚系數(shù)的工作流切片與多云優(yōu)化調(diào)度框架(clustering coefficient-based workflow fragmentation and scheduling,CWFS)。該框架首先采用聚類的方式將工作流初步切分成若干個子工作流,然后利用集聚系數(shù)來優(yōu)化調(diào)整切片結(jié)果。在優(yōu)化調(diào)度的過程中,根據(jù)云實(shí)例的實(shí)際情況,利用集聚系數(shù)動態(tài)地調(diào)整工作流切片并完成調(diào)度。
工作流由于其任務(wù)之間存在數(shù)據(jù)傳輸而具有依賴性。在工作流調(diào)度過程中,將工作流中的任務(wù)和云計算資源匹配,不僅要注意任務(wù)本身的執(zhí)行需求,也要注意任務(wù)之間的數(shù)據(jù)通信帶來的消耗。對于一些工作流,尤其是數(shù)據(jù)通信密集型的工作流來說,頻繁或者大量的數(shù)據(jù)通信都會影響總完工時間和執(zhí)行成本。此外,如果有頻繁數(shù)據(jù)傳輸關(guān)系的任務(wù)或者大數(shù)據(jù)量的任務(wù)部署在不同的云資源上,在數(shù)據(jù)傳輸過程中,更容易出現(xiàn)錯誤,導(dǎo)致發(fā)生故障重傳的概率更大,容易影響后面的任務(wù)執(zhí)行。
圖1展示了一個包含15個任務(wù)的工作流,任務(wù)之間有數(shù)據(jù)傳輸?shù)年P(guān)系。由于工作流的依賴性,任務(wù)要想開始必須等到它的父任務(wù)將數(shù)據(jù)傳輸完成。以任務(wù)7為例,任務(wù)7的父任務(wù)是任務(wù)3和任務(wù)4,分別要傳輸2 000個單位和10個單位的數(shù)據(jù)。而任務(wù)3和任務(wù)4有共同的父任務(wù):任務(wù)1,其要分別傳輸1 000單位和30單位的數(shù)據(jù)給任務(wù)3和任務(wù)4。那么對于任務(wù)7來說,要想開始執(zhí)行,必須等到任務(wù)1執(zhí)行完畢后傳輸數(shù)據(jù)給任務(wù)3、4,再等到任務(wù)3、4執(zhí)行完畢后傳輸數(shù)據(jù)給任務(wù)7。在這個過程中,任務(wù)1和任務(wù)3、任務(wù)3和任務(wù)7之間傳輸?shù)臄?shù)據(jù)量遠(yuǎn)遠(yuǎn)大于任務(wù)1和任務(wù)4、任務(wù)4和任務(wù)7之間的數(shù)據(jù)量。這也就意味著,假設(shè)任務(wù)所在云實(shí)例傳輸帶寬相等,任務(wù)1執(zhí)行完畢后,任務(wù)3等待數(shù)據(jù)傳輸?shù)臅r間是任務(wù)4的33倍。而任務(wù)7要想開始,等待任務(wù)3傳輸數(shù)據(jù)的時間是等待任務(wù)4傳輸時間的200倍??梢钥闯觯写罅康臅r間被浪費(fèi)在了等待其中一個父任務(wù)傳輸數(shù)據(jù)的時間。如果將任務(wù)1、任務(wù)3、任務(wù)7放在同一個云實(shí)例上,那么任務(wù)7需要的數(shù)據(jù)傳輸時間只是任務(wù)1到任務(wù)4,與任務(wù)4到任務(wù)7的數(shù)據(jù)傳輸時間之和。而此時,一共只有40個單位的數(shù)據(jù)傳輸,顯然會大大減少數(shù)據(jù)傳輸帶來的成本和時間消耗。
圖1 一個有15個任務(wù)的工作流Fig.1 A workflow with 15 tasks
因此,在進(jìn)行工作流的優(yōu)化調(diào)度時,減少工作流任務(wù)在不同資源之間的數(shù)據(jù)傳輸來保證完工時間滿足截止期約束,以及其他的一些優(yōu)化目標(biāo),是一個值得關(guān)注的研究方向。從上述場景中可以看出,需要將工作流切分成若干個子工作流,使得子工作流內(nèi)數(shù)據(jù)傳輸盡量頻繁,子工作流之間的數(shù)據(jù)傳輸盡量少,即子工作流內(nèi)聚性強(qiáng),外聯(lián)性弱。在已有的研究中,研究者們通常會為每一個任務(wù)分配一個獨(dú)立的云資源,任務(wù)在不同云之間頻繁的數(shù)據(jù)通信不利于充分地利用云資源,以及更好地節(jié)約成本和時間。
工作流切片要求帶來的效果類似于聚類:類內(nèi)元素相似程度高,類外元素相似程度低。因此可以將工作流切片建模成一個聚類問題,利用任務(wù)間的數(shù)據(jù)量來衡量任務(wù)間的關(guān)系。另外,如果只考慮工作流切片,那么切片結(jié)果有可能超過實(shí)際的云實(shí)例可用負(fù)載。以圖1為例,當(dāng)任務(wù)1、3、7被劃分為一個子工作流時,可以使其內(nèi)部數(shù)據(jù)傳輸量大,外部少。但是考慮到執(zhí)行任務(wù)的計算需求和云實(shí)例的承載能力,如果沒有一個合適的云實(shí)例能夠容納這個子工作流,那么必須要對它再次進(jìn)行調(diào)整。因此在進(jìn)行優(yōu)化調(diào)度過程中,依然需要對切片的結(jié)果進(jìn)行動態(tài)調(diào)整,使得云資源的利用率達(dá)到一個合理的范圍。
集聚系數(shù)概念誕生于圖論,表示一個圖中頂點(diǎn)的聚集程度。不同于判斷類性能的標(biāo)準(zhǔn),集聚系數(shù)更關(guān)注節(jié)點(diǎn)間的密度。當(dāng)節(jié)點(diǎn)間關(guān)系緊密時,那么它們的集聚系數(shù)就會變高。如果一個節(jié)點(diǎn)相連的節(jié)點(diǎn)之間有關(guān)系,表示這個群體相互之間比較緊密,那么也會有一個比較高的集聚系數(shù)。集聚系數(shù)有局部集聚系數(shù)和平均集聚系數(shù),前者給出了單個節(jié)點(diǎn)的度量,可以判斷圖中每個節(jié)點(diǎn)附近的集聚程度,后者旨在度量整個圖的平均集聚性。在近期研究中,集聚系數(shù)被廣泛應(yīng)用于社交網(wǎng)絡(luò)分析、可視化網(wǎng)絡(luò)安全分析、小世界網(wǎng)絡(luò)分析等領(lǐng)域。Murray等[9]引入集聚系數(shù)來描述小世界模型。集聚系數(shù)可以用于判斷聚類的效果,Zhong等[10]使用其來解決詞關(guān)系的聚類問題。
工作流因?yàn)槿蝿?wù)間有數(shù)據(jù)傳輸?shù)年P(guān)系,將數(shù)據(jù)傳輸量大的任務(wù)劃分成一個子工作流,這樣子工作流之間的數(shù)據(jù)傳輸就會減少。因此可以采用聚類的方法進(jìn)行工作流的切片研究。很多聚類算法都基于一些給定的值來進(jìn)行聚類,這要求使用者必須擁有該領(lǐng)域的一定先驗(yàn)知識。動態(tài)的聚類算法可以根據(jù)實(shí)際情況來分析模型結(jié)構(gòu)來給出k值,但是缺少一個良好的標(biāo)準(zhǔn)來判斷類內(nèi)元素的整體相似度。為此,引入圖論中的集聚系數(shù),來幫助判斷子工作流內(nèi)部和外部的聚集程度。
給定一個工作流的有向無環(huán)圖模型(direct acyclic graph,DAG)G=(T,E),其中T是n個任務(wù)的集合t={t1,t2,…,tn},E是任務(wù)之間依賴關(guān)系的集合,E={ei,j|i,j=0,1,2,…,m}。依賴關(guān)系ei,j表示了任務(wù)ti和任務(wù)tj的依賴約束,它意味著任務(wù)tj必須等到任務(wù)ti執(zhí)行完畢才能開始執(zhí)行。如果兩個任務(wù)之間有數(shù)據(jù)傳輸?shù)男袨?,那么認(rèn)為DAG圖中這兩個任務(wù)之間有一條邊。每個任務(wù)與其他任務(wù)連接的邊的集合用N來表示。Ni表示與任務(wù)ti連接的邊的集合。|Ni|表示集合的度,即邊的數(shù)量。任務(wù)ti的局部集聚系數(shù)LCi是它的相鄰任務(wù)之間的邊的數(shù)量與它們所有可能存在邊的數(shù)量的比值。
工作流轉(zhuǎn)換成的DAG圖是一個有向圖,任務(wù)間數(shù)據(jù)的傳輸可以視為邊的權(quán)重。權(quán)重對于集聚系數(shù)的計算影響頗大。不同的權(quán)重定義所表示的集聚系數(shù)緊密程度也不同。如果權(quán)重代表的是距離,那么權(quán)重越小頂點(diǎn)間的關(guān)系更為緊密;如果權(quán)重表示的是關(guān)系值,那么權(quán)重越大頂點(diǎn)間的關(guān)系越緊密。本文中研究的問題,需要將數(shù)據(jù)量大的任務(wù)聚集在一起,因此任務(wù)間數(shù)據(jù)量越大,表示它們越應(yīng)該聚集在一起,它們的關(guān)系應(yīng)該更緊密。因此,工作流任務(wù)的局部集聚系數(shù)可以定義為式(2)。
工作流是一個有向圖,因此其完全圖的邊的數(shù)量是n×(n-1)。Neighbori和Ni的定義同式(1)中相同,但是這里兩個定義都是針對有向圖,eA,B≠eB,A。Weighti表 示 集 合Ni中 的 權(quán) 重 和,。以圖2a中的任務(wù)tA為例,與它有邊的關(guān)系的任務(wù)是tB、tD、tE,因此,其度為3。而在三個相連的任務(wù)中,只有任務(wù)tD、tE之間有邊的關(guān)系,因此,那么根據(jù)式(2),任務(wù)tA的局部集聚系數(shù)為表 示權(quán)重。
圖2 無向無權(quán)圖和有向無環(huán)有權(quán)圖Fig.2 An undirected unweighted graph and a directed acyclic weighted graph
從式(1)和(2)中可看出,無向無權(quán)圖的任務(wù)局部集聚系數(shù)總是在0~1之間。0表示附近任務(wù)之間沒有抱團(tuán)的關(guān)系,而1表示附近任務(wù)之間聯(lián)系緊密,接近完全圖。有向有權(quán)圖中,當(dāng)任務(wù)與其相鄰任務(wù)接近完全圖,并且任務(wù)間的權(quán)重趨近于+∞時,任務(wù)的局部集聚系數(shù)值趨近于+∞。得到任務(wù)的局部集聚系數(shù)還不足以判斷整個圖的聚集情況。Watts和Strogatz定義了平均集聚系數(shù)[11],通過計算平均值來得到整個圖的集聚程度,即
將工作流切成若干個子工作流后,根據(jù)子工作流內(nèi)部任務(wù)之間的數(shù)據(jù)聚集程度和子工作流之間的數(shù)據(jù)聚集程度判斷切片的質(zhì)量。假設(shè)工作流切分后,有 子 工 作 流A,GA={T A,EA}和B,GB={T B,EB}。子工作流A的集聚程度如式(3)所示。其中,ti表示第i個任務(wù),T A表示子工作流A內(nèi)包含的任務(wù)集合,ei,j表示任務(wù)ti和tj之間的邊,EA表示子工作流A內(nèi)部包括的邊的集合,LCi表示任務(wù)ti的局部集聚系數(shù)。
3.2.2 切片優(yōu)化
圖3是一個被切分成4個子工作流的工作流。虛線圈起的部分表示被切分的子工作流。虛箭頭表示子工作流之間的數(shù)據(jù)傳輸,實(shí)箭頭表示子工作流內(nèi)部的數(shù)據(jù)傳輸。對于子工作流A來說,如果inter(A,B)大于introA,說明子工作流A和子工作流B的類間集聚程度要大于子工作流A的類內(nèi)集聚程度,將那些與子工作流A有邊的關(guān)系但是屬于子工作流B的任務(wù)劃分給子工作流A可以提高A的集聚程度。同理,如果inter(B,A)大于introB,則說明把子工作流A中那些與子工作流B有邊的關(guān)系的任務(wù)劃分給子工作流B更好。當(dāng)inter(A,B)≥introA和inter(B,A)≥introB同時成立時,說明子工作流A和子工作流B各自的類內(nèi)集聚程度都沒有它們受另一個子工作流關(guān)聯(lián)的類間集聚程度強(qiáng),因此將它們合并成一個新子工作流,可以獲得更高的集聚程度。同理,如果子工作流A可以被分成A1和A2兩個子工作流,且有inter(A1,A2)<introA1和inter(A2,A1)<introA2同時成立。那么說明與子工作流A相比,切分成的兩個新子工作流有更高的集聚程度。
圖3 一個被切分的工作流Fig.3 A segmented workflow
通過不斷地優(yōu)化調(diào)整工作流切片結(jié)果,可以保證子工作流內(nèi)的數(shù)據(jù)依賴較強(qiáng),子工作流間的數(shù)據(jù)依賴程度較弱。
CWFS的目的是通過將工作流切分成若干個子工作流,再使用優(yōu)化算法為它們找到合適的云實(shí)例,在減少數(shù)據(jù)傳輸依賴的情況下,找到滿足優(yōu)化目標(biāo)的調(diào)度方案。CWFS包括兩個部分:基于集聚系數(shù)的工作流切片和基于切片的優(yōu)化調(diào)度。整體框架如圖4所示。
基于集聚系數(shù)的工作流切片分為兩步,首先使用聚類算法,根據(jù)任務(wù)間的數(shù)據(jù)通信量對工作流進(jìn)行一個初步的切片,將通信量較大的任務(wù)聚成一個類。得到初步的切片結(jié)果后,根據(jù)第4節(jié)中關(guān)于集聚系數(shù)的相關(guān)定義,以及對切片內(nèi)部和切片之間緊密度的判斷公式,對工作流初步切片結(jié)果進(jìn)行優(yōu)化調(diào)整,使得調(diào)整后的子工作流內(nèi)聚性強(qiáng),外聯(lián)性弱,從而得到一個基于集聚系數(shù)的工作流切片結(jié)果。
在工作流切片過程中,只考慮了任務(wù)間的通信情況,而沒有考慮實(shí)際的云實(shí)例承載能力。因此,在基于切片的優(yōu)化調(diào)度過程中,使用啟發(fā)式算法進(jìn)行尋優(yōu)時,根據(jù)云實(shí)例的實(shí)際情況,可能會出現(xiàn)子工作流超過云實(shí)例的承載能力或者只占云實(shí)例承載能力的一小部分,造成無法找到合適的實(shí)例或者造成浪費(fèi)的現(xiàn)象。因此在工作流優(yōu)化調(diào)度時,需要根據(jù)實(shí)際情況動態(tài)地調(diào)整切片結(jié)果,使其可以找到合適的調(diào)度方案。CWFS框架的輸出是一個工作流-云計算資源的調(diào)度方案。
3.2.1 初步切片
取消上述兩類門診之后,寧波一院開設(shè)全科門診,增開老年醫(yī)學(xué)科門診,增加內(nèi)科??崎T診。同時,醫(yī)院嚴(yán)格控制門診慢性藥物使用,每人次門診慢病用藥不超7天量,希望引導(dǎo)慢病患者到基層配藥。
工作流是一組有依賴關(guān)系的任務(wù)集合。根據(jù)任務(wù)之間的數(shù)據(jù)依賴將工作流切分成若干個子工作流,其過程類似于聚類。本節(jié)采用K均值聚類算法(K-means)來進(jìn)行工作流的初步切片工作,主要包括以下步驟:
其次,對照語料選用的是北語語料。盡管統(tǒng)計分析結(jié)果顯示文學(xué)類與非文學(xué)類語料之間在字頻和詞頻方面的異與同,但是,若能選用同時代或不同時代典型作家的語料進(jìn)行對比,則更能突顯魯迅小說遣詞用字的特點(diǎn)。
本橋梁直接橫跨某既有高速公路,和高速公路一定角度相交,墩身和高速公路的邊坡直相緊挨,場地限制較大,現(xiàn)場施工條件相對較差。除此之外,公路的車流量很大,橫跨高速公路進(jìn)行施工,安全保障難度較大。通過現(xiàn)場考察以后,決定采用龍門吊進(jìn)行吊裝施工。在臨時支架進(jìn)行腹桿拼裝后,采用空門吊將其安放在橫梁要求的位置。在橫梁上,一般設(shè)置有調(diào)整機(jī)構(gòu),主要用于線性調(diào)整。
(1)導(dǎo)入工作流,并且將它轉(zhuǎn)換成擁有一個虛擬入口任務(wù)(tentry)和虛擬結(jié)束任務(wù)(texit)的DAG圖。
為了驗(yàn)證所提方法的有效性,使用真實(shí)的工作流Cybershake[13]、Epigenomics和Montage[14]來進(jìn)行性能評估,實(shí)驗(yàn)選用任務(wù)數(shù)量為100的工作流進(jìn)行實(shí)驗(yàn)。
為了求解式(4)關(guān)節(jié)速度q′,對非方陣J(q)進(jìn)行轉(zhuǎn)置.利用權(quán)值右側(cè)廣義逆矩陣,得到了一個特殊的逆矩陣[7]:
如 果 inter(A,B)≤introA+B成 立,同 時inter(B,A)≤introA+B也成立。那么子工作流A和子工作流B可以合成為一個新的子工作流(A+B)。
(3)遍歷工作流的每一個任務(wù),計算它們和聚類中心之間的數(shù)據(jù)傳輸量。如果一個任務(wù)到每一個聚類中心都沒有直接的數(shù)據(jù)傳輸,那么通過計算它的父任務(wù)們的數(shù)據(jù)傳輸情況來判斷它們應(yīng)該屬于哪一類,并且將它們分別加入數(shù)據(jù)量最大的聚類中心所在的類中。
(4)當(dāng)所有任務(wù)都加入到某個類中后,每個類重新計算聚類中心。計算類中每個任務(wù)到其他任務(wù)的數(shù)據(jù)量,將最大的那個任務(wù)定義為新的聚類中心,一輪迭代結(jié)束。
(5)判斷新的k個聚類中心和上一輪迭代相比是否有變化,有則跳轉(zhuǎn)步驟(3);若否,則迭代結(jié)束,進(jìn)行步驟(6)。
(6)得到工作流初步切片結(jié)果,輸出k個子工作流集合。
僅靠子工作流內(nèi)部的集聚程度無法判斷工作流切片的合理性,需要對子工作流之間的集聚程度進(jìn)行判斷。下面定義類間集聚系數(shù)[10],公式(4)是對子工作流A而言,其與子工作流B之間的類間集聚系數(shù)。inter(A,B)強(qiáng)調(diào)的是A受B關(guān)聯(lián)的類間集聚系數(shù)。如果是B受A關(guān)聯(lián)的類間集聚系數(shù),那么計算公式變?yōu)閕nter(B,A)。
鐵路通信系統(tǒng)中UPS不間斷電源原理及使用維護(hù)分析……………………………………………………… 崔圣青(4-88)
采用K-means算法進(jìn)行初步切分時,k值的選擇是基于使用者自己的經(jīng)驗(yàn)和判斷,無法證明劃分成k個子工作流是合適的。可能某些工作流中有些任務(wù)需要被劃分出去,而有些子工作流需要合并成一個新的工作流,憑自身經(jīng)驗(yàn)很難直接判斷這一點(diǎn)。為此,優(yōu)化的工作流切片要求在初步切片后采用合理的方法對初步切片結(jié)果進(jìn)行合理的調(diào)整,因此要使用第2節(jié)提到的用于工作流切片的集聚系數(shù)。如第2節(jié)所述,有兩個衡量的標(biāo)準(zhǔn)——類間集聚系數(shù)和類內(nèi)集聚系數(shù),可以幫助衡量工作流切片后的結(jié)果,判斷它們是否需要進(jìn)一步切分或合并。下面首先給出兩個定義。
定義1子工作流分割 :現(xiàn)有子工作流A,如果滿足下列條件,那么子工作流A將切分成子工作流A1和子工作流A2。
如果introA<inter(A1,A2)成立,同時introA<inter(A2,A1)也成立。那么子工作流A可以被分割成新的子工作流A1和子工作流A2。
3)基本頂組成及運(yùn)動特點(diǎn)。由于工作面存在明顯的頂板周期來壓顯現(xiàn),因此基本頂?shù)闹芷谛詳嗔咽瞧渲饕\(yùn)動特征。工作面基本頂主體巖層為粗砂巖,厚度8 m,周期斷裂步距約20 m。
定義2子工作流合并 :現(xiàn)有子工作流A和B,如果兩者滿足下列條件,那么子工作流A和B將合并成一個新的子工作流(A+B)。
(2)根據(jù)實(shí)驗(yàn)工作流的大小,指定合適的k值,從工作流的任務(wù)集合中,隨機(jī)選擇k個任務(wù)作為初始的聚類中心(不包括兩個虛擬任務(wù))。
切片優(yōu)化就是對工作流進(jìn)行初步切分后,利用定義1和定義2對初步切分后的子工作流集合不斷地進(jìn)行優(yōu)化調(diào)整的過程。迭代的終止條件可以根據(jù)設(shè)置的標(biāo)準(zhǔn)或者迭代次數(shù)來確定。每次迭代分為子工作流分割和子工作流合并兩部分操作。首先是對導(dǎo)入的工作流進(jìn)行一個初始切片的工作,得到初步切分好的子工作流集合后,給每個子工作流添加“0”的標(biāo)記。
分割操作過程為:依次從未處理的子工作流集合中取出一個子工作流,對其進(jìn)行預(yù)分割操作,預(yù)分割即為依次將子工作流分為兩份,利用類內(nèi)集聚系數(shù)和類間集聚系數(shù)來判斷預(yù)分割結(jié)果是否可行;如果滿足定義1,則此次分割操作可以進(jìn)行,并且將兩個新得到的子工作流標(biāo)記改為“1”;如果不可行則放棄此次分割操作,并且給該子工作流的狀態(tài)改為“1”;接著繼續(xù)從標(biāo)記“0”的工作流中拿出下一個子工作流進(jìn)行處理。當(dāng)未處理的子工作流集合為空時,表示這輪迭代的分割操作已經(jīng)全部結(jié)束,進(jìn)入合并操作。
合并操作過程如下:取出一個標(biāo)記為“1”的子工作流,計算它的類內(nèi)集聚系數(shù),以及該工作流和其關(guān)聯(lián)子工作流之間的類間集聚系數(shù),判斷它們是否滿足定義2;如果滿足則對兩個子工作流進(jìn)行合并,并且將合并后的新子工作流的狀態(tài)變?yōu)椤?”;依次取集合中的子工作流,直到集合為空;此時迭代中的合并操作也已經(jīng)完成。如果此輪迭代滿足了迭代停止條件,那么將輸出一個經(jīng)過切片優(yōu)化調(diào)整的子工作流集合;如果不滿足,則跳轉(zhuǎn)到分割操作繼續(xù)進(jìn)行切片工作。
求知欲是兒童思維的原動力。根據(jù)兒童的心理特征。教學(xué)中,我們更應(yīng)該創(chuàng)設(shè)誘發(fā)學(xué)習(xí)動機(jī)的教學(xué)情境,把學(xué)生的不隨意注意吸引到參與學(xué)習(xí)的興趣上來,引導(dǎo)他們對數(shù)學(xué)問題積極思考與探索,從而達(dá)到掌握知識、發(fā)展智能的目的。
為了降低工作流調(diào)度過程的數(shù)據(jù)通信量,減少完工時間,在對工作流進(jìn)行切片的基礎(chǔ)上,本節(jié)中給出一種基于切片和基于免疫粒子群優(yōu)化算法(immune-based particle swarm optimization,IMPSO)[12]的工作流多云優(yōu)化調(diào)度方法。
工作流模型用DAG圖表示,其中G=(T,E),T={t1,t2,…,tn}表示工作流任務(wù)集合,每個任務(wù)的參 數(shù) 為 ti=(id,namespace,name,size);其 中namespace為任務(wù)所屬的工作流名稱,name為任務(wù)名稱,size是任務(wù)需要的計算量。邊的集合E={ei,j|i,j=0,1,2,…,N}, 其 中ei,j=(orig,dest,data),分別表示父任務(wù)、子任務(wù)和它們之間傳輸?shù)臄?shù)據(jù)量。選擇的依然是云實(shí)例類型,不對更底層的結(jié)構(gòu)進(jìn)行考慮。云實(shí)例instancei=(id,speed,cost,bandwidth,bdprice,type),其 中 ,speed表示云實(shí)例計算能力;cost是一個時間單位內(nèi)的成本;bandwidth為帶寬;bdprice為單位傳輸量的傳輸價格;type為實(shí)例類型。用戶將工作流提交到調(diào)度器進(jìn)行處理時,對于切片后的子工作流,調(diào)度器將它們調(diào)度在同一資源節(jié)點(diǎn)上,此時子工作流內(nèi)部的傳輸成本和時間均為0。因此子工作流subi的總成本和總完工時間分別為:
兩次獲得法國攝影聯(lián)合會組織的“國家自然競賽”獎,在2002年和2003年的美國攝影協(xié)會名人錄中位居世界第10位自然類攝影師,1998年被英國皇家攝影學(xué)會提名為自然攝影獎,在肖像攝影大師杯2009年業(yè)余節(jié)中獲獎,2011年想像虛擬布宜諾斯艾利斯-阿根廷國際展覽中獲最佳作者,2011年在法國國際展覽中獲第二名。
由于不需要計算傳輸成本,因此子工作流subi的總成本即為各個任務(wù)的執(zhí)行成本的總和。EC(tj,I)是任務(wù)在實(shí)例上執(zhí)行的成本;子工作流的完工時間由其內(nèi)部最后執(zhí)行的任務(wù)的結(jié)束時間決定,值得注意的是,子工作流和工作流不同,為了方便計算,通常會在工作流開始和結(jié)束的位置分別加一個虛擬的任務(wù),因此工作流的開始和結(jié)束任務(wù)只有一個。而切片的子工作流可能會有多個可以同時開始的任務(wù)和多個結(jié)束任務(wù)。因此,子工作流的完工時間應(yīng)是結(jié)束時間最晚的那個任務(wù)。而公式(6)中的CHILD(tj)=?指的是在該子工作流內(nèi)部沒有子任務(wù),并不一定在整個工作流中沒有子任務(wù)。任務(wù)的結(jié)束時間由公式(7)和(8)決定,同樣式(7)中,PRED(ti)=?指的是任務(wù)在子工作流內(nèi)沒有父任務(wù)。
因此,工作流調(diào)度的優(yōu)化目標(biāo)如下所示:
由此,對于整個工作流W來說,總的成本和時間可以計算得到:
IMPSO方法引入了免疫機(jī)制,在粒子尋找全局最優(yōu)解的過程中,不斷地進(jìn)行免疫操作來加強(qiáng)粒子的尋解能力。關(guān)于IMPSO方法的詳細(xì)介紹可參考文獻(xiàn)[12]。將工作流切片結(jié)果作為IMPSO的輸入時,由于切片過程沒有考慮到真實(shí)的云實(shí)例的承載能力??赡艽嬖谇衅^云實(shí)例的容量的情況。因此,在使用IMPSO進(jìn)行優(yōu)化調(diào)度的過程中,依然需要動態(tài)地對切片結(jié)果進(jìn)行調(diào)整。在尋優(yōu)過程中,粒子尋找到的解是一個切片-實(shí)例關(guān)系對,如果切片過大找不到合適的云實(shí)例類型,那么根據(jù)提出過的抗體和抗原之間的親和力公式,粒子的某一維和當(dāng)前最優(yōu)粒子之間的距離是無窮大的,那么根據(jù)公式計算得到的親和度就會為0;這意味著,該粒子中存在需要分割的工作流切片,即需要調(diào)用工作流切片模塊來調(diào)整。
圖5展示了基于切片和IMPSO算法的工作流多云優(yōu)化調(diào)度方法的流程圖。對于待執(zhí)行的工作流進(jìn)行基于集聚系數(shù)的工作流切片后,調(diào)用IMPSO算法進(jìn)行調(diào)度。進(jìn)行粒子的初始化后,計算抗體和抗原間的親和度。如果切片的大小超過了實(shí)際的云實(shí)例負(fù)載,現(xiàn)有的云實(shí)例類型無法為切片找到合適的選擇,那么將調(diào)用基于集聚系數(shù)的切片方法,重新動態(tài)地調(diào)整切片結(jié)果。直到所有切片都能找到合適的實(shí)例,重新計算各抗體的親和度,并且加入免疫操作,包括抗體克隆、抗體變異等。經(jīng)過若干輪的迭代,直到找到合適的抗體,算法結(jié)束。輸出為一個優(yōu)化調(diào)度的解決方案。
2010年央行宣布重啟人民幣匯率形成機(jī)制改革后,人民幣匯率繼續(xù)升值,但由于此時我國新增4萬億經(jīng)濟(jì)刺激計劃的逐步落實(shí),宏觀經(jīng)濟(jì)增長率并沒有出現(xiàn)大幅下滑,但此次經(jīng)濟(jì)增長更多依賴于國內(nèi)投資和內(nèi)需增加,并引發(fā)國內(nèi)物價的小幅上升;此外,在全球貨幣貶值背景下人民幣幣值的堅挺也使我國進(jìn)出口貿(mào)易受到影響。由于后金融危機(jī)時期我國經(jīng)濟(jì)對世界經(jīng)濟(jì)的帶動地位,我國外匯儲備規(guī)模得到了進(jìn)一步提升。
圖5 基于切片和IMPSO的工作流多云優(yōu)化調(diào)度Fig.5 Multi-cloud workflow scheduling based on slicing and IMPSO
1.2.1 供試材料發(fā)芽。按照《農(nóng)作物種子檢驗(yàn)規(guī)程》(GB/T 3543.4—1995)要求,從鑫兩優(yōu)212雜交標(biāo)準(zhǔn)種、親本及純度待測樣品中均隨機(jī)取200粒種子,均勻置于發(fā)芽床上,在溫度為30 ℃、光照為750 lx、濕度為75%的條件下發(fā)芽3~7 d。
實(shí)驗(yàn)中采用真實(shí)的亞馬遜AWSEC2云計算實(shí)例類型參數(shù),如表1所示。設(shè)置的時間間隔為1小時。每個云實(shí)例的容量設(shè)置為100 000單位,負(fù)載達(dá)到80%即視為負(fù)載已滿。在實(shí)驗(yàn)中,使用屬性ECU代表實(shí)例的速度。
表1 云實(shí)例參數(shù)Tab.1 Cloud instance parameters
實(shí)驗(yàn)環(huán)境的配置為:Core(TM)i5 3.40 GHz,16 GB RAM,Windows 10,Java 2 Standard Edition V1.8.0。
本文中提出的CWFS框架與IMPSO結(jié)合的方法稱為CWFS-IM,將CWFS與遺傳算法結(jié)合的方法稱之為CWFS-GA。下面比較和分析CWFS-IM、CWFS-GA、遺傳算法GA、免疫粒子群優(yōu)化算法IMPSO這4種方法的性能。IMPSO的相關(guān)參數(shù)設(shè)置為:學(xué)習(xí)因子和PSO中的速度更新的慣性因子設(shè)置為:ω=0.5;c1=2;c2=2。種群大小和迭代次數(shù)被設(shè)置為100。結(jié)合免疫機(jī)制的研究和實(shí)驗(yàn),與免疫有關(guān)的參數(shù)機(jī)制如下:記憶單元容量為種群的一半,隨機(jī)生成的新粒子數(shù)量設(shè)置為種群的1/10。所需的克隆的大小被控制在大約兩倍的種群數(shù)量。CWFS和遺傳算法的種群規(guī)模設(shè)置為100,迭代次數(shù)設(shè)置為100,交叉概率Pc和變異概率Pm分別為0.5和0.5。動態(tài)切片的k值設(shè)置成工作流任務(wù)數(shù)的1/10。
本文選擇了3種真實(shí)工作流,分別為Cybershake、Epigenomics和 Montage。 其 中Cybershake是數(shù)據(jù)密集型工作流,執(zhí)行時有大量的數(shù)據(jù)傳輸工作,該工作流是南加州地震中心用于表征地震災(zāi)害的工具;Epigenomics是計算密集型工作流,用于自動執(zhí)行各種基因組測序操作,相對于計算來說,數(shù)據(jù)傳輸不是特別多;Montage用于根據(jù)輸入的圖像來創(chuàng)建天空的工作流,其特點(diǎn)是需要大量的I/O,任務(wù)間有頻繁的通信需求。三種工作流的任務(wù)間數(shù)據(jù)傳輸情況各不相同,與自身的計算需求相比,Cybershake有最多的數(shù)據(jù)傳輸需求,Montage次之,Epigenomics最少。實(shí)驗(yàn)分別使用GA、IMPSO、CWFS-GA、CWFS-IM 4種方法對這三個工作流進(jìn)行調(diào)度,4種方法分別運(yùn)行200次,每10次進(jìn)行求平均得到一次運(yùn)行時間。圖6中分別展示了Cybershake、Epigenomics和Montage在4種調(diào)度方法下的完工時間。
圖6 三個工作流在4種調(diào)度方法下的完工時間Fig.6 Make-span of three workflows in four scheduling methods
可以看出,在這4種方法中,CWFS-IM和CWFS-GA的效果比IMPSO、GA好,這說明基于集聚系數(shù)的切片方法可以有效地減少完工時間。另外,對比這三張圖可以看出,對于資源需求和特點(diǎn)不同的工作流,CWFS帶來的提升也不盡相同。對于Cybershake來說,CWFS的效果最好,這是由于Cybershake執(zhí)行過程中有大量的數(shù)據(jù)傳輸請求,這會帶來大量的數(shù)據(jù)傳輸時間。進(jìn)行合理的工作流切片后,可以將這部分傳輸時間節(jié)省掉。而對于Epigenomics來說,這項提升沒有Cybershake那么明顯,因?yàn)镋pigenomics工作流更側(cè)重于計算資源需求。
圖7 中分別展示了三個工作流在4種調(diào)度方法下的執(zhí)行成本。
圖7 三個工作流在4種調(diào)度方法下的執(zhí)行成本Fig.7 Execution cost of three workflows in four scheduling methods
從圖中可以看出,CWFS可以有效地降低成本。不同工作流成本降低的效果和完工時間類似。對于通信需求多的Cybershake工作流來說,CWFS可以帶來明顯的成本下降效果,因?yàn)樗?jié)省了大量的數(shù)據(jù)通信所造成的成本。Montage工作流的成本也有明顯下降,而對于Epigenomics工作流來說,效果沒有前兩者那么明顯。
在面向多云的工作流優(yōu)化調(diào)度研究中,對于一些數(shù)據(jù)傳輸量較多或者數(shù)據(jù)通信較為頻繁的工作流來說,由任務(wù)間的依賴性而帶來的傳輸成本和時間消耗不容忽視。為解決該問題,本文提出了先對工作流進(jìn)行切片,然后再進(jìn)行優(yōu)化調(diào)度的思路。首先根據(jù)工作流切片的實(shí)際需要,引入集聚系數(shù)概念,并定義了類內(nèi)聚集系數(shù)和類間集聚系數(shù),進(jìn)而給出了對子工作流進(jìn)行分割與合并的判斷標(biāo)準(zhǔn);在此基礎(chǔ)上,提出了一個基于集聚系數(shù)的工作流切片與多云優(yōu)化調(diào)度框架。引入集聚系數(shù)來優(yōu)化調(diào)整工作流的切片結(jié)果,并在尋優(yōu)求解過程中根據(jù)可用云實(shí)例的實(shí)際承載能力,動態(tài)地調(diào)整切片結(jié)果。最后,使用三種不同類型的科學(xué)工作流,利用真實(shí)的云實(shí)例信息進(jìn)行實(shí)驗(yàn),結(jié)果表明,相較于對比方法,所提方能夠有效減少完工時間和成本。
CBTC(基于通信的列車控制)系統(tǒng)能夠確保列車靈活、高效運(yùn)行。但近年來,采用CBTC系統(tǒng)的線路仍時有事故發(fā)生。2011年9月11日,上海軌道交通10號線發(fā)生列車追尾事故,造成295人受傷;2017年11月15日,新加坡地鐵發(fā)生列車碰撞事故,造成28人受傷。這些事故都造成了巨大的社會影響和經(jīng)濟(jì)損失。事故原因是,CBTC系統(tǒng)地面設(shè)備故障,事故列車無法識別其他列車,因而不能實(shí)施有效控制。那么,如果列車具有自主運(yùn)行能力,并且各車之間能夠直接通信,就可有效避免列車追尾或碰撞事故的發(fā)生。這一技術(shù)將成為新一代CBTC系統(tǒng)的一個重要著力點(diǎn)。
作者貢獻(xiàn)說明:
王鵬偉:論文的提出、構(gòu)思、方法、寫作、修改、驗(yàn)證、分析、校對與編輯。
我國養(yǎng)老床位總數(shù)僅占全國老年人口的1.8%,不僅低于發(fā)達(dá)國家5%-7%的比例,也低于一些發(fā)展中國家2%-3%的水平[8]。
雷穎慧:論文的數(shù)據(jù)準(zhǔn)備、實(shí)驗(yàn)、初稿撰寫、驗(yàn)證與分析。
趙玉瑩:論文的初稿撰寫、圖表與格式排版。
章昭輝:論文的閱讀、校對與編輯。