亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

面向多源多核系統(tǒng)的基于超任務(wù)網(wǎng)的多核調(diào)度方法與流程

文檔序號(hào):12887025閱讀:196來(lái)源:國(guó)知局
面向多源多核系統(tǒng)的基于超任務(wù)網(wǎng)的多核調(diào)度方法與流程

本發(fā)明涉及計(jì)算機(jī)軟件領(lǐng)域,尤其是計(jì)算機(jī)操作系統(tǒng)的調(diào)度模型(體系)。



背景技術(shù):

非對(duì)稱多核系統(tǒng)是指由單一cpu的多核或多cpu(含smp、noc-mp、mesh-mp等多cpu體系)的多核,通過(guò)網(wǎng)絡(luò)互聯(lián)構(gòu)成的計(jì)算系統(tǒng)。在非對(duì)稱多核系統(tǒng)中,要實(shí)現(xiàn)高效的多任務(wù)和大任務(wù)執(zhí)行,任務(wù)調(diào)度問(wèn)題是必須解決的一個(gè)關(guān)鍵問(wèn)題。高效的任務(wù)調(diào)度策略和算法可以充分利用非對(duì)稱多核系統(tǒng)的處理能。然而,一般任務(wù)調(diào)度問(wèn)題已被證明是一個(gè)np完全問(wèn)題,因此,它引起了眾多學(xué)者的關(guān)注,成為目前計(jì)算機(jī)研究領(lǐng)域中的一個(gè)焦點(diǎn)。

在任務(wù)調(diào)度方面,已有人做了大量研究,然而,歸納起來(lái),目前相關(guān)研究中主要存在下列問(wèn)題:

(a)算法缺乏對(duì)任務(wù)相關(guān)性的考慮

目前的大多數(shù)調(diào)度算法都沒(méi)有考慮任務(wù)的相關(guān)性。有的雖然考慮了相關(guān)性,也是只考慮了多線程同步引起的相關(guān)性,對(duì)于大任務(wù)中模塊間的相關(guān)性、多任務(wù)間的因?yàn)橘Y源競(jìng)爭(zhēng)引起的相關(guān)性,都缺乏考慮。有的研究雖然考慮過(guò)競(jìng)爭(zhēng)資源引起的相關(guān)性,但也局限于考慮不同類型的計(jì)算行為調(diào)配不同類型的核,而沒(méi)有根據(jù)相關(guān)關(guān)系組織核的分配。事實(shí)上,相關(guān)性既是個(gè)提高調(diào)度質(zhì)量(減少空載)的根本問(wèn)題,也是個(gè)難以處理的問(wèn)題。

(b)算法模式的局限性

目前的針對(duì)os下的任務(wù)的多核調(diào)度方法,大多數(shù)是直接的基于集合映射,中間未采用有效的數(shù)據(jù)結(jié)構(gòu)。相應(yīng)的算法實(shí)現(xiàn),大多是基于集合映射的整數(shù)規(guī)劃方法。雖然也有采用進(jìn)化算法的,但由于時(shí)間復(fù)雜度的原因,無(wú)法實(shí)用。

整數(shù)規(guī)劃的求解的基本思想是一個(gè)多步?jīng)Q策模式,每一步都是一種試探,可行則往下進(jìn)行,不可行則重新計(jì)算(產(chǎn)生回溯)。具體的整數(shù)規(guī)劃法有分枝定界法、割平面法、隱枚舉法等。

這種方法與約束條件密切相關(guān),當(dāng)約束條件很復(fù)雜時(shí),很難找到較為理想的規(guī)劃,導(dǎo)致回溯的增多。特別是,對(duì)于約束條件動(dòng)態(tài)變化的情況(例如,任務(wù)的間接相關(guān)性,因?yàn)槿蝿?wù)的新增與完成以及任務(wù)的處于不同計(jì)算階段,相關(guān)性會(huì)動(dòng)態(tài)變化),這種方法的效率將更差。

(c)相關(guān)性的解決路線問(wèn)題

目前的調(diào)度算法,盡管有些考慮了任務(wù)的相關(guān)性,但仍然采用基于整數(shù)規(guī)劃的方法,將相關(guān)性作為了約束條件,但相關(guān)性動(dòng)態(tài)復(fù)雜化或者動(dòng)態(tài)變化時(shí),不適合針對(duì)約束條件進(jìn)行決策。這種路線,既不能充分處理相關(guān)性,也不可能獲得有效的算法。

(d)缺乏考慮可再入分配

目前的調(diào)度算法,遇到需要重新分配物理核的時(shí)候,大多采用“遷移”的方式,產(chǎn)生較大的遷移代價(jià),這種遷移相當(dāng)于處理器的中斷體系。事實(shí)上,有些重新分配的情況,可以充分利用一些不可避免的相關(guān)性等待(某些核由于相關(guān)性處在空載),對(duì)這些空載核進(jìn)行再入式分配,可以有效降低遷移代價(jià)。

