自適應眾核資源調度方法
【專利摘要】本發明提供了一種自適應眾核資源調度方法,面向環境自適應的多形態眾核計算特征,引入了泛環境、計算形態、眾核任務等模型與相應的管理方法,根據環境變化,自動決策眾核任務集及其屬性,進而根據輸入數據規模的變化及任務執行的時間約束,自主測算任務中各計算步的時間復雜度、資源?效能擬合關系。在高關鍵度任務優先的前提下,對等待啟動的任務進行資源預分配規劃,并根據各任務的資源?效能擬合關系實現計算步效能均衡的資源分配。本發明能夠為環境自適應的眾核任務多形態管理及整體計算效能的優化提供良好支撐。
【專利說明】
自適應眾核資源調度方法
技術領域
[0001] 本發明涉及眾核處理器上的核計算資源自適應調度方法,尤其涉及一種部署于高 性能多形態計算系統的具有"資源-效能"平衡優化的核資源分配與調度方法。
【背景技術】
[0002] 新型航空航天系統、智能機器人等復雜嵌入式系統正日益呈現出深度信息、物理 融合以及高度智能化的發展特征,其具有開放、動態環境自適應的計算特征。針對由計算熱 點隨環境變化而發生切換所引起的計算形態變化,尤其是并行計算任務及其效能約束的變 化,需要研究一種新的自適應調度方法,能夠評估不同計算任務的動態計算效能,進而根據 全局效能優化的策略對眾核資源進行分配和構造,以提升并行計算任務的效能。
[0003] 現有研究中,主要是包括了眾核計算資源的均衡分配及適應數據變化的眾核資源 分配等,并以算法均衡度、數據處理時間作為關鍵評價指標。文獻"眾核處理器系統核資源 動態分組的自適應調度算法,曹仰杰等,軟件學報,2012 23卷第2期"中研究提出了一種支 持核資源動態分組的自適應調度算法CASM,其通過對任務簇的拆分與合并,動態構建可彈 性分區的核邏輯組實現核資源的隔離優化訪問,針對任務簇間和簇內的不同特點,算法分 別采用公平性較好的均衡調度算法和資源利用率較高的自適應調度算法;"面向數據包處 理的眾核處理器核資源分配方法,羅章琪等,計算機研究與發展,2014 51卷第6期"中針對 路由器應用研究了面向數據包流水處理機制的核資源優化分配方法,該方法根據數據包的 處理步驟將任務劃分為多個子階段并通過對各子階段的執行時間進行評估來計算各階段 應該分配的核數量。上述方法主要考慮單一任務/單一處理模式下的資源均衡和性能優化, 未考慮環境自適應多態應用中的可變計算形態及動態效能特征,不能為該類應用提供有效 的方法支持。
【發明內容】
[0004] 為了克服現有技術的不足,本發明提供一種眾核處理機中的核資源自適應分配與 調度方法,在環境、資源狀態實時判斷的基礎上,自主決策并行計算任務組中的任務效能屬 性,進而根據不同任務的特性進行核資源分配,從而保證全局優化的計算形態構造,提升資 源利用率及計算效率。本發明能夠增強眾核處理機資源的優化分配與調度管理能力,從而 為構建高性能復雜智能嵌入式應用提供有效的方法支撐。
[0005] 本發明解決其技術問題所采用的技術方案包括以下步驟:
[0006] 步驟A、將物理環境表示為E,包括系統運行相關的η個環境因素ε,記為<ει,ε2,···, ε η>;系統內部資源表示為R,記為〈。,。,…,。,!!!為資源類型的數量:將物理環境因素^系 統資源歸一表示為泛環境Ue;
[0007] 計算形態M描述了計算系統在運行時軟硬件資源的基本構造模式及狀態,表示為〈 ,,ζ^ 其中,ζ表示集合,τ是并行計算任務個體;r是眾核計算資源個體,φ存儲任 務或資源的運行參數或分配參數;ζ<τ. φ>_表示任務及其運行參數的集合,ζα φ>表示資源及 其數量參數的集合;
[0008]并行計算任務τ定義為〈丨(1,人,0,€[,(11,隊11,隊1^〈 101,102,~,1^>>,其中丨(1為任務的標 識;λ表示任務的狀態,0值表示未創建,1值表示已創建;P為任務的關鍵度;α為任務體的復 雜度;dl為任務的最大執行時間長度;β ιη為眾核處理機內存中的輸入數據區域,為輸出 數據區域;任務τ共有s個計算步,^為第i個計算步,其輸入數據區域為隊,輸出數據區域為 β 1+1;配置方案集Q在數據庫中靜態記錄了已經存在的任務計算步資源比例及分配方案; [0009] 為多形態計算系統設id個用于決策計算形態的決策器M-Agent: : =〈〈Ue,Mi>, MDJm,M。〉,以動態采集到的泛環境Ue因素和當前的計算形態1作為決策輸入,MD是基于模 糊推理或人工神經網絡設計的形態決策邏輯;
[0010] 決策器根據用戶定義的推理規則,對所采集環境因素的狀態進行在線判斷,進而 從形態集合ζΜ中決策出新的計算形態M。及其參數;
[0011] 決策器根據眾核資源占用狀態、可并行執行任務的關鍵度與時間約束參數的綜合 約束,在有足夠可用眾核資源的情況下,依次按照任務的關鍵度和時間約束,選擇出關鍵度 高或時間約束更為緊急的并行任務,進而形成可部署并行任務集ζ< τ.(Ρ>;
[0012] 步驟Β、單任務的計算復雜度評估,包括以下步驟:
[0013] Β1、接收到待處理的矩陣數據,h為矩陣高度,w為矩陣寬度;若在Q中查詢到任務T1 的計算開銷矩陣Z JMw)和分配方案,且分配方案不存在任何元素的值為0,則轉入步驟C, 否則轉入步驟B2;
[0014] B2、任務的η核模式復雜度計算,包括以下步驟:
[0015] Β21、根據任務T1Sn核形態時,T1所需核資源s*n不超過可分配計算核的數量N的約 束,為η設置初值1,設定一個非負整型的遞增步長Λη,Δη< int(N/s)-n;建立大小為s* (int((N-l)/ △ n) + l)的計算開銷矩陣 Z i(h*w)
矩陣元素Tpq表示4在1!核模式下的時間開銷,p為元組的行下標,q為元素的列下標,Igqg
;元素初值全部為〇;
[0016] B22、創建η核形態的任務Ti,包括了S個η核模式的計算步IC1, K2,…,Ks,共分配了η* s個計算核;
[0017] Β23、將待計算數據輸入計算步K1,并統計其計算時間Tin,若s>l,將數據輸出到緩 沖區β2;依次完成^至^^任務的計算時間統計;
[0018] B24、Ksi行完后,統計1^,銷毀當前η核模式的任務τ1;
[0019] Β25、如9〈(1的(0-1)/么11)+1)4知的值加1,并計算新的11值,返回步驟822 ;否則 在數據文件Q中存儲Ti任務對h*w大小數據的時間開銷矩陣Z i(h*w)及其△ η,轉入步驟Β3;
[0020] B3、各計算步的核模式選擇,包括以下步驟:
[0021] B31、建立一個Ti計算步的核數量矩陣Cs*(int((N-υ/Ληκυα),元素c為二元組<ω,τ> 中ω為各計算步分配的計算核數量,T為該核數量時計算步的時間開銷,初值全部為 <〇, 〇>
設置? = 14=1,從2辦抑)讀取1^的 值并賦予T',C11設置為〈I,Τη>;
[0022] Β32、遍歷Z i(h*w)的(ρ+1)行,選擇與Τ'的差最小一個元素T(P+i)q',將c(P+i)q的值置 為《1+(9'-1)*八11),1'([)+1)(1'>,將1''賦值為1&?(。 1(1.1',。2(1.1',",。([)+1)(1.1');
[0023] B33、若p小于s,將p值加1,轉入B32;若p不小于s,將p賦值為l,q的值加1,轉入B34;
[0024] B34、若q < (int( (N-1)/ Δ n)+l),B32;否則,轉入B35;
[0025] B35、對Cs*(int((N-1)/An)+I)(i)的每一列,將同列兀素的時間ω和T分別求和,得到該 列方案時^的核資源總數和時間開銷;
[0026] Β36、選擇時間開銷小于T1. dl且所需資源最少的一列q作為^的任務構造方案,并 將該列以兀組〈Clq,C2q,C3q,…,Csq〉存入ζ。;
[0027] 837、若〇^^>中存在未評估任務,則在(<1.(?>中選擇新的任務^并轉到81;否則轉步 驟C;
[0028] 步驟C、多任務間的核資源優化分配,包括以下步驟:
[0029]在已運行任務中,比新到來任務關鍵度高的所有任務繼續運行,其他已運行任務 與新到達任務構成待部署任務集合^'^,^,統計待部署任務集合中任務所占用核資源與系 統空閑核資源的和Ct,以待分配;
[0030] 根據關鍵度優先、任務時間約束及可用核資源數量,進行多任務資源的預分配:
[0031] a)按照關鍵度由高到低,依次從選取一個任務T,根據Gc中的方案計算其 所需的核資源數C;
[0032] b)若Ct 2 C,為任務τ預分配C個核資源,將Ct的值減去C;否則,轉入步驟c);
[0033] c)若中存在未分配核資源的任務,跳轉至a)執行直到ζ%#為空或不存在 任務所需的C小于Ct;
[0034] 生成預分配方案;若存在不可滿足資源數量要求的任務,將任務集輸出反饋給用 戶;
[0035] 對于已運行且關鍵度不高于新任務的任務,若預分配成功,則根據預分配方案及 Gc中的計算步資源比例,重新分配資源啟動該任務;否則,銷毀任務,釋放核資源及存儲資 源;
[0036] 對于新到達的每一個任務,若預分配成功,則根據心中的計算步資源比例為每一 個計算步分配核資源及存儲資源,構造任務并啟動,將任務的狀態λ置為1;若預分配不成 功,則將任務的狀態λ置為O,取消該任務并進行系統提示;
[0037]最后,完成任務集中所有任務的啟動;
[0038] 步驟D、返回步驟A,直至系統停機。
[0039] 本發明的有益效果是:面向環境自適應的多形態眾核計算特征,引入了泛環境、計 算形態、眾核任務等模型與相應的管理方法。本發明可以根據環境變化,自動決策眾核任務 集及其屬性,進而可以根據輸入數據規模的變化及任務執行的時間約束,自主測算任務中 各計算步的時間復雜度、資源-效能擬合關系。在高關鍵度任務優先的前提下,對等待啟動 的任務進行資源預分配規劃,并根據各任務的"資源-效能擬合關系"實現計算步效能均衡 的資源分配。該方法可以為環境自適應的眾核任務多形態管理及整體計算效能的優化提供 良好支撐。
【附圖說明】
[0040] 圖1描述了本發明中的流式眾核任務計算步處理邏輯;
[0041] 圖2描述了本發明中M-Agent的基于泛環境因素的計算形態決策邏輯;
[0042]圖3描述了本發明中的眾核任務形態構造與管理流程。
【具體實施方式】
[0043] 下面結合附圖和實施例對本發明進一步說明,本發明包括但不僅限于下述實施 例。
[0044] 本發明的技術方案包括以下步驟:
[0045] Α、眾核任務及其運行屬性決策。
[0046] 對于信息物理融合的智能化嵌入式系統而言,其并行任務集及其運行屬性決策與 當前外部所處的物理世界狀態和內部的系統資源構造形態及運行狀態密切相關,是一個更 為復雜的過程。基于如下物理環境、系統軟硬件資源、運行形態等模型,可將并行任務運行 屬性的實時決策機制分為如下步驟進行描述。
[0047]物理環境表示為Ε,其包括了系統運行相關的η個環境因素ε,并記為<ει,ε2,···,ε η >;系統內部資源表示為R,其包括了系統計算、通信、存儲、控制等資源,表示為〈η,κ,···,η >,m為資源類型的數量。本發明中,內部資源是指眾核計算資源。統一地,將物理環境因素、 系統資源歸一表示為泛環境Ue。
[0048] 計算形態M描述了計算系統在運行時軟硬件資源的基本構造模式及狀態,表示為〈 ζ<τ,φ>,ζ <. r,. 其中,ζ表示集合,τ是并行計算任務個體;r是眾核計算資源個體,φ存儲任 務或資源的運行參數或分配參數;ζ<τ,.φ>表示任務及其運行參數的集合,ζ<ι·.φ>表示資源及 其數量參數的集合。進而,并行計算任務T定義為〈1(1,1,0,€[,(11,0111,0。 1^〈101,102,~, 1^>>,其 中id為任務的標識;λ表示任務的狀態,0值表示未創建,1值表示已創建;P為任務的關鍵度, 其值越小標識任務的重要程度越高;α為任務體的復雜度;dl為任務的最大執行時間長度; β ιη為眾核處理機內存中的輸入數據區域,為輸出數據區域;任務τ共有s個計算步,^為 第i個計算步,共s個,其輸入數據區域為&,輸出數據區域為β 1+1;配置方案集Gc在數據庫中 靜態記錄了已經存在的任務計算步資源比例及分配方案。
[0049] Al、環境適應的任務集決策。
[0050]不同計算形態下,定義了不同的計算任務集、資源基本構型及運行時參數。眾核處 理機上,計算形態的切換首先是并行計算任務集的決策以及對各任務眾核計算資源的構型 決策。具體操作為:
[0051]首先,為多形態計算系統設計一個用于決策計算形態的軟件模塊Μ-Agent::=〈〈 υθ,ΜΟ,ΜΟ,ζΜ,Μ。〉,稱之為形態決策器。該決策器以動態采集到的泛環境Ue因素和當前的計 算形態1作為決策輸入,MD是基于模糊推理或人工神經網絡等智能化方法設計的形態決策 邏輯;
[0052]然后,決策器根據用戶定義的推理規則,對所采集環境因素的狀態進行在線判斷, 進而從形態集合ζΜ中決策出新的計算形態M。及其參數;
[0053]最后,決策器根據眾核資源占用狀態、可并行執行任務的關鍵度與時間約束參數 的綜合約束;在有足夠可用眾核資源的情況下,依次按照任務的關鍵度和時間約束,選擇出 關鍵度高或時間約束更為緊急的并行任務,進而形成可部署并行任務集《^>。
[0054] Β、單任務的計算復雜度評估。
[0055] 并行任務集的確定以及面向任務屬性的眾核資源優化分配,是在眾核處理機中實 現全局優化并行計算的關鍵。對于確定數量的眾核資源,為M形態下ζ< τ.<ρ>中的并行任務集 合理的分配計算資源,使得各任務在滿足基本執行時間和精度要求的基礎上,盡可能地提 高執行效率是保障其關鍵度的重要體現。
[0056] Bl、查詢給定數據規模時的任務復雜度參數。
[0057] 接收到待處理的矩陣數據;根據該數據矩陣大小h*w,其中h為矩陣高度、w為寬度; 若在Q中可查詢到任務^的計算開銷矩陣Z 1(Mw)和分配方案,且分配方案不存在任何元 素的值為〇,則轉入步驟C處理,否則轉入步驟B2處理。
[0058] B2、任務的η核模式復雜度計算。
[0059] α為任務的基本計算復雜度,可由任務設計者設定。但對于數據規模可變的并行計 算任務而言,算法的執行時間與數據規模密切相關。為此,在創建任務^時,若單個輸入數 據規模發生變化,就需要在不改變其并行邏輯的前提下動態估算單核形態下的任務計算復 雜度。具體操作如下:
[0060] 首先,根據"任務T1Sn核形態時,T1所需核資源s*n不超過可分配計算核的數量Ν" 這一約束,為η設置初值1(表示單核任務模式),設定一個非負整型的遞增步長Δη,Δη < ;[111:(1'1/8)-11;建立式(1)所示大小為8*(;[111:((1'|-1)/411)+1)的計算開銷矩陣2 :1(]1抑),矩陣 元素TPq(p為元組的行下標,q為元素的列下標)表示4在11核模式下的時間開銷,I < q < (int (0-1)/^11)+1),11值可由式(2)計算;元素初值全部為〇;
[0061 ]
式(O
[0062]
式 α)
[0063] 第二,倉ll建η核形態的任務Ti,包括了 s個η核模式的計算步:K1,Κ2,…,Ks,共分配了 n*s個計算核;
[0064] 第三,將待計算數據輸入計算步K1,并統計其計算時間Tln,若s>l,將數據輸出到緩 沖區(62 ;按此方式,依次完成K2至KH任務的計算時間統計;
[0065] 第四,^執行完后,統計Tsn,銷毀當前η核模式的任務τ1;
[0066] 最后,如q〈(int((N-l)/Δn) + l),將q的值加 l,并依據式(2)計算新的n值,返回第 二步繼續;否則在數據文件k中存儲T1任務對h*w大小數據的時間開銷矩陣Z KMw)及其Δ η,轉入B3步驟執行。
[0067] Β3、各計算步的核模式選擇,具體操作為:
[0068] 根據"各計算步的計算時間開銷盡量接近"這一條件,基于矩陣的數據為任務^各 個計算步設定并行的核數量。
[0069] 首先,建立一個Ti計算步的核數量矩陣Cs*(int((Ν-υ/Μ+υ (i),元素 C為二元組〈ω,T >其中ω為各計算步分配的計算核數量,T為該核數量時計算步的時間開銷,初值全部為〈0, 〇>,如式⑶所示;設置p = l,q = l,從Zi(h*w)讀取Tpq的值并賦予T',C11設置為<1,Τη>;
[0070]
式(3) 務全局效能的優化。具體操作如下:
[0079] Cl、任務的核資源數量計算
[0080] 首先,已運行任務中,比新到來任務關鍵度高的所有任務繼續運行;其他已運行任 務與新到達任務構成待部署任務集合ζ'<τ. (Ρ>,統計該集合中任務所占用核資源與系統空閑 核資源的和Ct,以待分配;
[0081] 第二,根據關鍵度優先、任務時間約束及可用核資源數量,進行多任務資源的預分 配;
[0082] a)從關鍵度由高到低,依次從選取一個任務τ,根據Gc中的方案計算其所 需的核資源數C;
[0083] b)若Ct 2 C,為任務τ預分配C個核資源,將Ct的值減去C;否則,轉入步驟c);
[0084] c)若ζ'<τ,_中存在未分配核資源的任務,跳轉至a)執行直至Ι」ζ':< τ,<ρ為空或不存在 任務所需的C小于Ct。
[0085] 最后,生成預分配方案;若存在不可滿足資源數量要求的任務,將任務集輸出反饋 給用戶。
[0086] C2、任務資源分配與重構。
[0087] 首先,對于已運行且關鍵度不高于新任務的任務,若預分配成功,則根據預分配方 案及Q中的計算步資源比例,重新分配資源啟動該任務;否則,銷毀任務,釋放核資源及存 儲資源;
[0088] 然后,對于新到達的每一個任務,若預分配成功,則根據心中的計算步資源比例為 每一個計算步分配核資源及存儲資源,構造任務并啟動,將任務的狀態λ置為1;若預分配不 成功,則將任務的狀態λ置為0,取消該任務并進行系統提示;
[0089] 最后,完成任務集中所有任務的啟動。
[0090] 步驟D、周期性地執行步驟A、B、C、D,直至系統停機。
[0091] 結合圖1-圖3,本發明實施例的工作過程如下:
[0092] 首先M-Agent感知泛環境Ue的變化,動態決策、生成新的眾核任務集ζ<τ,進入任 務效能評估階段,M-Agent依次對中尚未評估的任務(即中不存在該任務的信息)創 建不同核數量的形態實體,并采用運行時統計的方式統計計算任務各計算步的資源比例模 型和不同核資源規模下的執行時間,計入ζ^Μ-Agent從已運行任務中選擇關鍵度小于 ζ、-τ. ?ρ>中任一任務關鍵度的所有任務,與新任務一同構成待部署任務集,統計該類任 務當前所占用的計算核資源數量;依關鍵度從高到低,M-Agent從ζ' <τ,(ρ>中依次選擇各個 任務,根據其時間約束計算并分配特定數量的核資源;對分配了資源且未運行的各個任務, 依據Gc中的計算步資源比例構造和啟動各計算步,對于未能成功分配資源的低關鍵度任 務,銷毀該任務;返回開始的泛環境監測執行。
[0093]本發明目前已成功實施于多任務流式眾核處理模式中,結合圖3及多任務并行計 算這一應用場景,本發明實施的具體步驟如下:
[0094]步驟Α、眾核任務及其運行屬性決策。
[0095]本實施例中,基于Kepler⑶DA的眾核處理機共有2496個計算核,共有6個眾核計 算任務Tl、T2、τ3、τ4、τ5、τ6和四個計算形態Mo、Μι、M2和M3,定義如下。
[0096] Tl:=<l,〇,l〇,null, 80mS , β?η , Pout, <Kl ,K2jK3jK4jK5jK6, κ7?
[0097] τ2: =<2,0,10,null ,3ms,β?η,Pout,<κι,κ2?
[0098] τ3: =〈3,0,10,nulI,15ms,Pin,,〈κι,Κ2,κ3,K4,κ5,κ 6,κ7,κ8>>
[0099] τ4: =<4,0,10,null ,21ms,β?η,Pout,<κι,κ2,κ3,Κ4?
[0100] Τ51 -〈5,0,10, nul 1,3rns, β:?η,Pout,〈κι, ι〇2, 1C3, 1C4, Kg, Kg〉〉
[0101 ] τ6: =〈1,〇,10 ,null,0.5ms,0in,0out,〈Ki>>
[0102] Mo: =〈{null},{null}〉/*異常態*/
[0103] Μι: = <{<τι,τι.ρ = 1>,<τ2,τ2.ρ = 8>,<τ3,τ3.ρ = 3>} , {1024}>
[0104] M2: = <{<τι,τ?·Ρ = 6>,<τ4,τ4.Ρ=1>,<τ5,τ5.Ρ = 2>} , {512}>
[0105] M3: =<{<ti,ti.p = 1>,<T2,T2.p=10>,<T3,t3.p = 5>,<T6,t6.p = 4>} , {2048}>
[0106] 步驟Al、環境適應的任務集決策。
[0107] 本實施例中,形態決策器M-Agent基于模糊推理邏輯設計。其以外界環境中的障礙 物距離d、障礙物的威脅程度r以及計算平臺中的可用眾核資源及其狀態作為輸入,其輸入 變量屬性的模糊子集如表1、表2所示,輸入變量的離散域模糊集合隸屬度分布如表3所示。
[0108] 表1物理環境側面的模糊子集說明
[0109]
[0110]
[0111]
[0112]
[0113]
[0114] M-Agent實時感知泛環境中環境側面或事件的變化,并通過設定的模糊推理規則 實時決策出新的計算形態。進而,根據眾核資源的狀態以及新形態下任務的重要程度來決 策出可部署于中和處理器的并行任務集。障礙物距離d實際論域的取值范圍為[0,104],威 脅程度r實際論域的取值范圍為[0,100]。根據量化公式1和2將其量化至離散論域[0,6]中。
[0115] % =. 4」 式 1
[0116] =[0.06 Xe. \ 式 2
[0117] 如上所述,輸出變量M為計算形態,其值劃分為MtKM1、M2、M 3等4個值,并量化至離散 論域[0,6]中。若計算資源異常,所有模態轉入Mo計算形態。由此,輸出變量的隸屬度函數及 其決策規則分別如表4、表5所不。
[0118]表4輸出變量M的隸屬度函數
[0122] 實際中,用戶可根據應用特點及需要設計不同的M-Agent決策邏輯和相關規則。
[0123] 步驟B、單任務的計算復雜度評估。
[0124]在構造、部署任務之前,先通過自適應運行測試的方法對特定數據規模下的眾核 任務計算復雜度進行評估。
[0125]步驟Bl、查詢給定數據規模時的任務復雜度參數。
[0126]接收到待處理的矩陣數據;輸入數據矩陣大小(h = 640,w = 480),若在ζ。中可查詢 到任務T1的多核計算開銷矩陣Z ,,且分配方案不存在任何元素的值為〇,則轉入步驟C處理, 否則轉入步驟B2處理。
[0127]步驟B2、任務的η核模式復雜度計算。
[0128]步驟Β21,根據s個計算步的任務Ti所需核數量s*n(n指任務T i為η核形態)不超過可 分配計算核N= 350這一約束,設定一個遞增步長Δ η = 8;建立式(1)所示大小為8*(;[111:((1'1-1)/ A η)+1)的計算開銷矩陣Z辦抑),矩陣元素Tpq表示Kt^n核模式下的時間開銷,I < q < (11^(0-1)//\11)+1),11值可由式(1)計算;元素初值全部為0; r ^ fl; q=l 時
[0129] IY= \ ^ 式⑴
[(q-1) X Δη; q>l時
[0130] 步驟B22,創建η核形態的任務Ti,其實際上是包括了S個η核的計算步:K1^2,…, ks,共占用n*s個計算核;
[0131 ]步驟B23,將待計算數據輸入計算步K1,并統計其計算時間Ti;若s>l,將數據輸出到 緩沖區;按此方式,依次完成K2至Kh任務的計算時間統計;
[0132] 步驟Β24,^執行完后,統計Tsn,銷毀當前η核模式的任務^;
[0133] 步驟Β25,如q〈(int( (N-I)/ Δ η) + 1),將q的值加1,并依據式(1)計算新的η值,返回 第二步繼續;否則在數據文件Q中存儲T1任務對h*w大小數據的時間開銷矩陣Z ,(Mw)及其 Δ η,轉入B3步驟執行。τ5任務的復雜度如表6所示。
[0134] 表6η核模式的^任務復雜度矩陣(ms)
[0136] 步驟B3、各計算步間的多核模式選擇
[0137] 步驟B31,建立一個Ti計算步的核數量矩陣Cs*(int((N-d/w+dG),全部元素c的初值 均為〈〇,〇>;設置P = I,q = 1,從z i(h*w)讀取Tpq的值并賦予T',C11設置為〈I,Tn>;
[0138] 步驟Β32,遍歷Z1(Mw)的(ρ+1)行,根據"與Τ'的差最小"這一條件選擇一個元素 T(P+1) q,,分別將c(P+1)q的值置為《l + (q'-1 )* Δ n),T(P+1)q,>;將T' 賦值為Max(clq. T,c2q. T,…, C(p+l)q . T);
[0139] 步驟Β33,若ρ小于s,將ρ值加I,轉入第二步;若ρ不小于s,將ρ賦值為I,q的值加I, 轉入第四步;
[0140] 步驟B34,若q < (int((N_l)/An) + l),轉入第二步;否則,得出表7所示的計算結 果,轉入第五步;
[0141] 表7任務T1的計算步核數量分配矩陣
[0142]
[0143] 步驟B35,對Cs*(int((N-1)/Δη) + 1)( i)的每一列,將同列兀素的時間ω和T分別求和,得 到該列方案時T1的核資源總數和時間開銷;如T5的不同構造方案及其時間開銷為:〈84, 3.852>,<99,3.108>,<107,2.815>,<138,2.367>,<193,1.818>,<209,1.705>,<217,1.659 >,<225,1.62>〇
[0144] 步驟Β36,選擇時間開銷小于T1. dl且所需資源最少的一列q作為T1的任務構造方 案,并將該列以元組<ciq,c 2q,c3q,…,csq> 存入((:。如15.(11 為 3ms 時,方案〈107,2.815>、〈138, 2 · 367>、〈193,1 · 818>、〈209,1 · 705>、〈217,1 · 659>、〈225,1 · 62> 均可滿足時間要求,但根據 資源最少的原則,最終選定〈107,2.815>對應的任務構造方案,SPC5矩陣中的第三列。
[0145] 步驟C、多任務間的核資源優化分配
[0146] 步驟CU任務的核資源數量計算
[0147] 步驟Cl 1,已運行任務中,比新到來任務關鍵度高的所有任務繼續運行,如M1轉到M3 時,任務T1的關鍵度最高,繼續運行;其他已運行任務與新到達任務構成待部署任務集合 ζ'<τ,CP= ?τ2, T3, L丨,統計該集合中任務所占用核資源與系統空閑核資源的和Ct,以待分配;
[0148] 步驟C12,根據關鍵度優先、任務時間約束及可用核資源數量,進行多任務資源的 預分配;
[0149] a)從關鍵度由高到低,從匕^>中依次選取任務,如τ6、τ3、τ 2,根據GC計算其所需 的最少資源數C;
[0150] b)若Ct 2 C,為任務τ預分配C個核資源;將Ct的值減去C;否則,轉入步驟c)執行;
[0151] c)若ζ'<τ.<ρ>中存在未分配核資源的任務,跳轉至a)執行直到ζ%,#為空或不存在 任務所需的C小于Ct。
[0152] 步驟C13,生成預分配方案;若存在不可滿足資源數量要求的任務,將任務集輸出 反饋給用戶。
[0153] 步驟C2、任務資源分配與重構。
[0154] 步驟C21,對于已運行且關鍵度不高的任務,如13和12,若預分配成功,則根據預分 配方案及Q中的計算步資源比例,重新分配資源啟動該任務;否則,銷毀任務,釋放核資源 及存儲資源;
[0155] 步驟C22,對于新到達的每一個任務,如τ6,若預分配成功,則根據心中的計算步資 源比例為每一個計算步分配核資源及存儲資源,構造任務并啟動,將任務的狀態λ置為1;若 預分配不成功,則將任務的狀態λ置為0,取消該任務并進行系統提示;
[0156] 步驟C23,完成任務集中所有任務的啟動。
[0157] 步驟D、周期性地執行步驟A、B、C、D,直至系統停機。
[0158] 本發明可為具有環境自適應能力的智能化高性能眾核計算系統設計提供方法支 撐。在將物理環境、計算資源等因素規約為系統運行所處泛環境的基礎上,通過計算形態智 能決策機制以及眾核計算任務及其計算步復雜度的運行時自適應評估,可以實現"資源-效 能"優化的任務形態構造和部署,在保證各任務時間約束的同時也提升眾核資源的利用率。 本發明適用于多計算形態的智能化高性能計算系統,尤其可以為無人航行器、智能機器人 等智能系統的實時數據處理與識別以及輸入數據規模可變的大數據實時處理系統等的設 計提供方法支撐。
[0159] 依據本發明,本領域的技術人員可以很容易地設計出環境自適應的多形態眾核任 務計算系統實施例。
【主權項】
1. 一種自適應眾核資源調度方法,其特征在于包括下述步驟: 步驟A、將物理環境表示為E,包括系統運行相關的η個環境因素 ε,記為<ει,62, 一,60): 系統內部資源表示為R,記為如1,^,-,^。〉,111為資源類型的數量;將物理環境因素、系統資 源歸一表示為泛環境化; 計算形態Μ描述了計算系統在運行時軟硬件資源的基本構造模式及狀態,表示為< ζ勺.φ>,ζ < η φ>>;其中,ζ表示集合,τ是并行計算任務個體;r是眾核計算資源個體,φ存儲任務 或資源的運行參數或分配參數;ζ沖φ>表示任務及其運行參數的集合,ζ<ι,φ>表示資源及其 數量參數的集合; 并行計算任務Τ定義為<id,λ,p,α,dl,βln,β。ut,<Kl,K2,…,Ks〉〉,其中id為任務的標識;λ 表示任務的狀態,0值表示未創建,1值表示已創建;Ρ為任務的關鍵度;α為任務體的復雜度; dl為任務的最大執行時間長度;βιη為眾核處理機內存中的輸入數據區域,iW為輸出數據區 域;任務τ共有S個計算步,Κι為第i個計算步,其輸入數據區域為01,輸出數據區域為βι+ι;配 置方案集Cc在數據庫中靜態記錄了已經存在的任務計算步資源比例及分配方案; 為多形態計算系統設計一個用于決策計算形態的決策器M-Agent: : = <OJe,Mi〉,MD,CM, M〇〉,W動態采集到的泛環境化因素和當前的計算形態Ml作為決策輸入,MD是基于模糊推理 或人工神經網絡設計的形態決策邏輯; 決策器根據用戶定義的推理規則,對所采集環境因素的狀態進行在線判斷,進而從形 態集合ζΜ中決策出新的計算形態M。及其參數; 決策器根據眾核資源占用狀態、可并行執行任務的關鍵度與時間約束參數的綜合約 束,在有足夠可用眾核資源的情況下,依次按照任務的關鍵度和時間約束,選擇出關鍵度高 或時間約束更為緊急的并行任務,進而形成可部署并行任務集(<r.cp>; 步驟B、單任務的計算復雜度評估,包括W下步驟: B1、接收到待處理的矩陣數據,h為矩陣高度,W為矩陣寬度;若在中查詢到任務τι的計 算開銷矩陣Ζ 1化*w)和分配方案,且分配方案不存在任何元素的值為0,則轉入步驟C,否則 轉入步驟B2; B2、任務的η核模式復雜度計算,包括W下步驟: Β21、根據任務τι為η核形態時,τι所需核資源s*n不超過可分配計算核的數量Ν的約束, 為η設置初值1,設定一個非負整型的遞增步長Δη, An^int(N/s)-n;建立大小為s*(int ((N-1)/ Δ n)+l)的計算開銷矩陣Z,矩陣 元素 Tpq表示κρ在η核模式下的時間開銷,P為元組的行下標,q為元素的列下標,l<q< (int ((Ν-1)/Δη)+1)元素初值全部為0; B22、倉幡η核形態的任務Ti,包括了 s個η核模式的計算步Κι, Κ2, · · ·, Ks,共分配了n*s個計 算核; B23、將待計算數據輸入計算步K1,并統計其計算時間Tin,若s〉l,將數據輸出到緩沖區 02 ;依次完成K2至Ks-l任務的計算時間統計; B24、Ks執行完后,統計Tsn,銷毀當前η核模式的任務τι; Β25、如q<(int((N-l)/An) + l),將q的值加1,并計算新的η值,返回步驟Β22;否則在數 據文件Cc中存儲τι任務對h*w大小數據的時間開銷矩陣Ζ 1化*w)及其Δ η,轉入步驟Β3; Β3、各計算步的核模式選擇,包括W下步驟: Β31、建立一個Ti計算步的核數量矩陣Cs*(int((N-i)/An)+i)(i),元素 C為二元組< ω ,τ>中ω 為各計算步分配的計算核數量,Τ為該核數量時計算步的時間開銷,初值全部為<0,0〉,設置P = l、q = l,從Ζ i化*w)讀取Tpq的值并賦予 Τ',cii設置為<1 ,Τιι> ; Β32、遍歷Ζ i化*w)的(ρ+1)行,選擇與Τ'的差最小一個元素 T(p+i)q',將c(p+i)q的值置為< (l + (q'-l)*An) ,T(p+l)q'>,將Τ' 賦值為 Max(ciq. T, C2q. T ,…,C(p+l)q. T); B33、若p小于s,將p值加1,轉入B32;若p不小于s,將p賦值為1,q的值加1,轉入B34; B34、若q< (int((N-l)/Δn)+l),B32;否貝lJ,轉入B35; B35、對Cs*(int((N-l)/An)+l)a)的每一列,將同列元素的時間ω和T分別求和,得到該列方 案時τι的核資源總數和時間開銷; Β36、選擇時間開銷小于τι.dl且所需資源最少的一列q作為τι的任務構造方案,并將該 列!?Α 兀組〈Clq , C2q , C3q , ... , Csq〉存入Cc ; B37、若弓<^. 中存在未評估任務,則在ζ<τ,中選擇新的任務τι并轉到B1;否則轉步驟C; 步驟C、多任務間的核資源優化分配,包括W下步驟: 在已運行任務中,比新到來任務關鍵度高的所有任務繼續運行,其他已運行任務與新 到達任務構成待部署任務集合ζ'<τ,op。,統計待部署任務集合中任務所占用核資源與系統空 閑核資源的和Ct,W待分配; 根據關鍵度優先、任務時間約束及可用核資源數量,進行多任務資源的預分配: a) 按照關鍵度由高到低,依次從;'<了.<^>中選取一個任務τ,根據Cc中的方案計算其所需 的核資源數C; b) 若Ct > C,為任務τ預分配C個核資源,將Ct的值減去C;否則,轉入步驟C); C)若ζ%,φ>中存在未分配核資源的任務,跳轉至a)執行直到ζ>々,φ>為空或不存在任務所 需的C小于Ct; 生成預分配方案;若存在不可滿足資源數量要求的任務,將任務集輸出反饋給用戶; 對于已運行且關鍵度不高于新任務的任務,若預分配成功,則根據預分配方案及Cc中的 計算步資源比例,重新分配資源啟動該任務;否則,銷毀任務,釋放核資源及存儲資源; 對于新到達的每一個任務,若預分配成功,則根據Cc中的計算步資源比例為每一個計算 步分配核資源及存儲資源,構造任務并啟動,將任務的狀態λ置為1;若預分配不成功,則將 任務的狀態λ置為0,取消該任務并進行系統提示; 最后,完成任務集中所有任務的啟動; 步驟D、返回步驟A,直至系統停機。
【文檔編號】G06F9/50GK105843679SQ201610155980
【公開日】2016年8月10日
【申請日】2016年3月18日
【發明人】張凱龍, 周少麗, 胡亮, 楊安勝, 蘇航, 吳曉, 姚遠
【申請人】西北工業大學