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

一種面向多核平臺的多線程劃分及靜態(tài)均衡調(diào)度策略的制作方法_2

文檔序號:9921923閱讀:來源:國知局
新任務(wù)塊集合,然后進入步驟014;
[0024] 步驟017.判斷m是否大于1,是則用m-Ι的值更新m,并返回步驟013,否則在預(yù)設(shè)系 統(tǒng)單線程負載波動范圍值Δ G_thread基礎(chǔ)上,按預(yù)設(shè)波動范圍擴大并更新Δ G_thread,然 后返回步驟009。
[0025] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟007中,提取任務(wù)塊集合中所有大于系 統(tǒng)單線程負載范圍標準值G_threadavi^^粒度值所對應(yīng)的各個任務(wù)塊,將該各個任務(wù)塊按其 粒度值由大致小的順序進行排序,將系統(tǒng)各線程按其順序與該各個任務(wù)塊依序進行一一對 應(yīng),將該各個任務(wù)塊分別分配至對應(yīng)線程上,用該各個任務(wù)塊的粒度值分別更新對應(yīng)各線 程上所對應(yīng)的負載。
[0026] 本發(fā)明所述一種基于面向多核平臺的多線程劃分及靜態(tài)均衡調(diào)度策略采用以上 技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:本專利所設(shè)計基于面向多核平臺的多線程 劃分及靜態(tài)均衡調(diào)度策略,提出用于評估分解出任務(wù)大小的粒度值參數(shù)概念,首先根據(jù)一 定判斷條件,判斷一個任務(wù)是否真正適合多線程并行;其次采用靜態(tài)調(diào)度策略,相比動態(tài)調(diào) 度來說,沒有在運行階段的調(diào)度開銷;最后,不同于一般的靜態(tài)調(diào)度策略,本發(fā)明提出一種 啟發(fā)式靜態(tài)調(diào)度策略,考慮了靜態(tài)調(diào)度時當分解的任務(wù)大小差異很大時,會造成各個線程 之間負載極不平衡的問題,通過獲取的任務(wù)塊的粒度值,可以將差異很大的任務(wù)塊合理分 配到不同線程上,達到負載均衡。
【附圖說明】
[0027] 圖1是本發(fā)明設(shè)計的面向多核平臺的多線程劃分及靜態(tài)均衡調(diào)度策略的流程圖。
【具體實施方式】
[0028] 下面結(jié)合說明書附圖對本發(fā)明的【具體實施方式】作進一步詳細的說明。
[0029] 如圖1所示,本發(fā)明所設(shè)計的一種面向多核平臺的多線程劃分及靜態(tài)均衡調(diào)度策 略,其特征在于,包括如下步驟:
[0030] 步驟001.初始化系統(tǒng)各線程上所對應(yīng)的負載G_loadm=0,G_loadm表示系統(tǒng)第m個 線程上所對應(yīng)的負載,111={1,一,1},1表示系統(tǒng)線程的數(shù)量;然后針對待處理任務(wù)進行劃 分,獲得計算邏輯相互獨立的各個任務(wù)塊,構(gòu)成任務(wù)塊集合,并且各個任務(wù)塊不可進一步劃 分,并進入步驟002。
[0031]步驟002.針對任務(wù)塊集合,以各任務(wù)塊單元為分析對象,將進入和退出各個任務(wù) 塊的源代碼位置作為插粧點分別進行插粧,由此可以獲取各任務(wù)塊的計算時間,分別作為 對應(yīng)任務(wù)塊的粒度值Gn,并進入步驟003;其中,G n表示任務(wù)塊集合中第η個任務(wù)塊的粒度值, η={1,···,Ν},Ν表示任務(wù)塊集合中任務(wù)塊的數(shù)量。
[0032] 步驟003.根據(jù)如下公式:
[0034]獲得任務(wù)塊集合中所有任務(wù)塊粒度值所對應(yīng)的粒度平均值Granule,并判斷粒度 平均值Granule是否小于等于預(yù)設(shè)粒度平均值,是則表明任務(wù)塊粒度值過小,由于每次線 程創(chuàng)建撤銷以及調(diào)度均有一定開銷,所以該任務(wù)塊集合中所有任務(wù)塊所對應(yīng)的待處理任務(wù) 不適合多線程并行,則將任務(wù)塊集合中所有任務(wù)塊所對應(yīng)的待處理任務(wù),任意分配至其中 一個線程上,由該線程針對該待處理任務(wù)進行串行處理,針對該待處理任務(wù)的調(diào)度策略結(jié) 束;否則進入步驟004。
[0035]步驟004.根據(jù)任務(wù)塊集合中所有任務(wù)塊粒度值所對應(yīng)的粒度平均值Granulavg,按 如下公式:
[0037]獲得任務(wù)塊集合中所有任務(wù)塊粒度值所對應(yīng)的粒度值方差SC,并判斷粒度值方差 Sc是否小于預(yù)設(shè)方差閾值S,是則表明任務(wù)塊粒度值相差不大,并行切分的任務(wù)塊比較均 勻,則進入步驟005;否則進入步驟006。
[0038]步驟005.判斷系統(tǒng)線程的數(shù)量Μ是否大于等于任務(wù)塊集合中任務(wù)塊的數(shù)量N,是則 將任務(wù)塊集合中各個任務(wù)塊一一對應(yīng)任意分配至各線程當中,由該各線程分別針對所分配 的任務(wù)塊進行處理,針對任務(wù)塊集合中所有任務(wù)塊所對應(yīng)的待處理任務(wù)的調(diào)度策略結(jié)束; 否則將第i個任務(wù)塊分配至第m個線程上,i = {m,m+M,···,m+KM},Κ為大于等于1的整數(shù),m+KM < N,實現(xiàn)針對任務(wù)塊集合中各個任務(wù)塊的分配,由系統(tǒng)各個線程分別針對所分配的任務(wù)塊 進行處理,針對任務(wù)塊集合中所有任務(wù)塊所對應(yīng)的待處理任務(wù)的調(diào)度策略結(jié)束。
[0039] 步驟006.按如下公式:
[0041]獲得任務(wù)塊集合中所有任務(wù)塊粒度值的總和平均分配至系統(tǒng)Μ個線程的平均值, 作為系統(tǒng)單線程負載范圍標準值G_threadavg,同時判斷任務(wù)塊集合中各任務(wù)塊所對應(yīng)的最 大粒度值是否大于G_thread avg,是則獲取任務(wù)塊集合中各任務(wù)塊所對應(yīng)的最大粒度值與6_ threadavg之間的差值,作為系統(tǒng)單線程負載波動范圍值Δ G_thread,然后進入步驟007;否 則預(yù)設(shè)系統(tǒng)單線程負載波動范圍值A(chǔ)G_thread,然后進入步驟007。
[0042]步驟007.提取任務(wù)塊集合中所有大于系統(tǒng)單線程負載范圍標準值G_threadavd9 粒度值所對應(yīng)的各個任務(wù)塊,將該各個任務(wù)塊按其粒度值由大致小的順序進行排序,將系 統(tǒng)各線程按其順序與該各個任務(wù)塊依序進行一一對應(yīng),將該各個任務(wù)塊分別分配至對應(yīng)線 程上,用該各個任務(wù)塊的粒度值分別更新對應(yīng)各線程上所對應(yīng)的負載,并在任務(wù)塊集合中 刪除該各個任務(wù)塊,將任務(wù)塊集合中剩余各個任務(wù)塊按其所對應(yīng)的粒度值由大至小的順序 進行排序,更新任務(wù)塊集合,獲得任務(wù)塊集合中任務(wù)塊的數(shù)量N ',然后進入步驟008。
[0043] 步驟008 ·初始化m = 1,η ' = 1,進入步驟009。
[0044] 步驟009.判斷G_loadm+G_Cn'是否小于等于G_threadavg+ Δ G_thread,是則將任務(wù) 塊集合中第η '個任務(wù)塊分配至第m個線程當中,用G_loadm+G_Cn,的值更新第m個線程上所對 應(yīng)的負載6_1 〇&(^,并在任務(wù)塊集合中刪除該任務(wù)塊,更新任務(wù)塊集合,然后進入步驟011; 否則進入步驟010;其中,G_C n,表示任務(wù)塊集合中粒度值按由小至大順序第η'個任務(wù)塊所對 應(yīng)的粒度值。
[0045] 步驟010.判斷η'是否等于Ν',是則進入步驟013;否則用n' + l的值更新η',返回步 驟009〇
[0046] 步驟011.判斷第m個線程上所對應(yīng)的負載6_1〇8(1111是否大于等于G_threadavg- Δ G_ thread,是則進入步驟012;否則令η' =1,并返回步驟009。
[0047]步驟012.判斷m是否等于Μ,是則針對任務(wù)塊集合中所有任務(wù)塊所對應(yīng)的待處理任 務(wù)的調(diào)度策略結(jié)束;否則用m+1的值更新m,并令η'=1,然后返回步驟009。
[0048]步驟013.判斷第m個線程上所對應(yīng)任務(wù)塊的數(shù)量是否大于1,是則將第m個線程上 最后所分配的任務(wù)塊退回至任務(wù)塊集合當中,并更新任務(wù)塊集合,然后進入步驟014;否則 進入步驟015。
[0049]步驟014.判斷任務(wù)塊集合中是否存在位于步驟013中所退回任務(wù)塊下一個位置的 任務(wù)塊,是則將任務(wù)塊集合中步驟013中所退回任務(wù)塊的下一個任務(wù)塊分配至第m個線程當 中,用G_loadm加該任務(wù)塊粒度值的和更新第m個線程上所對應(yīng)的負載6_1<^(1 111,并在任務(wù)塊 集合中刪除該任務(wù)塊,更新任務(wù)塊集合,然后進入步驟011;否則返回步驟013。
[0050]步驟015.判斷第m個線程上所對應(yīng)任務(wù)塊的數(shù)量是否等于1,是則進入步驟016;否 則進入步驟017。
[0051 ]步驟016.判斷第m個線程上是否存在大于系統(tǒng)單線程負載范圍標準值6_1:11^3(1£^ 的粒度值所對應(yīng)的任務(wù)塊,是則進入步驟017;否則將第
當前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1