(e)缺乏虛擬化分配

目前的針對(duì)os下的多核調(diào)度,大多數(shù)都是直接進(jìn)行任務(wù)集到核集或者多cpu的映射,中間沒(méi)有設(shè)置一層虛擬化核。這樣會(huì)使任務(wù)分配與核調(diào)度兩個(gè)問(wèn)題糾纏在一起,缺乏獨(dú)立性,增加優(yōu)化解決的復(fù)雜度。另外,任務(wù)內(nèi)負(fù)載的并行特征和資源需求是動(dòng)態(tài)變化的,而這種直接把任務(wù)集映射到核集的方式,會(huì)降低非對(duì)稱多核系統(tǒng)的計(jì)算效率,這是因?yàn)橹挥挟?dāng)多核系統(tǒng)上的處理器核的配置與任務(wù)內(nèi)負(fù)載的并行特征匹配時(shí),才能有效提高非對(duì)稱多核系統(tǒng)的計(jì)算效率。

更重要的是,這樣不利于解決多核系統(tǒng)的多樣化發(fā)展,例如,多種架構(gòu)的多cpu(如smp、noc多cpu、mesh多cpu等)中的多核的調(diào)度,由于cpu之間就存在競(jìng)爭(zhēng)內(nèi)存與其他資源,所以使得核的運(yùn)行產(chǎn)生復(fù)雜的相關(guān)性。對(duì)于虛擬化系統(tǒng),雖然設(shè)置了虛擬處理器(vcpu),但也是實(shí)現(xiàn)的vcpu到物理cpu的映射,不是真正意義的虛擬化核。

(f)核的增加/刪除開(kāi)銷巨大

目前的os并不能有效的支持非對(duì)稱多核系統(tǒng)的任務(wù)調(diào)度。os傳統(tǒng)上假定核的數(shù)目在系統(tǒng)運(yùn)行期間固定,從而普遍需要在核上維護(hù)分布式任務(wù)隊(duì)列。在這種情況下,在非對(duì)稱多核系統(tǒng)上任何核的增加/刪除都會(huì)引起其本地任務(wù)隊(duì)列的建立/釋放,而這種操作幵銷通常非常昂貴。



技術(shù)實(shí)現(xiàn)要素:

一、概述

本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種新的多核調(diào)度模型,即基于超任務(wù)網(wǎng)的“兩段優(yōu)化”的調(diào)度體系,以給出對(duì)上述現(xiàn)有技術(shù)所存在問(wèn)題的解決。

所給出的調(diào)度方法,目標(biāo)是解決兩個(gè)問(wèn)題,一是被分配執(zhí)行的任務(wù)間的相關(guān)性,包括直接相關(guān)性與間接相關(guān)性。因?yàn)橄嚓P(guān)性的存在,會(huì)使相關(guān)任務(wù)的執(zhí)行存在等待,即空載。二是解決核的共享問(wèn)題,使有限的物理核可以被多個(gè)任務(wù)充分共享,最大限度減少任務(wù)的總的等待時(shí)間與任務(wù)遷移代價(jià)。

本發(fā)明的方法,針對(duì)的是兩種對(duì)象:任務(wù)集合與多源多核系統(tǒng)。任務(wù)是待加載到處理器上執(zhí)行的軟件模塊,任務(wù)集合由子任務(wù)構(gòu)成。子任務(wù)可以是一個(gè)獨(dú)立任務(wù),也可以是一個(gè)獨(dú)立任務(wù)中若干可以獨(dú)立運(yùn)行的模塊(線程或者其他模塊)。任務(wù)的相關(guān)性存在兩種:

a)內(nèi)部相關(guān)性:也稱直接相關(guān)性。在同一個(gè)進(jìn)程對(duì)應(yīng)的軟件模塊(往往是一組模塊)中,存在兩類相關(guān)性:結(jié)構(gòu)相關(guān)性和運(yùn)行相關(guān)性。結(jié)構(gòu)相關(guān)性是軟件模塊的靜態(tài)結(jié)構(gòu)決定的模塊之間的執(zhí)行次序。運(yùn)行相關(guān)性主要是“生產(chǎn)者-消費(fèi)者”模式導(dǎo)致的相關(guān)性。消費(fèi)者需要等待對(duì)應(yīng)的生產(chǎn)者產(chǎn)生結(jié)果后才可以運(yùn)行。多線程的情況一般屬于這種“生產(chǎn)者-消費(fèi)者”模式,因此,在多線程系統(tǒng)中存在大量的運(yùn)行相關(guān)性。

