一種基于遺傳算法的任務調度方法及裝置的制造方法
【專利摘要】本發明公開了一種基于遺傳算法的任務調度方法及裝置,用于解決如何選擇最優的任務與處理器之間調度方案的問題,包括:輸入N個第一基因序列集合,分別從所述N個第一基因序列集合中,選擇出適應值大于或等于所述第一基因序列集合使用的閾值的基因序列,將選擇出的基因序列劃分成M個第二基因序列集合,對于每個第二基因序列集合,將所述第二基因序列集合中的任意兩個基因序列進行基因交叉處理,將基因交叉處理后得到的基因序列作為下一次迭代過程的輸入,在所述迭代過程達到設定條件時,停止迭代,從得到的基因序列中,選擇一個基因序列作為任務調度方案。由于多組基因序列同時進行迭代處理,縮短了處理時間,提高了處理效率。
【專利說明】
一種基于遺傳算法的任務調度方法及裝置
技術領域
[0001] 本發明涉及數據處理技術領域,尤其涉及一種基于遺傳算法的任務調度方法及裝 置。
【背景技術】
[0002] 隨著信息社會發展帶來的計算任務的增長,導致大量待計算的任務等待,同時,計 算資源一般為處理器性能不同的硬件,不同的任務在不同的硬件設備上的計算開銷是不同 的,因此,為了提高硬件設備的利用率、降低整體的計算開銷,任務調度方案的優化問題極 為重要。
[0003] 由達爾文物種進化理論可知,每個種群中的基因將以一定概率被遺傳給下一代, 從而保持該種群的特征不會發生大的改變,且根據優勝劣汰的原理,優良的基因會被更多 地保留;如此經過若干代的進化以后,整個種群中的基因會向適應值好的方向發展,最終整 個種群達到最好的基因庫。
[0004] 遺傳算法是根據進化論與遺傳變異理論為基礎求解全局最優解的仿生型算法。目 前常用的遺傳算法為串行遺傳算法,串行遺傳算法依次包括如下步驟:
[0005] 確定閾值;計算基因序列集合中的每個基因序列的適應值;從基因序列集合中選 擇出適應值大于閾值的基因序列;將選擇出的基因序列進行基因交叉;以及基因變異等,得 到新的基因序列集合。
[0006] 其中,所述基因變異是指基因序列中的某個基因值發生變化;例如:任意基因序列 A(1253654)中的第N個基因變異,假如N為3,若序列A中的第3個基因值由5隨機變成3,則所 述基因序列A變異為A( 1233654)。
[0007] 由于基因序列集合中包含大量的基因序列,采用串行遺傳算法的處理周期長,處 理效率低,無法滿足實時任務的要求,因此,如何選擇最優的任務與處理器之間的調度方案 是目前需要解決的問題。
【發明內容】
[0008] 本發明的目的是提供一種基于遺傳算法的任務調度方法及裝置,以解決如何選擇 最優的任務與處理器之間的調度方案的問題。
[0009] 本發明的目的是通過以下技術方案實現的:
[0010] -種基于遺傳算法的任務調度方法,包括:
[0011] 輸入N個第一基因序列集合,分別從所述N個第一基因序列集合中,選擇出適應值 大于或等于所述第一基因序列集合使用的閾值的基因序列,其中,所述第一基因序列集合 使用的閾值是根據所述第一基因序列集合包含的基因序列的適應值確定的,所述基因序列 用于表征需要處理的任務與處理所述任務的處理器之間的對應關系,所述適應值用于表征 基因序列在任務調度中處理任務的能力,N為大于或等于2的正整數;
[0012] 將選擇出的基因序列劃分成M個第二基因序列集合,對于每個第二基因序列集合, 將所述第二基因序列集合中的任意兩個基因序列進行基因交叉處理,將基因交叉處理后得 到的基因序列作為下一次迭代過程的輸入,M為正整數;
[0013] 在所述迭代過程達到設定條件時,停止迭代,從得到的基因序列中,選擇一個基因 序列作為任務調度方案。
[0014] 基于與方法同樣的發明構思,本發明實施例還提供一種基于遺傳算法的任務調度 裝置,包括:
[0015] 第一模塊,用于輸入N個第一基因序列集合,分別從所述N個第一基因序列集合中, 選擇出適應值大于或等于所述第一基因序列集合使用的閾值的基因序列,其中,所述第一 基因序列集合使用的閾值是根據所述第一基因序列集合包含的基因序列的適應值確定的, 所述基因序列用于表征需要處理的任務與處理所述任務的處理器之間的對應關系,所述適 應值用于表征基因序列在任務調度中處理任務的能力,N為大于或等于2的正整數;
[0016] 第二模塊,用于將選擇出的基因序列劃分成M個第二基因序列集合,對于每個第二 基因序列集合,將所述第二基因序列集合中的任意兩個基因序列進行基因交叉處理,將基 因交叉處理后得到的基因序列作為下一次迭代過程的輸入, M為正整數;
[0017] 第三模塊,用于在所述迭代過程達到設定條件時,停止迭代,從得到的基因序列 中,選擇一個基因序列作為任務調度方案。
[0018] 本發明實施例提供的一種基于遺傳算法的任務調度方法及裝置中,首先輸入N個 第一基因序列集合,分別從所述N個第一基因序列集合中,選擇出適應值大于或等于所述第 一基因序列集合使用的閾值的基因序列,然后將選擇出的基因序列劃分成M個第二基因序 列集合,對于每個第二基因序列集合,將所述第二基因序列集合中的任意兩個基因序列進 行基因交叉處理,將基因交叉處理后得到的基因序列作為下一次迭代過程的輸入,在所述 迭代過程達到設定條件時,停止迭代,從得到的基因序列中,選擇一個基因序列作為任務調 度方案。由于多組基因序列同時進行迭代處理,縮短了處理時間,提高了處理效率。
【附圖說明】
[0019] 圖1為本發明實施例提供的一種基于遺傳算法的任務調度方法的流程圖;
[0020] 圖2為本發明實施例提供的一種并行遺傳算法的示意圖;
[0021 ]圖3為本發明實施例提供的一種CPU端和高性能硬件設備端數據傳輸示意圖;
[0022] 圖4為本發明實施例提供的又一種基于遺傳算法的任務調度方法的流程圖;
[0023] 圖5為本發明實施例提供的一種基于遺傳算法的任務調度裝置的示意圖。
【具體實施方式】
[0024]下面將結合附圖,對本發明實施例提供的技術方案進行詳細說明。
[0025] 本發明實施例提供了一種基于遺傳算法的任務調度方法,如圖1所示,包括如下操 作:
[0026] 步驟100、輸入N個第一基因序列集合,分別從所述N個第一基因序列集合中,選擇 出適應值大于或等于所述第一基因序列集合使用的閾值的基因序列,其中,所述第一基因 序列集合使用的閾值是根據所述第一基因序列集合包含的基因序列的適應值確定的,所述 基因序列用于表征需要處理的任務與處理所述任務的處理器之間的對應關系,所述適應值 用于表征基因序列在任務調度中處理任務的能力,N為大于或等于2的正整數。
[0027]在本發明實施例中,適應值用于表征基因序列在任務調度中處理任務的能力,基 因序列的適應值可以通過所述需要處理的任務在所述處理器上的運行開銷以及所述需要 處理的任務的實時要求系數計算得到的;其中,所述運行開銷是指基因序列中每個任務通 過處理器處理的時間;所述實時要求系數是指需要處理的任務對響應時間的要求程度。
[0028] 可選的,第一基因序列集合中包含的基因序列的數量可以相同也可以不同,本發 明實施例中對其不作限定。
[0029] 步驟110、將選擇出的基因序列劃分成M個第二基因序列集合,對于每個第二基因 序列集合,將所述第二基因序列集合中的任意兩個基因序列進行基因交叉處理,將基因交 叉處理后得到的基因序列作為下一次迭代過程的輸入,M為正整數。
[0030] 可選的,第二基因序列集合中包含的基因序列的數量可以相同也可以不同,本發 明實施例中對其不作限定。
[0031] 可選的,M的值可以等于N的值,也可以小于N的值,本發明實施例中對其不作限定。
[0032] 本步驟中,在進行基因交叉時,所選擇的第二基因序列集合中的任一基因序列均 可以與自身以外的其他基因序列進行基因交叉,從而能有效的避免出現局部最優基因序 列,得到更合適的的最優基因序列。并且,本步驟中根據基因交叉后得到的基因序列確定下 一次迭代過程中使用的閾值,每次迭代后下一次使用的閾值逐漸提高,因為將每一次基因 交叉得到基因序列的適應值的平均值做為下一次迭代過程中使用的閾值,通過該閾值去掉 適應值小于該閾值的基因序列,下一次進行交叉的基因序列的適應值都是大于等于該閾值 的基因序列,因此每次迭代后下一次使用的閾值比上一次提高了,加快了最優基因序列的 搜索速度。
[0033]步驟120、在所述迭代過程達到設定條件時,停止迭代,從得到的基因序列中,選擇 一個基因序列作為任務調度方案。
[0034]本發明實施例提供的一種基于遺傳算法的任務調度方法,首先輸入N個第一基因 序列集合,分別從所述N個第一基因序列集合中,選擇出適應值大于或等于所述第一基因序 列集合使用的閾值的基因序列,然后將選擇出的基因序列劃分成M個第二基因序列集合,對 于每個第二基因序列集合,將所述第二基因序列集合中的任意兩個基因序列進行基因交叉 處理,將基因交叉處理后得到的基因序列作為下一次迭代過程的輸入,在所述迭代過程達 到設定條件時,停止迭代,從得到的基因序列中,選擇一個基因序列作為任務調度方案。由 于多組基因序列同時進行迭代處理,縮短了處理時間,提高了處理效率。
[0035]舉例說明:假設給定處理器的集合記為P= {p〇,pi,--,pn-i}和在給定的處理器上 執行的任務的集合記為T= {to,ti,--,tm-1},運行時間£?(1:^」)=1:內」,運行時間£?(1^, Pj)是指任務^在處理器 ?1上的運行開銷,TP(t〇是任務t的實時要求系數;
[0036] 適應值f(T-P)定義為: _7] / 二1 /.(EP(ti ,p」pTPCti)) (11)
[0038] 假設有3個處理器,6個任務,對應的運行時間EP矩陣如下表1所示:
[0039] 表 1
[0041] 例如,基因序列為323121,序列中的每一個數值"1"、"2"、"3"分別代表處理器的編 號,序列的長度代表任務的個數,假設實時要求系數都為1,基因序列323121總的運行開銷 為:4+34+2+24+34+13 = 111。根據公式1.1計算基因序列323121的適應值為:1/4+1/34+1/2+ 1/24+1/34+1/13 = 4919/5304;任務的運行總開銷最小,則該任務對環境的適應值越高;當 一個處理器需要處理多個任務時,實時要求系數高的任務優先處理。
[0042] -種可能的實現方式中,對于每個第二基因序列集合,將所述第二基因序列集合 中的任意兩個基因序列進行基因交叉處理之后,包括:
[0043] 從基因交叉處理前的基因序列和基因交叉處理后得到的基因序列中,選擇R個基 因序列,并將得到的R個基因序列作為下一次迭代過程的輸入,R為正整數。
[0044] 舉例說明,假設基因交叉處理前的基因序列為123123、132132和312312,基因交叉 處理后得到的基因序列為 123132、123312 和 132312;從 123123、132132、312312、123132、 123312和132312六個基因序列中選擇三個基因序列作為下一次迭代過程的輸入。
[0045] 從基因交叉處理前的基因序列和基因交叉處理后得到的基因序列中,選擇P個基 因序列時,可以采用以下方式:
[0046] 將基因交叉處理前的基因序列和基因交叉處理后得到的基因序列,按照適應值的 從大到小進彳丁排序,選擇如P個基因序列。
[0047] 當然,除了上次選擇方式,還可以采用其他方式,如隨機選擇等,本發明實施例不 對選擇方式進行限定。
[0048] 本發明實施例中,將各基因序列的適應值的平均值確定為所述第一基因序列集合 使用的閾值,可以在下一次迭代過程中去掉適應值小于該閾值的基因序列,下一次進行交 叉的基因序列的適應值都是大于或等于該閾值的基因序列,加快了最優基因序列的搜索速 度。
[0049] 本發明實施例中,初始迭代過程中,初始閾值為隨機生成的Z個基因序列的適應值 的平均值。
[0050] 可選的,所述設定條件包括以下兩種可選的方式:
[0051]方式1、迭代次數達到設定次數。
[0052]具體的,若所述設定條件為迭代次數達到設定次數,則當迭代次數達到設定次數 后,若基因序列集合包括多個基因序列,則選擇其中任一基因序列作為任務調度方案;若迭 代過程后得到的基因序列集合中僅包含一個基因序列,則所述基因序列集合中僅包含的一 個基因序列即為任務調度方案。
[0053]該方式下,設定次數是本領域技術人員按經驗設定,本發明實施例對其不作限定。
[0054] 方式2、任一次迭代過程后得到的基因序列的數量為一個。
[0055] 具體的,若所述設定條件為任一次迭代過程后得到的基因序列的數量為一個,則 選擇該基因序列作為任務調度方案。
[0056]本發明實施例中可以采用上述任一方式作為設定條件,當然,本發明實施例還可 以采用其他設定條件,本發明實施例不對設定條件的具體實現方式進行限定。
[0057]在實施中,步驟110中將所述第二基因序列集合中的任意兩個基因序列進行基因 交叉處理,包括:
[0058] 將所述任意兩個基因序列中的一個基因序列包含的Q個基因,與另一個基因序列 中同一位置的Q個基因進行對調,其中,Q為大于或等于1的整數,且Q小于所述任意兩個基因 序列包含的基因的個數的最小值。
[0059] 舉例說明:假設任意兩個基因序列分別為:34567與12489,將這兩個基因序列進行 基因交叉時,可選擇后三個基因進行交叉,得到兩個新的基因序列,分別為24489與12567。
[0060] 可選的,步驟120中從得到的基因序列中,選擇一個基因序列作為任務調度方案, 包括以下三種方式:
[0061] 方式一、從得到的基因序列中,選擇任務的運行開銷最小的基因序列,作為任務調 度方案;
[0062] 舉例說明:假設迭代過程結束后得到的基因序列中有323121、333132和312133三 個基因序列,處理器與任務對應的運行時間矩陣如表1所示,基因序列323121的運行開銷為 4+34+2+24+34+13 = 111,基因序列333132 的運行開銷為 4+25+2+24+2+5 = 62,基因序列 312133的運行開銷為4+15+12+24+2+9 = 66,可知基因序列333132的運行開銷最小,因此將 基因序列333132作為任務調度方案。
[0063]選擇運行開銷最小的基因序列,可以使總的運行開銷最小。
[0064]方式二、從所述得到的基因序列中,選擇不同處理器的使用數量最高的基因序列, 作為任務調度方案;
[0065] 舉例說明:假設迭代過程結束后得到的基因序列中有323121、333133和332233三 個基因序列,基因序列323121使用了三個不同的處理器,而基因序列333133和332233使用 了兩個不同的處理器,因此基因序列323121作為任務調度方案。
[0066] 選擇不同處理器使用數量最多的基因序列,可以使不同的處理器得到充分利用。
[0067]方式三、從所述得到的基因序列中,選擇任務的運行開銷小于或等于設定的運行 開銷閾值,且不同處理器的使用數量大于或等于設定的門限值的基因序列,作為任務調度 方案。
[0068] 舉例說明:假設迭代過程結束后得到的基因序列中有111133、333132和312133三 個基因序列,處理器與任務對應的運行時間矩陣如表1所示,基因序列311133的運行開銷為 3+15+6+24+2+9 = 59,基因序列312133 的運行開銷為4+15+12+24+2+9 = 66,基因序列221313 的運行開銷為6+34+6+34+21+9 = 110,運行開銷閾值設置為70,處理器門限值設置為3,因為 312133的運行開銷為66,且處理器使用數量為3,因此基因序列312133作為任務調度方案。
[0069] 具體采用上述哪種方案根據用戶的需求進行選擇,本發明實施例對其不作限定。
[0070] 下面通過兩個具體實施例,對本發明實施例提供的一種基于遺傳算法的任務調度 方法進行詳細說明。
[0071] 實施例一,由CPU端和高性能硬件設備端來實現并行計算遺傳算法,CPU端和高性 能硬件設備端之間通過PCIe總線傳送數據,根據每個階段的計算量來決定高性能硬件設備 端的計算任務,通過CHJ端和高性能硬件設備端的配合來提高總體性能,如圖2所示:
[0072] 通過隨機數生成器隨機生成Z個基因序列,并將所述Z個基因序列的適應值的平均 值確定為所述迭代過程的初始閾值,計算量少,上述操作在CHJ端執行;
[0073] 通過隨機數生成器隨機生成至少兩個第一基因序列集合作為初始化第一基因序 列集合,通過閾值選擇從所述第一基因序列集合中選擇適應值大于初始閾值的基因序列, 將所選擇的所有基因序列劃分成與第一基因序列集合數量相同的第二基因序列集合,將所 選擇的基因序列中的任意兩個基因序列進行基因交叉,并根據基因交叉后得到的基因序列 的適應值確定下一次迭代過程中使用的閾值,通過得到的閾值進行下一次基因序列選擇, 直至所述迭代過程達到設定條件時,停止所述基因交叉,得到一組基因序列,上述操作在高 性能硬件設備端執行;
[0074] 從當前基因序列集合中,選擇一個基因序列作為最優任務調度方案,上述操作在 CPU端執行。
[0075] 本發明實施例中,上述操作可以在CPU端和高性能硬件設備端兩側交互實現,也可 以在任一側實現,也可以根據資源的多少進行分配,本發明實施例中不作限定。
[0076] 本實施例中,CPU端向高性能硬件設備端傳輸隨機數數據,采用異步傳輸數據的方 式,所述異步傳輸是指當CPU端向高性能硬件設備端傳輸數據時不影響高性能硬件設備端 上正在執行的操作,避免因為調用產生中斷線程等待耗費大量時間的情況,如圖3所示,CPU 端隨機生成的隨機數發送給高性能硬件設備端的隨機數存儲區域存儲;當每次需要隨機數 生成基因序列時,隨機選取隨機數存儲區域里的隨機數。假設存儲區域的隨機數數量為 10000個,那么需要選取隨機數時,使用線程調用10000個隨機數中的任意隨機數,如圖3中 相互交叉的直線所示,表示隨機數存儲區的多個隨機數被不同的線程調用,同一線程也可 以同時調用隨機數存儲區中的不同隨機數,所述線程是執行調用任務的調用程序,上述操 作在高性能硬件設備端執行。
[0077] 本發明具體實施例中每個任務在不同處理器上的運行開銷是不一樣的,本發明所 提出的并行遺傳算法就是找出所有任務執行完成所需要的最優的任務分配方案。
[0078] 實施例二、假設通過隨機數生成器隨機生成10個第一基因序列集合,每個第一基 因序列集合中有10個基因序列,第二基因序列集合的數量與第一基因序列集合的數量相 同,又一種基于遺傳算法的任務調度方法,如圖4所示:
[0079]步驟401、隨機數生成器隨機生成20個基因序列。
[0080]步驟402、CPU端將所述20個基因序列的適應值的平均值確定為所述迭代過程的初 始閾值。
[0081]步驟403、隨機數生成器隨機生成10個第一基因序列集合,每個第一基因序列集合 中有10個基因序列。
[0082]步驟404、高性能硬件設備端從所述每個第一基因序列集合中選擇出適應值大于 或等于所述初始閾值的基因序列,假設從每個第一基因序列集合中選擇的基因序列都是6 個。
[0083]步驟405、高性能硬件設備端將所選擇的所有基因序列劃分成10個第二基因序列 集合,每個第二基因序列集合中有6個基因序列。
[0084]步驟406、高性能硬件設備端將每個第二基因序列集合中的基因序列中的任意兩 個基因序列進行基因交叉,每個第二基因序列集合得到基因交叉處理后的15個基因序列。
[0085]步驟407、高性能硬件設備端根據基因交叉后得到的基因序列的適應值確定下一 次迭代過程中使用的閾值。
[0086]步驟408、高性能硬件設備端將每個第二基因序列集合中基因交叉處理前的6個基 因序列與基因交叉處理后的15個基因序列按照適應值從大到小的順序進行排序。
[0087]步驟409、高性能硬件設備端選擇前10個基因序列,作為下一次迭代過程的輸入。 [0088]步驟410、高性能硬件設備端判斷所述迭代過程是否達到設定條件;
[0089]若是,執行步驟411;
[0090]若否,執行步驟404。
[0091]步驟411、停止所述基因交叉,CPU端在所述得到一組基因序列中選擇一個基因序 列作為最優任務調度方案。
[0092]基于與方法同樣的發明構思,本發明實施例還提供一種基于遺傳算法的任務調度 裝置,如圖5所示,該裝置包括:
[0093]第一模塊501,用于輸入N個第一基因序列集合,分別從所述N個第一基因序列集合 中,選擇出適應值大于或等于所述第一基因序列集合使用的閾值的基因序列,其中,所述第 一基因序列集合使用的閾值是根據所述第一基因序列集合包含的基因序列的適應值確定 的,所述基因序列用于表征需要處理的任務與處理所述任務的處理器之間的對應關系,所 述適應值用于表征基因序列在任務調度中處理任務的能力,N為大于或等于2的正整數; [0094]第二模塊502,用于將選擇出的基因序列劃分成M個第二基因序列集合,對于每個 第二基因序列集合,將所述第二基因序列集合中的任意兩個基因序列進行基因交叉處理, 將基因交叉處理后得到的基因序列作為下一次迭代過程的輸入,M為正整數;
[0095]第三模塊503,任務調度方案選擇模塊,用于在所述迭代過程達到設定條件時,停 止迭代,從得到的基因序列中,選擇一個基因序列作為任務調度方案。
[0096]本發明實施例提供的一種基于遺傳算法的任務調度裝置,首先輸入N個第一基因 序列集合,分別從所述N個第一基因序列集合中,選擇出適應值大于或等于所述第一基因序 列集合使用的閾值的基因序列,然后將選擇出的基因序列劃分成M個第二基因序列集合,對 于每個第二基因序列集合,將所述第二基因序列集合中的任意兩個基因序列進行基因交叉 處理,將基因交叉處理后得到的基因序列作為下一次迭代過程的輸入,由于多組第二基因 序列同時進行基于交叉操作時,使得在大量計算任務處理時縮短了處理時間;在所述迭代 過程達到設定條件時,停止迭代,從得到的基因序列中,選擇一個基因序列作為任務調度方 案。由于多組基因序列同時進行迭代處理,縮短了處理時間,提高了處理效率。
[0097]可選的,所述第二模塊還用于:
[0098] 從基因交叉處理前的基因序列和基因交叉處理后得到的基因序列中,選擇P個基 因序列,并將得到的P個基因序列作為下一次迭代過程的輸入,P為正整數。
[0099]可選的,所述第二模塊具體用于:
[0100] 將所述任意兩個基因序列中的一個基因序列包含的Q個基因,與另一個基因序列 中同一位置的Q個基因進行對調,其中,Q為大于或等于1的整數,且Q小于所述任意兩個基因 序列包含的基因的個數的最小值。
[0101]可選的,所述第三模塊具體用于:
[0102]從所述得到的基因序列中,選擇任務的運行開銷最小的基因序列,作為任務調度 方案;或
[0103] 從所述得到的基因序列中,選擇不同處理器的使用數量最高的基因序列,作為任 務調度方案;或
[0104] 從所述得到的基因序列中,選擇任務的運行開銷小于或等于設定的運行開銷閾 值,且不同處理器的使用數量大于或等于設定的門限值的基因序列,作為任務調度方案;
[0105] 其中,所述運行開銷是指基因序列中每個任務通過處理器處理的時間。
[0106] 本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序 產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實 施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機 可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產 品的形式。
[0107] 本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程 圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流 程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序 指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產 生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實 現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0108] 這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指 令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0109] 這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計 算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或 其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一 個方框或多個方框中指定的功能的步驟。
[0110] 盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造 性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優 選實施例以及落入本發明范圍的所有變更和修改。
[0111] 顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精 神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍 之內,則本發明也意圖包含這些改動和變型在內。
【主權項】
1. 一種基于遺傳算法的任務調度方法,其特征在于,包括: 輸入N個第一基因序列集合,分別從所述N個第一基因序列集合中,選擇出適應值大于 或等于所述第一基因序列集合使用的閾值的基因序列,其中,所述第一基因序列集合使用 的閾值是根據所述第一基因序列集合包含的基因序列的適應值確定的,所述基因序列用于 表征需要處理的任務與處理所述任務的處理器之間的對應關系,所述適應值用于表征基因 序列在任務調度中處理任務的能力,N為大于或等于2的正整數; 將選擇出的基因序列劃分成M個第二基因序列集合,對于每個第二基因序列集合,將所 述第二基因序列集合中的任意兩個基因序列進行基因交叉處理,將基因交叉處理后得到的 基因序列作為下一次迭代過程的輸入,M為正整數; 在所述迭代過程達到設定條件時,停止迭代,從得到的基因序列中,選擇一個基因序列 作為任務調度方案。2. 根據權利要求1所述的方法,其特征在于,對于每個第二基因序列集合,將所述第二 基因序列集合中的任意兩個基因序列進行基因交叉處理之后,該方法還包括: 從基因交叉處理前的基因序列和基因交叉處理后得到的基因序列中,選擇R個基因序 列,并將得到的R個基因序列作為下一次迭代過程的輸入,R為正整數。3. 根據權利要求2所述的方法,其特征在于,從基因交叉處理前的基因序列和基因交叉 處理后得到的基因序列中,選擇R個基因序列,包括: 將基因交叉處理前的基因序列和基因交叉處理后得到的基因序列,按照適應值從大到 小進彳丁排序,選擇如R個基因序列。4. 根據權利要求1所述的方法,其特征在于,所述設定條件包括: 迭代次數達到設定次數;或者 任一次迭代過程后得到的基因序列的數量為一個。5. 根據權利要求1所述的方法,其特征在于,將所述第二基因序列集合中的任意兩個基 因序列進行基因交叉處理,包括: 將所述任意兩個基因序列中的一個基因序列包含的Q個基因,與另一個基因序列中同 一位置的Q個基因進行對調,其中,Q為大于或等于1的整數,且Q小于所述任意兩個基因序列 包含的基因的個數的最小值。6. 根據權利要求1~5中任一項所述的方法,其特征在于,從得到的基因序列中,選擇一 個基因序列作為任務調度方案,包括: 從所述得到的基因序列中,選擇任務的運行開銷最小的基因序列,作為任務調度方案; 或 從所述得到的基因序列中,選擇不同處理器的使用數量最高的基因序列,作為任務調 度方案;或 從所述得到的基因序列中,選擇任務的運行開銷小于或等于設定的運行開銷閾值,且 不同處理器的使用數量大于或等于設定的門限值的基因序列,作為任務調度方案; 其中,所述運行開銷是指基因序列中每個任務通過處理器處理的時間。7. -種基于遺傳算法的任務調度裝置,其特征在于,包括: 第一模塊,用于輸入N個第一基因序列集合,分別從所述N個第一基因序列集合中,選擇 出適應值大于或等于所述第一基因序列集合使用的閾值的基因序列,其中,所述第一基因 序列集合使用的閾值是根據所述第一基因序列集合包含的基因序列的適應值確定的,所述 基因序列用于表征需要處理的任務與處理所述任務的處理器之間的對應關系,所述適應值 用于表征基因序列在任務調度中處理任務的能力,N為大于或等于2的正整數; 第二模塊,用于將選擇出的基因序列劃分成M個第二基因序列集合,對于每個第二基因 序列集合,將所述第二基因序列集合中的任意兩個基因序列進行基因交叉處理,將基因交 叉處理后得到的基因序列作為下一次迭代過程的輸入,M為正整數; 第三模塊,用于在所述迭代過程達到設定條件時,停止迭代,從得到的基因序列中,選 擇一個基因序列作為任務調度方案。8. 根據權利要求7所述的裝置,其特征在于,所述第二模塊還用于: 從基因交叉處理前的基因序列和基因交叉處理后得到的基因序列中,選擇R個基因序 列,并將得到的R個基因序列作為下一次迭代過程的輸入,R為正整數。9. 根據權利要求7所述的裝置,其特征在于,所述第二模塊具體用于: 將所述任意兩個基因序列中的一個基因序列包含的Q個基因,與另一個基因序列中同 一位置的Q個基因進行對調,其中,Q為大于或等于1的整數,且Q小于所述任意兩個基因序列 包含的基因的個數的最小值。10. 根據權利要求7~9中任一項所述的裝置,其特征在于,所述第三模塊具體用于: 從所述得到的基因序列中,選擇任務的運行開銷最小的基因序列,作為任務調度方案; 或 從所述得到的基因序列中,選擇不同處理器的使用數量最高的基因序列,作為任務調 度方案;或 從所述得到的基因序列中,選擇任務的運行開銷小于或等于設定的運行開銷閾值,且 不同處理器的使用數量大于或等于設定的門限值的基因序列,作為任務調度方案; 其中,所述運行開銷是指基因序列中每個任務通過處理器處理的時間。
【文檔編號】G06N3/12GK105893145SQ201610173808
【公開日】2016年8月24日
【申請日】2016年3月24日
【發明人】易娟, 高雪松, 李海濤, 馬琳濤
【申請人】海信集團有限公司