本發(fā)明涉及計算機
技術領域:
,尤其涉及一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng)。
背景技術:
:隨著計算機技術的發(fā)展,多核處理器也得到了較大的發(fā)展,早期的對稱多處理器(smp)多是采用在同一計算機上匯集一組cpu的方式,它們之間共享內(nèi)存子系統(tǒng)以及總線結構。之后由于納米級制造工藝的引入,smp開始轉變?yōu)閱涡酒嗵幚砥?chipmultiprocessor,cmp),即在同一芯片上集成多個處理核心,形成了現(xiàn)在我們所說的多核處理器。多核心之間直接共享緩存以及總線結構,可以降低線延遲,提高通訊效率。當多核系統(tǒng)中的處理器核持續(xù)增加時,就出現(xiàn)了眾核系統(tǒng)。眾核系統(tǒng)中具有更多的處理器核。目前片上高效通信機制通常包括基于共享總線的cache結構和基于片上網(wǎng)絡的互連結構?;诠蚕砜偩€的cache結構是指每個處理核擁有共享的二級或三級cache,用于保存比較常用的數(shù)據(jù),并通過總線進行通信。這種系統(tǒng)的優(yōu)點是結構簡單,通信速度快;缺點是可擴展性差。共享總線顯然無法滿足大規(guī)模系統(tǒng)的需要。把互連網(wǎng)絡用于片上系統(tǒng)設計,解決片上組件之間的通訊問題,這就是片上網(wǎng)絡。片上網(wǎng)絡(networkonchip,noc)技術以其支持同時訪問、可靠性高、可重用性高等特點被認為是更加理想的大規(guī)模cmp互連技術。片上網(wǎng)絡克服了總線結構可擴展性差的缺點,為10億晶體管時代提供了一種可行的片上系統(tǒng)通訊機制。本申請發(fā)明人在實現(xiàn)本發(fā)明的技術方案時,發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題:在目前的眾核系統(tǒng)中,由于處理器核的數(shù)量多,使得多核多線程的并行性極大提升,急劇增加了核間的通信量,使得處理器由“計算密集型”轉為“通信密集型”,現(xiàn)有的眾核系統(tǒng)的通信方法一般考慮的是具體的體系結構特性,基于片上網(wǎng)絡的互連結構雖然在一定程度上克服了總線結構可擴展性差,但是并未針對眾核系統(tǒng)中運行的多線程任務進行分析,由于眾核系統(tǒng)的利用效率低,導致任務執(zhí)行效率低、執(zhí)行時間長??梢姡F(xiàn)有技術中的采用片上網(wǎng)絡的互連結構實現(xiàn)的眾核系統(tǒng)存在任務執(zhí)行效率低、執(zhí)行時間長技術問題。技術實現(xiàn)要素:本發(fā)明實施例提供一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),用以解決現(xiàn)有技術中的采用片上網(wǎng)絡的互連結構實現(xiàn)的眾核系統(tǒng)存在任務執(zhí)行效率低、執(zhí)行時間長技術問題。第一方面,本發(fā)明公開了一種面向眾核系統(tǒng)的多線程調(diào)度方法,所述方法包括:獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價,其中,所述第一處理器核、第二處理器核為處理器核集合中的任意兩個處理器核;獲取預設的第一多線程集合中每兩個線程之間的第一通信量;根據(jù)所述第一通信量,獲取單個線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個線程的通信量與所述第一多線程集合中每個線程到所述線程的通信量之和,所述線程為所述第一多線程集合中的任意線程;根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中??蛇x的,所述獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價,包括:獲取所述第一處理器核到所述第二處理核的第一通信代價;獲取所述第二處理器核到所述第一處理核的第二通信代價;以所述第一通信代價與所述第二通信代價的總和作為所述通信代價??蛇x的,所述獲取所述第一處理器核到所述第二處理核的第一通信代價,包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價;對所述第三通信代價求和,獲取第三通信代價總和;以所述第三通信代價總和與所述物理通路數(shù)的比值作為所述第一通信代價??蛇x的,所述根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中,包括:根據(jù)所述通信代價所有處理器核進行排序,獲得通信代價集合;根據(jù)所述第二通信量對所有線程進行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中??蛇x的,在所述將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中之前,還包括:如果所述第二多線程集合不為空,且所述通信代價集合不為空;判斷所述通信代價集合中通信代價最小的處理器核是否被分配;如果所述處理器核未被分配,則將所述線程調(diào)度到所述處理器核中。可選的,在所述將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中之后,還包括:刪除所述通信代價集合中通信代價最小的處理器核;刪除所述第二線程集合中第二通信量最大的線程。基于同樣的發(fā)明構思,本發(fā)明還提供了一種面向眾核系統(tǒng)的多線程調(diào)度系統(tǒng),所述系統(tǒng)包括:第一獲取模塊,用于獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價,其中,所述第一處理器核、第二處理器核為處理器核集合中的任意兩個處理器核;第二獲取模塊,用于獲取預設的第一多線程集合中每兩個線程之間的第一通信量;第三獲取模塊,用于根據(jù)所述第一通信量,獲取單個線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個線程的通信量與所述第一多線程集合中每個線程到所述線程的通信量之和,所述線程為所述第一多線程集合中的任意線程;調(diào)度模塊,用于根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中??蛇x的,所述第一獲取模塊還用于:獲取所述第一處理器核到所述第二處理核的第一通信代價;獲取所述第二處理器核到所述第一處理核的第二通信代價;以所述第一通信代價與所述第二通信代價的總和作為所述通信代價??蛇x的,所述獲取所述第一處理器核到所述第二處理核的第一通信代價,包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價;對所述第三通信代價求和,獲取第三通信代價總和;以所述第三通信代價總和與所述物理通路數(shù)的比值作為所述第一通信代價。可選的,所述調(diào)度模塊還用于:根據(jù)所述通信代價所有處理器核進行排序,獲得通信代價集合;根據(jù)所述第二通信量對所有線程進行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中。本發(fā)明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優(yōu)點:本申請實施例提供的面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),首先獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價;并獲取預設的第一多線程集合中每兩個線程之間的第一通信量;然后根據(jù)所述第一通信量,獲取單個線程的第二通信量,最后根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中,本申請從多線程任務執(zhí)行流的角度來分析并進行優(yōu)化,從處理器核之間的通信代價和線程之間的通信量進行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務的執(zhí)行時間,提高執(zhí)行的速度。解決了現(xiàn)有技術中的采用片上網(wǎng)絡的互連結構實現(xiàn)的眾核系統(tǒng)存在任務執(zhí)行效率低、執(zhí)行時間長技術問題。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例中面向眾核系統(tǒng)的多線程調(diào)度方法的流程圖;圖2為本發(fā)明實施例中面向眾核系統(tǒng)的多線程調(diào)度系統(tǒng)的邏輯結構圖。具體實施方式本發(fā)明實施例提供一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),用以解決現(xiàn)有技術中的采用片上網(wǎng)絡的互連結構實現(xiàn)的眾核系統(tǒng)存在任務執(zhí)行效率低、執(zhí)行時間長技術問題。實現(xiàn)了縮短多線程任務的執(zhí)行時間,提高執(zhí)行的速度的技術效果。本申請實施例中的技術方案,總體思路如下:一種面向眾核系統(tǒng)的多線程調(diào)度方法,所述方法包括:獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價,其中,所述第一處理器核、第二處理器核為處理器核集合中的任意兩個處理器核;獲取預設的第一多線程集合中每兩個線程之間的第一通信量;根據(jù)所述第一通信量,獲取單個線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個線程的通信量與所述第一多線程集合中每個線程到所述線程的通信量之和,所述線程為所述第一多線程集合中的任意線程;根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中。上述方法中,首先獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價;并獲取預設的第一多線程集合中每兩個線程之間的第一通信量;然后根據(jù)所述第一通信量,獲取單個線程的第二通信量,最后根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中,本申請從多線程任務執(zhí)行流的角度來分析并進行優(yōu)化,從處理器核之間的通信代價和線程之間的通信量進行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務的執(zhí)行時間,提高執(zhí)行的速度。解決了現(xiàn)有技術中的采用片上網(wǎng)絡的互連結構實現(xiàn)的眾核系統(tǒng)存在任務執(zhí)行效率低、執(zhí)行時間長技術問題。為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例一本實施例提供一種面向眾核系統(tǒng)的多線程調(diào)度方法,所述方法包括:步驟s101:獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價;步驟s102:獲取預設的第一多線程集合中每兩個線程之間的第一通信量;步驟s103:根據(jù)所述第一通信量,獲取單個線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個線程的通信量與所述第一多線程集合中每個線程到所述線程的通信量之和;步驟s104:根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中。上述系統(tǒng)中,根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中,由于本申請從多線程任務執(zhí)行流的角度來分析并進行優(yōu)化,從處理器核之間的通信代價和線程之間的通信量進行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務的執(zhí)行時間,提高執(zhí)行的速度。解決了現(xiàn)有技術中的采用片上網(wǎng)絡的互連結構實現(xiàn)的眾核系統(tǒng)存在任務執(zhí)行效率低、執(zhí)行時間長技術問題。需要說明的是,本申請中,所述步驟s101和所述步驟s102不分先后順序,可以是先執(zhí)行步驟s101,也可以是先執(zhí)行步驟s102。下面,結合圖1對本申請?zhí)峁┑亩嗑€程調(diào)度方法進行詳細介紹:首先,執(zhí)行步驟s101,獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價。在本申請實施例中,處理器核集合中包括多個處理器核,具體的數(shù)量不作具體限制,所述第一處理器核和第二處理器核為該處理器核集合中任意兩個處理器核,即上述第一處理器核與第二處理器核之間的通信代價也為一個集合。接下來,執(zhí)行步驟步驟s102:獲取預設的第一多線程集合中每兩個線程之間的第一通信量。在本申請實施例中,第一多線程集合中包括多個線程,具體的數(shù)量不作具體限制,上述獲取的是任意兩個線程之間的通信量。再下來,執(zhí)行步驟s103:根據(jù)所述第一通信量,獲取單個線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個線程的通信量與所述第一多線程集合中每個線程到所述線程的通信量之和。在本申請實施例中,由于獲取了每兩個線程之間第一通信量,即可以根據(jù)該第一通信量最每個線程的總通信量進行計算。最后,執(zhí)行步驟s104:根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中。具體地,本發(fā)明實施例提供的多線程調(diào)度方法中,獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價具體包括:獲取所述第一處理器核到所述第二處理核的第一通信代價;獲取所述第二處理器核到所述第一處理核的第二通信代價;以所述第一通信代價與所述第二通信代價的總和作為所述通信代價。本發(fā)明實施例提供的多線程調(diào)度方法中,獲取所述第一處理器核到所述第二處理核的第一通信代價,具體包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價;對所述第三通信代價求和,獲取第三通信代價總和;以所述第三通信代價總和與所述物理通路數(shù)的比值作為所述第一通信代價。本發(fā)明實施例提供的多線程調(diào)度方法中,根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中,包括:根據(jù)所述通信代價所有處理器核進行排序,獲得通信代價集合;根據(jù)所述第二通信量對所有線程進行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中。本發(fā)明實施例提供的多線程調(diào)度方法中,在將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中之前,還包括:如果所述第二多線程集合不為空,且所述通信代價集合不為空;判斷所述通信代價集合中通信代價最小的處理器核是否被分配;如果所述處理器核未被分配,則將所述線程調(diào)度到所述處理器核中。本發(fā)明實施例提供的多線程調(diào)度方法中,在將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中之后,還包括:刪除所述通信代價集合中通信代價最小的處理器核;刪除所述第二線程集合中第二通信量最大的線程。為了更清楚地說明本發(fā)明提供的一種多線程調(diào)度方法的具體實現(xiàn)過程,下面通過一個完整的邏輯實例予以說明。在具體的實現(xiàn)過程中,對于具有m個處理器核c0,c1,…cm-1的眾核系統(tǒng)m,眾核系統(tǒng)m可以表示為m={c0,c1,…cm-1};任給兩個處理器核ca和cb,可以找到一條或者多條連接處理器核ca和cb的物理通路;對于具有d個物理通路的處理器核ca和cb,處理器核ca和cb之間的平均通信代價記為rab:其中,上述公式(1)中,rab(h)表示處理器核ca和cb的第h條物理通路的通信代價;眾核系統(tǒng)m中全部處理器核之間的通信代價按照降序排列形成眾核系統(tǒng)m的通信代價集合cc,通信代價集合cc可以采用如下表1所示的二維表表示:表1c0c1c2…cm-1c00r01r02…r0m-1c1r100r12…r1m-1c2r20r210…r2m-1…………0…cm-1rm-10rm-11rm-12…0在表1中,“0”表示無物理通路上的通信代價,即一個處理器核到其本身的通信代價為0;則處理器核ca和cb之間的通信代價為:r(cacb)=rab+rba(2)在上述公式(2)中,rab為處理器核a到處理器b的平均通信代價,rba為處理器核b到處理器a的平均通信代價,即為上述的第一處理器核和第二處理器核。為了方便對處理器核的通信代價進行處理,可以對處理器核之間的總通信代價按照升序排列,從而構建出通信代價集合cct={r0,r1,…,rp},其中p為總通信代價集合中元素的個數(shù),p的計算方法為:上述公式(3)中,m為處理器核的數(shù)量。由于通信代價中的每個元素對應兩個處理器核,在進行調(diào)度時,可以將這兩個處理器核進行隨意分配,為了進一步優(yōu)化調(diào)度方法,本申請采用如下方式進行處理:如果通信代價集合中兩個通信代價相同,則將處理器核序號小的總通信代價排序在前。舉例來說,對于具有8個處理器核的眾核系統(tǒng)m,眾核系統(tǒng)m={c0,c1,c2,c3,c4,c5,c6,c7},處理核之間的通信代價集合cc為:c0c1c2c3c4c5c6c7c001234567c110123456c221012345c332101234c443210123c554321012c665432101c776543210通信代價集合cct={r0,r1,…,r27}r0=2c0,c1r7=4c0,c2r14=6c1,c4r21=8c3,c7r1=2c1,c2r8=4c1,c3r15=6c2,c5r22=10c0,c5r2=2c2,c3r9=4c2,c4r16=6c3,c6r23=10c1,c6r3=2c3,c4r10=4c3,c5r17=6c4,c7r24=10c2,c7r4=2c4,c5r11=4c4,c6r18=8c0,c4r25=12c0,c6r5=2c5,c6r12=4c5,c7r19=8c1,c5r26=12c1,c7r6=2c6,c7r13=6c0,c3r20=8c2,c6r27=14c0,c7接下來,計算多線程之間的通信量,具體地,舉例來說,對于具有n個線程t0,t1,t2,…,tn-1的第一多線程集合δ,第一多線程集合δ表示為δ={t0,t1,t2,…,tn-1};任給兩個線程tl和tk,tflk表示從線程tl到tk的第一通信量,則第一多線程集合δ中全部線程之間的第一通信量可以用下表2所示的二維表表示:表2t0t1t2…tn-1t00tf01tf02…tf0n-1t1tf100tf12…tf1n-1t2tf20tf210…tf2n-1…………0…tn-1tfn-10tn-11tn-12…0在表2中,“0”表示兩個線程之間無通信量;則任一個線程ti的總通信量,即第二通信量tf(ti)為:其中為上述線程ti到所述第一多線程集合中每個線程(從t0到tn-1)的通信量,為所述第一多線程集合中每個線程(從t0到tn-1)到所述線程的通信量之和。由于計算得到了單個線程的第二通信量,然后對多線程集合δ中的線程按照線程的總通信量大小進行降序排列,得到多線程集合δ’={t0’,t1’,t2’,…,tn-1’};作為優(yōu)選,如果兩個線程的總通信量相同,則序號小的線程排序在前。對于多線程集合δ={t0,t1,t2,t3,t4,t5,t6,t7},線程之間的通信量如下表所示:從上表可以得到多線程集合δ’={t0’,t1’,t2’,t3’,t4’,t5’,t6’,t7’},其中:t0’是多線程集合δ中的t0;t1’是多線程集合δ中的t7;t2’是多線程集合δ中的t1;t3’是多線程集合δ中的t6;t4’是多線程集合δ中的t2;t5’是多線程集合δ中的t5;t6’是多線程集合δ中的t3;t7’是多線程集合δ中的t4;接下來,對本發(fā)明實施例提供的一種優(yōu)選的線程調(diào)度方法進行闡述,具體步驟如下:首先,判斷通信代價集合cct和第二多線程集合是否為空,如果通信代價集合cct或第二多線程集合為空,則線程調(diào)度結束;如果通信代價集合cct和第二多線程集合均不為空,則從通信代價集合cct選擇排序為1的成員,該成員記為rw,rw是兩個處理器核之間的總通信代價,這兩個處理器核記為cu和cv。從通信代價集合cct中去掉rw。從眾核系統(tǒng)m中去掉處理器核cu和cv。為了進一步優(yōu)化調(diào)度方法,在進行調(diào)度前,還判斷通信代價集合cct選擇排序為1的成員對應的處理器核cu和cv是否被分配以及多線程集合δ’中剩余線程數(shù)量。具體的實施過程中,具體的步驟如下所述:步驟1:如果總通信代價集合cct為空,則無可供分配的處理器核,線程調(diào)度結束;如果總通信代價集合cct不為空,到步驟2。步驟2:從總通信代價集合cct選擇排序為1的成員,該成員記為rw,rw是兩個處理器核之間的總通信代價,這兩個處理器核記為cu和cv。從總通信代價集合cct中去掉rw。從眾核系統(tǒng)m中去掉處理器核cu和cv。步驟3:如果處理器核cu和cv都沒有被分配,且多線程集合δ’中剩余線程數(shù)量大于等于2,到步驟4;如果處理器核cu和cv中只有一個處理器核被分配,且多線程集合δ’不為空,到步驟5;如果處理器核cu和cv都沒有被分配,且多線程集合δ’中剩余線程數(shù)量等于1,到步驟5;如果處理器核cu和cv都已經(jīng)被分配,回到步驟1;步驟4:從多線程集合δ’選擇排序為1和2的兩個線程tx和ty,分配到處理器核cu和cv;從多線程集合δ’中去掉線程tx和ty。如果多線程集合δ’不為空,回到步驟1;如果多線程集合δ’為空,則等待新線程的到達,線程調(diào)度結束。步驟5:從多線程集合δ’選擇排序為1的線程tx,分配到未被分配的處理器核:如果處理器核cu已經(jīng)被分配,則講線程tx分配到cv;如果處理器核cv已經(jīng)被分配,則講線程tx分配到cu;從多線程集合δ’中去掉線程tx。如果多線程集合δ’不為空,回到步驟1;如果多線程集合δ’為空,則等待新線程的到達,線程調(diào)度結束。將多線程集合δ’={t0’,t1’,t2’,t3’,t4’,t5’,t6’,t7’}中的線程調(diào)度到眾核系統(tǒng)m={c0,c1,c2,c3,c4,c5,c6,c7}的過程如下,其中通信代價集合cct={r0,r1,…,r27}:1)、通信代價集合cct不為空,到步驟2。2)從通信代價集合cct選擇排序為1的成員,為r0,對應的兩個處理器核為c0和c1。從通信代價集合cct中去掉r0。從眾核系統(tǒng)m中去掉處理器核c0和c1。3)處理器核c0和c1都沒有被分配,且多線程集合δ’中剩余線程數(shù)量為8,到步驟4);4)、從多線程集合δ’選擇排序為1和2的兩個線程t0’和t1’,分配到處理器核c0和c1;從多線程集合δ’中去掉線程t0’和t1’?;氐讲襟E1。5)重復上述步驟,直到所有的線程分配完畢。分配結果如下表所示:上表中,多線程集合δ’中的線程t0’被調(diào)度到眾核系統(tǒng)m中的處理器核c0,即多線程集合δ中的線程t0被調(diào)度到眾核系統(tǒng)m中的處理器核c0;多線程集合δ’中的線程t1’被調(diào)度到眾核系統(tǒng)m中的處理器核c1,即多線程集合δ中的線程t7被調(diào)度到眾核系統(tǒng)m中的處理器核c1;以此類推,多線程集合δ中的所有線程都被調(diào)度到處理器核上?;谂c實施例一同樣的發(fā)明構思,本發(fā)明是實施例二還提供了一種面向眾核系統(tǒng)的多線程調(diào)度系統(tǒng),所述系統(tǒng)包括:第一獲取模塊,用于獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價;第二獲取模塊,用于獲取預設的第一多線程集合中每兩個線程之間的第一通信量;第三獲取模塊,用于根據(jù)所述第一通信量,獲取單個線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個線程的通信量與所述第一多線程集合中每個線程到所述線程的通信量之和;調(diào)度模塊,用于根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中??蛇x地,所述第一獲取模塊還用于:獲取所述第一處理器核到所述第二處理核的第一通信代價;獲取所述第二處理器核到所述第一處理核的第二通信代價;以所述第一通信代價與所述第二通信代價的總和作為所述通信代價??蛇x地,所述獲取所述第一處理器核到所述第二處理核的第一通信代價,包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價;對所述第三通信代價求和,獲取第三通信代價總和;以所述第三通信代價總和與所述物理通路數(shù)的比值作為所述第一通信代價??蛇x地,所述調(diào)度模塊還用于:根據(jù)所述通信代價所有處理器核進行排序,獲得通信代價集合;根據(jù)所述第二通信量對所有線程進行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價集合中通信代價最小的處理器核中。由于本發(fā)明實施例二所介紹的系統(tǒng),為實施本發(fā)明實施例一的線程調(diào)度的方法所采用的系統(tǒng),故而基于本發(fā)明實施例一所介紹的方法,本領域所屬人員能夠了解該系統(tǒng)的具體結構及變形,故而在此不再贅述。凡是本發(fā)明實施例一的方法所采用的系統(tǒng)都屬于本發(fā)明所欲保護的范圍。本發(fā)明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優(yōu)點:本申請實施例提供的面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),首先獲取預設的處理器核集合中第一處理器核與第二處理器核之間的通信代價;并獲取預設的第一多線程集合中每兩個線程之間的第一通信量;然后根據(jù)所述第一通信量,獲取單個線程的第二通信量,最后根據(jù)所述通信代價對所有處理器核進行排序,將第二通信量最大的線程調(diào)度到通信代價最小的處理器核中,本申請從多線程任務執(zhí)行流的角度來分析并進行優(yōu)化,從處理器核之間的通信代價和線程之間的通信量進行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務的執(zhí)行時間,提高執(zhí)行的速度。解決了現(xiàn)有技術中的采用片上網(wǎng)絡的互連結構實現(xiàn)的眾核系統(tǒng)存在任務執(zhí)行效率低、執(zhí)行時間長技術問題。盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領域的技術人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā)明實施例的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。當前第1頁12