b)間接相關(guān)性:一組相互獨(dú)立的任務(wù),可能由于共享公共資源而產(chǎn)生相關(guān)性,我們稱這種相關(guān)性為間接相關(guān)性。間接相關(guān)性由對(duì)諸如存儲(chǔ)器、處理器、總線、通信端口及外設(shè)之類的公用資源的共享、競(jìng)爭(zhēng)和協(xié)同引起。這類相關(guān)性一般是在任務(wù)運(yùn)行中才出現(xiàn),也是一種運(yùn)行相關(guān)性一般是動(dòng)態(tài)識(shí)別。

任務(wù)集中的任務(wù),可以來(lái)自下列幾個(gè)方面:

a)一組需要共享處理器的獨(dú)立任務(wù);

b)單個(gè)任務(wù)中的線程;

c)單個(gè)任務(wù)中的結(jié)構(gòu)模塊,這些模塊一般是需要較多的運(yùn)行時(shí)間,而且結(jié)構(gòu)相對(duì)獨(dú)立(例如動(dòng)態(tài)鏈接模塊);包含這種模塊的任務(wù)稱為大任務(wù)。

d)存在運(yùn)行相關(guān)性的模塊是可以并發(fā)執(zhí)行的,但對(duì)結(jié)構(gòu)模塊,一般情況下,結(jié)構(gòu)次序在先的模塊執(zhí)行完成后,后面的模塊才可以開(kāi)始執(zhí)行。如果處理器資源充足,為了提高執(zhí)行速度,對(duì)這些模塊也可以采用“預(yù)執(zhí)行”。在預(yù)執(zhí)行中,將可以提前執(zhí)行的部分執(zhí)行,其他的可以“盲執(zhí)行”,等到前驅(qū)模塊執(zhí)行完后再調(diào)整盲執(zhí)行。

所給出的多核調(diào)度模型不同于目前的以“集合映射”式的調(diào)度模式,它基于超任務(wù)網(wǎng),把任務(wù)調(diào)度分成最優(yōu)超任務(wù)網(wǎng)的構(gòu)造與核共享兩個(gè)階段。第一階段,首先根據(jù)任務(wù)集的相關(guān)性構(gòu)造描述任務(wù)間的直接相關(guān)性的任務(wù)網(wǎng),然后根據(jù)任務(wù)間的間接相關(guān)性生成任務(wù)網(wǎng)的一個(gè)超任務(wù)網(wǎng),接著調(diào)整超任務(wù)網(wǎng),使其總的邏輯執(zhí)行的空載度最小,獲得最優(yōu)超任務(wù)網(wǎng),然后,對(duì)該超任務(wù)網(wǎng)進(jìn)行兩段序列化,生成對(duì)應(yīng)的超任務(wù)網(wǎng)序列。第二階段的任務(wù)是將第一階段獲得的超任務(wù)網(wǎng)序列映射到多源多核系統(tǒng)上執(zhí)行。具體的映射方法是,依次按照逆序?qū)γ總€(gè)超任務(wù)節(jié)點(diǎn),按照既定策略從當(dāng)前核分配圖中選擇一組共享代價(jià)最小的核,將該超任務(wù)節(jié)點(diǎn)加載到該組核上運(yùn)行。

二、超任務(wù)網(wǎng)的構(gòu)造

超任務(wù)網(wǎng)用于描述任務(wù)間的相關(guān)性。超任務(wù)網(wǎng)的定義,依賴于任務(wù)網(wǎng)的定義。

定義1(任務(wù)網(wǎng)絡(luò)):一個(gè)任務(wù)網(wǎng)絡(luò)定義為tn=(t,v,c,w),其中,t為當(dāng)前任務(wù)集;v為定義在t上的二元關(guān)系;c為定義在t上的函數(shù),w是定義在v上的函數(shù),設(shè)a,bt,滿足

v=<a,b>v:當(dāng)且僅當(dāng)任務(wù)b的當(dāng)前階段執(zhí)行需要等待任務(wù)a的當(dāng)前階段完成,稱a與b直接相關(guān);

至少存在一個(gè)bt,使得不存在其他的at,而<a,b>v;稱b為開(kāi)始任務(wù);至少存在一個(gè)at,使得不存在其他的bt,而<a,b>v;稱a為結(jié)束任務(wù)

c(a)>=0:表示任務(wù)a本階段完成所需的時(shí)間,稱為a的耗時(shí)權(quán)。

w(<a,b>)=c(a):表示b等待a的時(shí)間;

這里定義的任務(wù)網(wǎng)用于描述某個(gè)時(shí)段內(nèi)的任務(wù)的直接相關(guān)性。權(quán)c和w是當(dāng)前時(shí)段內(nèi)對(duì)任務(wù)執(zhí)行時(shí)間和最大等待時(shí)間的估算值,用于后續(xù)的最優(yōu)調(diào)度序列的生成。

定義2(超任務(wù)網(wǎng)):對(duì)于任務(wù)網(wǎng)tn=(t,v,c,w),定義它的超任務(wù)網(wǎng)為tnh=(th,a,ct,wh),其中,th為超任務(wù)網(wǎng)的節(jié)點(diǎn)集,a為弧集;ct為集合集,是任務(wù)集t的一種劃分,wh是定義在a上的權(quán),設(shè)n為某正整數(shù),滿足:

ct={t1,t2,…,tn},tit,i=1,2,…,n,t1∪t2∪…∪tn=t,且若t1,t2ti,則t1與t2競(jìng)爭(zhēng)資源i。

th=ct;

e=<hi,hj>a當(dāng)且僅當(dāng)存在一個(gè)vv,v=<h1,h2>,h1hi,h2hj,i,j{1,…n},i≠j,稱e為hi到hj的割邊

wh(hj)=max{w(<a,b>)|i,<hi,hj>a;a,b,ahi,bhj}

任務(wù)網(wǎng)的一個(gè)超任務(wù)網(wǎng)由當(dāng)前時(shí)段的任務(wù)間的間接相關(guān)性框定,這種間接相關(guān)性由劃分ct確定。節(jié)點(diǎn)是t的按當(dāng)前時(shí)段的資源競(jìng)爭(zhēng)的一個(gè)劃分中的成分,同一節(jié)點(diǎn)中的任務(wù)構(gòu)成間接競(jìng)爭(zhēng);弧表示各個(gè)競(jìng)爭(zhēng)節(jié)點(diǎn)之間存在直接相關(guān)性,而權(quán)wh描述競(jìng)爭(zhēng)節(jié)點(diǎn)之間的直接相關(guān)度的大小。

顯然,同一時(shí)段與同一ct,可以對(duì)應(yīng)多個(gè)不同的超任務(wù)網(wǎng)。

超任務(wù)網(wǎng)描述了一個(gè)給定時(shí)段的任務(wù)之間的兩種相關(guān)性:直接相關(guān)性與間接相關(guān)性。任務(wù)首先按照間接相關(guān)性分塊(一個(gè)超任務(wù)節(jié)點(diǎn)就是一個(gè)間接相關(guān)塊),塊內(nèi)的任務(wù)網(wǎng)弧表示塊內(nèi)節(jié)點(diǎn)的直接相關(guān)性,而塊間的弧表示兩個(gè)塊之間的直接相關(guān)性。

定義3(任務(wù)空行度/空載度)設(shè)tn=(t,v,c,w)是一個(gè)任務(wù)網(wǎng),tt,則稱e(t)為t的空載度,滿足

e(t)=w(t):當(dāng)t無(wú)前驅(qū)時(shí);

e(t)=max{w(t0)+e(t0)|t0,<t0,t>v}:其他情況

為tn的平均空行度,這里,設(shè)1,2,…,n為tn節(jié)點(diǎn)的編號(hào)。

如果該任務(wù)網(wǎng)被分配到處理核上執(zhí)行,則任務(wù)的空行度就稱為空載度。

空行度表示任務(wù)的等待執(zhí)行時(shí)間,平均空行度表示一組待分配的任務(wù)的總體空行度。顯然,不同的ct,不同的超任務(wù)網(wǎng)結(jié)構(gòu),其總體空行度是不同的。因此,如何在當(dāng)前ct的情況下組織超任務(wù)網(wǎng),獲得一個(gè)最小的平均空行度,是首先最優(yōu)調(diào)度的必要條件。

圖1是一個(gè)超任務(wù)網(wǎng)的示意圖。圖中小圓表示任務(wù)網(wǎng)節(jié)點(diǎn),節(jié)點(diǎn)代表任務(wù)或者子任務(wù),小圓之間的弧表示任務(wù)間的直接相關(guān)性。大圓表示超任務(wù)網(wǎng)節(jié)點(diǎn)。位于同一超任務(wù)節(jié)點(diǎn)內(nèi)的任務(wù)表示間接相關(guān)。超任務(wù)節(jié)點(diǎn)間的弧表示超任務(wù)之間的相關(guān)性。

接下來(lái)的研究是在上述定義的基礎(chǔ)上,發(fā)現(xiàn)一種具體的超任務(wù)網(wǎng)體系結(jié)構(gòu)及其構(gòu)造方法—超任務(wù)網(wǎng)最優(yōu)超結(jié)構(gòu)原理,使其可以獲得最小空行度。

三、核共享

虛擬核構(gòu)造階段是將當(dāng)前最優(yōu)超任務(wù)網(wǎng)對(duì)應(yīng)的超任務(wù)序列映射到多源多核系統(tǒng)上執(zhí)行。這里,多源多核系統(tǒng)是指集成了多核cpu、多cpu或多主機(jī)上的處理器核,對(duì)外形成一個(gè)多核處理器界面。多源多核系統(tǒng)中的核,可以是對(duì)稱的也可以是非對(duì)稱的。任務(wù)集是可以分配到多核處理器上執(zhí)行的任務(wù)的集合。

這里的虛擬核是指根據(jù)一個(gè)任務(wù)子集中任務(wù)的相關(guān)關(guān)系,基于多源多核系統(tǒng)為對(duì)應(yīng)任務(wù)的運(yùn)行選擇一個(gè)物理核。虛擬核是物理核的一個(gè)調(diào)度器,負(fù)責(zé)為任務(wù)從多源多核系統(tǒng)中分配一個(gè)物理核,并將任務(wù)加載到所分配的核上運(yùn)行。

虛擬核的構(gòu)造基于核共享圖進(jìn)行。核共享圖的形式化定義為:

定義4(核共享圖)一個(gè)核共享圖cm定義如下:

cm=(n,m);

n:空閑核隊(duì)列集;

m=(t,c,tc,cc,c,w)

t是當(dāng)前已分配到核的任務(wù)集,c是當(dāng)前已被分配的核,tc是t到c的二元關(guān)系,<t,c>tc,當(dāng)且僅當(dāng),tt,cc,t被分配到c;<c1,c2>cc,當(dāng)且僅當(dāng),存在c1、c2、t1與t2,使得c1c,c2c,<t1,c1>tc,<t2,c2>tc;

核共享圖有兩種節(jié)點(diǎn):任務(wù)節(jié)點(diǎn)和核節(jié)點(diǎn),相應(yīng)的有兩種弧,任務(wù)節(jié)點(diǎn)到核節(jié)點(diǎn)的弧和核節(jié)點(diǎn)之間的弧。如果任務(wù)t分配在核c上,則t到c有弧,弧權(quán)為t的完成所需剩余時(shí)間;如果核c1當(dāng)前執(zhí)行的任務(wù)需要等待到核c2當(dāng)前執(zhí)行的任務(wù)的完成,則c1到c2有弧,弧權(quán)為等待時(shí)間。虛擬核的構(gòu)造,當(dāng)存在空閑核是直接分配空閑核,并且將所分配的核加入到核共享圖,否則,從共享圖選擇核共享。

核共享圖是再虛擬核構(gòu)造過(guò)程中動(dòng)態(tài)生成的。虛擬核的構(gòu)造就是為當(dāng)前任務(wù)集中指定的任務(wù)選擇物理核并加載任務(wù)運(yùn)行。選擇的方式分為空載分配與共享分配兩種。當(dāng)當(dāng)前核共享圖中n非空,則按照任務(wù)類型從n中的最匹配隊(duì)列中選擇一個(gè)物理核,直接分配給該任務(wù),并且調(diào)整核共享圖。當(dāng)當(dāng)前沒(méi)有空閑物理核時(shí),進(jìn)行共享分配。

共享分配分為等待、竊取、借用與剝奪四種方式。等待方式是暫不分配物理核,將任務(wù)t掛起一段時(shí)間后再進(jìn)入共享分配;竊取方式是按照既定的選擇策略選擇一個(gè)處在空載狀態(tài)的核,將該核分配給任務(wù)t,該核一旦結(jié)束空載,則立即自動(dòng)歸還,同時(shí)掛起t;借用方式是按照既定的選擇策略選擇一個(gè)正在運(yùn)行任務(wù)的核,將其任務(wù)掛起,將它的核分配給任務(wù)t一個(gè)既定時(shí)段,時(shí)間到后立即歸還,并恢復(fù)被中斷的任務(wù),同時(shí)將任務(wù)t掛起;剝奪方式是按照既定的選擇策略選擇一個(gè)正在運(yùn)行任務(wù)的核,掛起該任務(wù),將該核分配給任務(wù)t,直到任務(wù)t完成后才恢復(fù)所掛起的任務(wù)。被掛起的任務(wù),加入到掛起隊(duì)列,接受任務(wù)的再分配。

四、調(diào)度模型

本發(fā)明的多核調(diào)度方法,由核心數(shù)據(jù)結(jié)構(gòu)、核心操作與核心流程組成。數(shù)據(jù)結(jié)構(gòu)描述調(diào)度所針對(duì)的任務(wù)與處理器核的開(kāi)始、中間與最終狀態(tài);操作是在數(shù)據(jù)結(jié)構(gòu)上進(jìn)行,通過(guò)改變數(shù)據(jù)結(jié)構(gòu)求實(shí)現(xiàn)調(diào)度;流程用于控制操作的進(jìn)行。由x核心數(shù)據(jù)結(jié)構(gòu)、核心操作和核心流程定義的調(diào)度方法,稱為調(diào)度模型。調(diào)度模型只定義方法的體系與框架,不對(duì)核心數(shù)據(jù)結(jié)構(gòu)、核心操作與核心流程進(jìn)行實(shí)現(xiàn)級(jí)別的定義。

(1)核心數(shù)據(jù)結(jié)構(gòu)

核心數(shù)據(jù)結(jié)構(gòu)包括下列:

當(dāng)前任務(wù)集t:是方法的輸入?yún)?shù),集合結(jié)構(gòu),包含當(dāng)前待分配到處理器核上執(zhí)行的任務(wù)。用于與任務(wù)關(guān)聯(lián)圖配合生成任務(wù)網(wǎng),任務(wù)集t是動(dòng)態(tài)的,新到達(dá)的任務(wù)可以隨時(shí)加入t,t中原有任務(wù)被分配到處理器核后即撤離t.任務(wù)集中的任務(wù),或者是獨(dú)立任務(wù),或者是獨(dú)立任務(wù)中的子模塊。

任務(wù)關(guān)聯(lián)圖tr:輸入?yún)?shù),圖結(jié)構(gòu),用于與任務(wù)集配合生成任務(wù)網(wǎng),描述任務(wù)集t中的各任務(wù)的關(guān)聯(lián)關(guān)系,包括直接相關(guān)與間接相關(guān)兩種關(guān)聯(lián)關(guān)系。

任務(wù)網(wǎng):為中間數(shù)據(jù)結(jié)構(gòu),圖結(jié)構(gòu),基于任務(wù)集t與任務(wù)關(guān)聯(lián)圖tr生成,用于生成超任務(wù)網(wǎng)。

超任務(wù)網(wǎng):中間數(shù)據(jù)結(jié)構(gòu),圖結(jié)構(gòu),基于任務(wù)網(wǎng)和任務(wù)關(guān)聯(lián)圖生成,用于算法發(fā)現(xiàn)最優(yōu)超任務(wù)序列。

超任務(wù)序列:中間數(shù)據(jù)結(jié)構(gòu),線性表結(jié)構(gòu),基于超任務(wù)網(wǎng)生成。

核共享圖:中間數(shù)據(jù)結(jié)構(gòu),圖結(jié)構(gòu),描述當(dāng)前的任務(wù)與處理器核的映射關(guān)系。

(2)核心操作及其基本工作流程

操作1:任務(wù)網(wǎng)生成

輸入:任務(wù)集t及其任務(wù)關(guān)聯(lián)圖tr;

輸出:任務(wù)網(wǎng)tw;

功能:根據(jù)任務(wù)集t與任務(wù)關(guān)聯(lián)圖tr生成相應(yīng)的任務(wù)網(wǎng);

原型:tw-constrution(t,tr,tw)

工作流程:

[1]初始化任務(wù)網(wǎng)tw;

[2]如果t空,返回;

[3]從t取一個(gè)新成員t;

[4]根據(jù)tr將t加入tw;

[5]轉(zhuǎn)2;

操作2:超任務(wù)網(wǎng)生成

輸入:任務(wù)網(wǎng)tw與任務(wù)關(guān)聯(lián)圖tr;

輸出:超任務(wù)網(wǎng)htw;

功能:根據(jù)任務(wù)網(wǎng)tw與任務(wù)關(guān)聯(lián)圖生成tw的超任務(wù)網(wǎng)htw;

原型:htw-constrution(tw,tr,htw)

工作流程:

[1]初始化超任務(wù)網(wǎng)htw;初始化整數(shù)a為0;

[2]按照tr中的當(dāng)前資源競(jìng)爭(zhēng)關(guān)系給出htw節(jié)點(diǎn)的一個(gè)劃分,使得競(jìng)爭(zhēng)同一種資源的節(jié)點(diǎn)劃在一個(gè)劃分中,并且保持空載率最??;

[3]以每個(gè)劃分為一個(gè)htw節(jié)點(diǎn),生成htw的節(jié)點(diǎn)集;

[4]對(duì)htw中每個(gè)節(jié)點(diǎn)h1與不等于h1的每個(gè)h2,執(zhí)行[5]-[6];

[5]如果xh1,yh2,且<x,y>是tw的弧,如果a小于y的等待時(shí)間w,令a為w;

[6]如果<x,y>不是htw的弧,將將其加入htw弧集;令a為它的弧權(quán);

[7]結(jié)束;

操作3:超任務(wù)序列生成

輸入:超任務(wù)網(wǎng)htw;

輸出:超任務(wù)網(wǎng)hts;

功能:根據(jù)超任務(wù)網(wǎng)htw生成超任務(wù)序列;

原型:hts-constrution(htw,hts)

工作流程:

[1]初始化超任務(wù)序列hts;

[2]對(duì)htw進(jìn)行拓?fù)渑判?,生成htw的一個(gè)拓?fù)湫蛄衕ts1,并標(biāo)注可并行節(jié)點(diǎn)組;

[3]對(duì)hts1中每個(gè)節(jié)點(diǎn),分別對(duì)其進(jìn)行拓?fù)渑判?,并?biāo)注可并行組,加入到hts;

[4]結(jié)束;

操作4:超任務(wù)序列加載運(yùn)行

輸入:超任務(wù)序列hts,多源多核系統(tǒng)msmc;

輸出:使超任務(wù)序列中每個(gè)任務(wù)處于邏輯運(yùn)行狀態(tài);

功能:邏輯上將超任務(wù)網(wǎng)中每個(gè)任務(wù)加載到到多源多核系統(tǒng)msmc中的處理器核上運(yùn)行;

原型:hts-load(hts,msmc)

工作流程:

[1]如果hts空,則返回;

[2]按照hts拓?fù)浯涡驈膆ts取一個(gè)并行組p;

[3]依次從p取一個(gè)hts節(jié)點(diǎn)h;

[4]調(diào)用rt-load(h,msmc);加載h中節(jié)點(diǎn);

[5]如果p中尚有未取節(jié)點(diǎn),轉(zhuǎn)[3];

[6]如果hts中尚有未取節(jié)點(diǎn),轉(zhuǎn)[2];

[7]結(jié)束;

操作5:相關(guān)任務(wù)組加載運(yùn)行

輸入:超任務(wù)序列節(jié)點(diǎn)h,多源多核系統(tǒng)msmc;

輸出:使超任務(wù)序列節(jié)點(diǎn)h中每個(gè)任務(wù)處于邏輯運(yùn)行狀態(tài);

功能:邏輯上將超任務(wù)序列節(jié)點(diǎn)h中每個(gè)任務(wù)加載到到多源多核系統(tǒng)msmc中的處理器核上運(yùn)行;

原型:rt-load(h,msmc)

過(guò)程:

[1]如果h空,則返回;

[2]按照h中的拓?fù)浯涡驈膆取一個(gè)任務(wù)t;

[3]如果msmc的核空閑隊(duì)列空,轉(zhuǎn)[6];

[4](空閑分配)從隊(duì)列摘取一個(gè)空閑核c,將t加載到c上運(yùn)行;

[5]調(diào)用csm-add(t,c,msmc),將已分配的任務(wù)與核記錄到核分配圖;轉(zhuǎn)[6]

[6](共享分配)調(diào)用csm-select(t,msmc),從msmc中選擇一個(gè)最佳共享核,將t加載并運(yùn)行;

[6]轉(zhuǎn)[2];

操作6:核共享圖添加

輸入:任務(wù)t,核c,多源多核系統(tǒng)msmc;

輸出:將任務(wù)t與c的分配關(guān)系登記到msmc的核共享圖;

功能:在msmc的核共享圖中登記任務(wù)t到核c的分配關(guān)系;

原型:csm-add(t,c,msmc)

操作7:核共享

輸入:任務(wù)t,多源多核系統(tǒng)msmc;

輸出:將任務(wù)t分配到某個(gè)已被分配的核上運(yùn)行;

功能:在msmc的核共享圖中選擇一個(gè)最佳共享核,分配給任務(wù)t并加載運(yùn)行;

原型:csm-select(t,msmc)

(3)總體工作流程

輸入:任務(wù)集t,任務(wù)關(guān)聯(lián)圖tr,多源多核系統(tǒng)msmc;

輸出:t中任務(wù)的到多源多核系統(tǒng)msmc上的映射;

功能:將務(wù)集t中每個(gè)任務(wù)加載到多源多核系統(tǒng)msmc上運(yùn)行,使msmc空載度最?。?/p>

原型:t-load(t,tr,msmc)

工作流程:

[1]tw-constrution(t,tr,tw);

[2]htw-constrution(tw,tr,htw);

[3]hts-constrution(htw,hts);

[4]hts-load(hts,msmc);

附圖說(shuō)明

圖1是超任務(wù)網(wǎng)的示意圖;

圖2是基于超任務(wù)網(wǎng)的“兩段優(yōu)化”的調(diào)度體系示意圖。

具體實(shí)施方式

下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明內(nèi)容及實(shí)施方法作進(jìn)一步的描述,但本發(fā)明的實(shí)施方式不限于此。

一個(gè)根據(jù)本發(fā)明設(shè)計(jì)的基于超任務(wù)網(wǎng)的“兩段優(yōu)化”的調(diào)度體系如圖2所示。

1.線程分解器將大任務(wù)中的多線程分解出來(lái)作為調(diào)度任務(wù)集中的子任務(wù)。應(yīng)用中,根據(jù)必要性可以確定是否分解。如果不分解,將可以將大任務(wù)作為一個(gè)子任務(wù)直接加入到任務(wù)集;

2.結(jié)構(gòu)分解器將大任務(wù)按照其流程結(jié)構(gòu)進(jìn)行分解,分解出適當(dāng)?shù)哪K加入到任務(wù)集,作為任務(wù)集中的子任務(wù)。應(yīng)用中,根據(jù)必要性可以確定是否分解。如果不分解,將可以將大任務(wù)作為一個(gè)子任務(wù)直接加入到任務(wù)集

3.任務(wù)組織器由三大部分構(gòu)成:構(gòu)造器、驅(qū)動(dòng)器和調(diào)整器。

(1)構(gòu)造器:(a)負(fù)責(zé)將輸入的任務(wù)按其二元關(guān)系(直接相關(guān)性),合成任務(wù)關(guān)聯(lián)圖,并組織生成任務(wù)網(wǎng)。(b)負(fù)責(zé)將輸入的任務(wù)按其間接相關(guān)性,生成超任務(wù)網(wǎng)的節(jié)點(diǎn)集合集ct,并組合弧集、弧權(quán)值等參數(shù)生成超任務(wù)網(wǎng)。任務(wù)網(wǎng)和超任務(wù)網(wǎng)的物理實(shí)現(xiàn)可以采用“格件”模式中場(chǎng)融合技術(shù),其中節(jié)點(diǎn)可以直接用格件融合器中的“處理器”表示,二元關(guān)系,超節(jié)點(diǎn)可以采用“場(chǎng)”表示,而弧用描述數(shù)據(jù)結(jié)構(gòu)的“管道”融合器表示

(2)驅(qū)動(dòng)器:生成超任務(wù)序列,并負(fù)責(zé)向多源多核調(diào)度器發(fā)起分配請(qǐng)求。

(3)調(diào)整器:接收來(lái)自多源多核調(diào)度器發(fā)送的間接相關(guān)性的反饋信息,根據(jù)反饋信息,本著獲得最小空載率的目標(biāo)動(dòng)態(tài)調(diào)整超任務(wù)網(wǎng)。

4.多源多核調(diào)度器

多源核調(diào)度器負(fù)責(zé)虛擬核管理、偵聽(tīng)來(lái)自任務(wù)組織器的請(qǐng)求和調(diào)度。多源多核調(diào)度器把調(diào)度分成二個(gè)層面,即任務(wù)分配和核調(diào)度:

(1)任務(wù)調(diào)度主要根據(jù)任務(wù)組織器生成/調(diào)整的超任務(wù)序列進(jìn)行任務(wù)分配,即確定超任務(wù)序列中的并行段和任務(wù)的調(diào)度次序,并為任務(wù)分配虛擬核;

(2)核調(diào)度,首先確定虛擬核的基本物理核類型,如果有空閉核從物理核選擇類型匹配的物理核分配給虛擬核,將任務(wù)加載到該核上運(yùn)行,并修改核共享圖(空閑核對(duì)列集、m集合);如果不存在空間核,即根據(jù)核共享圖和任務(wù)特征,選擇一個(gè)最佳共享核進(jìn)行共享。最佳共享核選擇可以采用下列策略,但不限于此。

a.循環(huán)的從核共享圖選擇一個(gè)共享核,把該共享核分配給虛擬核,檢測(cè)其的緩存缺失率。

b.判斷緩存缺失率是否劇烈抖動(dòng)。如果劇烈抖動(dòng),則進(jìn)入抖動(dòng)狀態(tài)。

抖動(dòng)狀態(tài):任務(wù)在階段發(fā)生變化時(shí),會(huì)經(jīng)歷一段時(shí)間的抖動(dòng),表現(xiàn)為緩存缺失率的劇烈波動(dòng),此時(shí)程序并未進(jìn)入穩(wěn)定的執(zhí)行階段。使用抖動(dòng)狀態(tài)來(lái)處理這種抖動(dòng)現(xiàn)象。

c.當(dāng)緩存缺失率波動(dòng)減弱時(shí),任務(wù)從抖動(dòng)狀態(tài)逐漸過(guò)度到平穩(wěn)狀態(tài),也就意味著任務(wù)進(jìn)入了一個(gè)新的階段。

d.當(dāng)任務(wù)處于平穩(wěn)狀態(tài)時(shí),檢測(cè)其的緩存缺失率。

e.重復(fù)a到b直到遍歷核共享圖中所有的核,從中選擇緩存缺失率最低的物理核作為最佳共享核。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1