欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng)與流程

文檔序號(hào):12824531閱讀:373來(lái)源:國(guó)知局
一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng)與流程
本發(fā)明涉及計(jì)算機(jī)
技術(shù)領(lǐng)域
,尤其涉及一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng)。
背景技術(shù)
:隨著計(jì)算機(jī)技術(shù)的發(fā)展,多核處理器也得到了較大的發(fā)展,早期的對(duì)稱多處理器(smp)多是采用在同一計(jì)算機(jī)上匯集一組cpu的方式,它們之間共享內(nèi)存子系統(tǒng)以及總線結(jié)構(gòu)。之后由于納米級(jí)制造工藝的引入,smp開始轉(zhuǎn)變?yōu)閱涡酒嗵幚砥?chipmultiprocessor,cmp),即在同一芯片上集成多個(gè)處理核心,形成了現(xiàn)在我們所說(shuō)的多核處理器。多核心之間直接共享緩存以及總線結(jié)構(gòu),可以降低線延遲,提高通訊效率。當(dāng)多核系統(tǒng)中的處理器核持續(xù)增加時(shí),就出現(xiàn)了眾核系統(tǒng)。眾核系統(tǒng)中具有更多的處理器核。目前片上高效通信機(jī)制通常包括基于共享總線的cache結(jié)構(gòu)和基于片上網(wǎng)絡(luò)的互連結(jié)構(gòu)?;诠蚕砜偩€的cache結(jié)構(gòu)是指每個(gè)處理核擁有共享的二級(jí)或三級(jí)cache,用于保存比較常用的數(shù)據(jù),并通過(guò)總線進(jìn)行通信。這種系統(tǒng)的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,通信速度快;缺點(diǎn)是可擴(kuò)展性差。共享總線顯然無(wú)法滿足大規(guī)模系統(tǒng)的需要。把互連網(wǎng)絡(luò)用于片上系統(tǒng)設(shè)計(jì),解決片上組件之間的通訊問(wèn)題,這就是片上網(wǎng)絡(luò)。片上網(wǎng)絡(luò)(networkonchip,noc)技術(shù)以其支持同時(shí)訪問(wèn)、可靠性高、可重用性高等特點(diǎn)被認(rèn)為是更加理想的大規(guī)模cmp互連技術(shù)。片上網(wǎng)絡(luò)克服了總線結(jié)構(gòu)可擴(kuò)展性差的缺點(diǎn),為10億晶體管時(shí)代提供了一種可行的片上系統(tǒng)通訊機(jī)制。本申請(qǐng)發(fā)明人在實(shí)現(xiàn)本發(fā)明的技術(shù)方案時(shí),發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題:在目前的眾核系統(tǒng)中,由于處理器核的數(shù)量多,使得多核多線程的并行性極大提升,急劇增加了核間的通信量,使得處理器由“計(jì)算密集型”轉(zhuǎn)為“通信密集型”,現(xiàn)有的眾核系統(tǒng)的通信方法一般考慮的是具體的體系結(jié)構(gòu)特性,基于片上網(wǎng)絡(luò)的互連結(jié)構(gòu)雖然在一定程度上克服了總線結(jié)構(gòu)可擴(kuò)展性差,但是并未針對(duì)眾核系統(tǒng)中運(yùn)行的多線程任務(wù)進(jìn)行分析,由于眾核系統(tǒng)的利用效率低,導(dǎo)致任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)??梢?,現(xiàn)有技術(shù)中的采用片上網(wǎng)絡(luò)的互連結(jié)構(gòu)實(shí)現(xiàn)的眾核系統(tǒng)存在任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)技術(shù)問(wèn)題。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中的采用片上網(wǎng)絡(luò)的互連結(jié)構(gòu)實(shí)現(xiàn)的眾核系統(tǒng)存在任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)技術(shù)問(wèn)題。第一方面,本發(fā)明公開了一種面向眾核系統(tǒng)的多線程調(diào)度方法,所述方法包括:獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià),其中,所述第一處理器核、第二處理器核為處理器核集合中的任意兩個(gè)處理器核;獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個(gè)線程的通信量與所述第一多線程集合中每個(gè)線程到所述線程的通信量之和,所述線程為所述第一多線程集合中的任意線程;根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中??蛇x的,所述獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià),包括:獲取所述第一處理器核到所述第二處理核的第一通信代價(jià);獲取所述第二處理器核到所述第一處理核的第二通信代價(jià);以所述第一通信代價(jià)與所述第二通信代價(jià)的總和作為所述通信代價(jià)。可選的,所述獲取所述第一處理器核到所述第二處理核的第一通信代價(jià),包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價(jià);對(duì)所述第三通信代價(jià)求和,獲取第三通信代價(jià)總和;以所述第三通信代價(jià)總和與所述物理通路數(shù)的比值作為所述第一通信代價(jià)??蛇x的,所述根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中,包括:根據(jù)所述通信代價(jià)所有處理器核進(jìn)行排序,獲得通信代價(jià)集合;根據(jù)所述第二通信量對(duì)所有線程進(jìn)行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中??蛇x的,在所述將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中之前,還包括:如果所述第二多線程集合不為空,且所述通信代價(jià)集合不為空;判斷所述通信代價(jià)集合中通信代價(jià)最小的處理器核是否被分配;如果所述處理器核未被分配,則將所述線程調(diào)度到所述處理器核中??蛇x的,在所述將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中之后,還包括:刪除所述通信代價(jià)集合中通信代價(jià)最小的處理器核;刪除所述第二線程集合中第二通信量最大的線程。基于同樣的發(fā)明構(gòu)思,本發(fā)明還提供了一種面向眾核系統(tǒng)的多線程調(diào)度系統(tǒng),所述系統(tǒng)包括:第一獲取模塊,用于獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià),其中,所述第一處理器核、第二處理器核為處理器核集合中的任意兩個(gè)處理器核;第二獲取模塊,用于獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;第三獲取模塊,用于根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個(gè)線程的通信量與所述第一多線程集合中每個(gè)線程到所述線程的通信量之和,所述線程為所述第一多線程集合中的任意線程;調(diào)度模塊,用于根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中??蛇x的,所述第一獲取模塊還用于:獲取所述第一處理器核到所述第二處理核的第一通信代價(jià);獲取所述第二處理器核到所述第一處理核的第二通信代價(jià);以所述第一通信代價(jià)與所述第二通信代價(jià)的總和作為所述通信代價(jià)??蛇x的,所述獲取所述第一處理器核到所述第二處理核的第一通信代價(jià),包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價(jià);對(duì)所述第三通信代價(jià)求和,獲取第三通信代價(jià)總和;以所述第三通信代價(jià)總和與所述物理通路數(shù)的比值作為所述第一通信代價(jià)。可選的,所述調(diào)度模塊還用于:根據(jù)所述通信代價(jià)所有處理器核進(jìn)行排序,獲得通信代價(jià)集合;根據(jù)所述第二通信量對(duì)所有線程進(jìn)行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中。本發(fā)明實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):本申請(qǐng)實(shí)施例提供的面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),首先獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià);并獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;然后根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,最后根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中,本申請(qǐng)從多線程任務(wù)執(zhí)行流的角度來(lái)分析并進(jìn)行優(yōu)化,從處理器核之間的通信代價(jià)和線程之間的通信量進(jìn)行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務(wù)的執(zhí)行時(shí)間,提高執(zhí)行的速度。解決了現(xiàn)有技術(shù)中的采用片上網(wǎng)絡(luò)的互連結(jié)構(gòu)實(shí)現(xiàn)的眾核系統(tǒng)存在任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)技術(shù)問(wèn)題。上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例中面向眾核系統(tǒng)的多線程調(diào)度方法的流程圖;圖2為本發(fā)明實(shí)施例中面向眾核系統(tǒng)的多線程調(diào)度系統(tǒng)的邏輯結(jié)構(gòu)圖。具體實(shí)施方式本發(fā)明實(shí)施例提供一種面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中的采用片上網(wǎng)絡(luò)的互連結(jié)構(gòu)實(shí)現(xiàn)的眾核系統(tǒng)存在任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)技術(shù)問(wèn)題。實(shí)現(xiàn)了縮短多線程任務(wù)的執(zhí)行時(shí)間,提高執(zhí)行的速度的技術(shù)效果。本申請(qǐng)實(shí)施例中的技術(shù)方案,總體思路如下:一種面向眾核系統(tǒng)的多線程調(diào)度方法,所述方法包括:獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià),其中,所述第一處理器核、第二處理器核為處理器核集合中的任意兩個(gè)處理器核;獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個(gè)線程的通信量與所述第一多線程集合中每個(gè)線程到所述線程的通信量之和,所述線程為所述第一多線程集合中的任意線程;根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中。上述方法中,首先獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià);并獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;然后根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,最后根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中,本申請(qǐng)從多線程任務(wù)執(zhí)行流的角度來(lái)分析并進(jìn)行優(yōu)化,從處理器核之間的通信代價(jià)和線程之間的通信量進(jìn)行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務(wù)的執(zhí)行時(shí)間,提高執(zhí)行的速度。解決了現(xiàn)有技術(shù)中的采用片上網(wǎng)絡(luò)的互連結(jié)構(gòu)實(shí)現(xiàn)的眾核系統(tǒng)存在任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)技術(shù)問(wèn)題。為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一本實(shí)施例提供一種面向眾核系統(tǒng)的多線程調(diào)度方法,所述方法包括:步驟s101:獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià);步驟s102:獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;步驟s103:根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個(gè)線程的通信量與所述第一多線程集合中每個(gè)線程到所述線程的通信量之和;步驟s104:根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中。上述系統(tǒng)中,根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中,由于本申請(qǐng)從多線程任務(wù)執(zhí)行流的角度來(lái)分析并進(jìn)行優(yōu)化,從處理器核之間的通信代價(jià)和線程之間的通信量進(jìn)行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務(wù)的執(zhí)行時(shí)間,提高執(zhí)行的速度。解決了現(xiàn)有技術(shù)中的采用片上網(wǎng)絡(luò)的互連結(jié)構(gòu)實(shí)現(xiàn)的眾核系統(tǒng)存在任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)技術(shù)問(wèn)題。需要說(shuō)明的是,本申請(qǐng)中,所述步驟s101和所述步驟s102不分先后順序,可以是先執(zhí)行步驟s101,也可以是先執(zhí)行步驟s102。下面,結(jié)合圖1對(duì)本申請(qǐng)?zhí)峁┑亩嗑€程調(diào)度方法進(jìn)行詳細(xì)介紹:首先,執(zhí)行步驟s101,獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià)。在本申請(qǐng)實(shí)施例中,處理器核集合中包括多個(gè)處理器核,具體的數(shù)量不作具體限制,所述第一處理器核和第二處理器核為該處理器核集合中任意兩個(gè)處理器核,即上述第一處理器核與第二處理器核之間的通信代價(jià)也為一個(gè)集合。接下來(lái),執(zhí)行步驟步驟s102:獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量。在本申請(qǐng)實(shí)施例中,第一多線程集合中包括多個(gè)線程,具體的數(shù)量不作具體限制,上述獲取的是任意兩個(gè)線程之間的通信量。再下來(lái),執(zhí)行步驟s103:根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個(gè)線程的通信量與所述第一多線程集合中每個(gè)線程到所述線程的通信量之和。在本申請(qǐng)實(shí)施例中,由于獲取了每?jī)蓚€(gè)線程之間第一通信量,即可以根據(jù)該第一通信量最每個(gè)線程的總通信量進(jìn)行計(jì)算。最后,執(zhí)行步驟s104:根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中。具體地,本發(fā)明實(shí)施例提供的多線程調(diào)度方法中,獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià)具體包括:獲取所述第一處理器核到所述第二處理核的第一通信代價(jià);獲取所述第二處理器核到所述第一處理核的第二通信代價(jià);以所述第一通信代價(jià)與所述第二通信代價(jià)的總和作為所述通信代價(jià)。本發(fā)明實(shí)施例提供的多線程調(diào)度方法中,獲取所述第一處理器核到所述第二處理核的第一通信代價(jià),具體包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價(jià);對(duì)所述第三通信代價(jià)求和,獲取第三通信代價(jià)總和;以所述第三通信代價(jià)總和與所述物理通路數(shù)的比值作為所述第一通信代價(jià)。本發(fā)明實(shí)施例提供的多線程調(diào)度方法中,根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中,包括:根據(jù)所述通信代價(jià)所有處理器核進(jìn)行排序,獲得通信代價(jià)集合;根據(jù)所述第二通信量對(duì)所有線程進(jìn)行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中。本發(fā)明實(shí)施例提供的多線程調(diào)度方法中,在將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中之前,還包括:如果所述第二多線程集合不為空,且所述通信代價(jià)集合不為空;判斷所述通信代價(jià)集合中通信代價(jià)最小的處理器核是否被分配;如果所述處理器核未被分配,則將所述線程調(diào)度到所述處理器核中。本發(fā)明實(shí)施例提供的多線程調(diào)度方法中,在將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中之后,還包括:刪除所述通信代價(jià)集合中通信代價(jià)最小的處理器核;刪除所述第二線程集合中第二通信量最大的線程。為了更清楚地說(shuō)明本發(fā)明提供的一種多線程調(diào)度方法的具體實(shí)現(xiàn)過(guò)程,下面通過(guò)一個(gè)完整的邏輯實(shí)例予以說(shuō)明。在具體的實(shí)現(xiàn)過(guò)程中,對(duì)于具有m個(gè)處理器核c0,c1,…cm-1的眾核系統(tǒng)m,眾核系統(tǒng)m可以表示為m={c0,c1,…cm-1};任給兩個(gè)處理器核ca和cb,可以找到一條或者多條連接處理器核ca和cb的物理通路;對(duì)于具有d個(gè)物理通路的處理器核ca和cb,處理器核ca和cb之間的平均通信代價(jià)記為rab:其中,上述公式(1)中,rab(h)表示處理器核ca和cb的第h條物理通路的通信代價(jià);眾核系統(tǒng)m中全部處理器核之間的通信代價(jià)按照降序排列形成眾核系統(tǒng)m的通信代價(jià)集合cc,通信代價(jià)集合cc可以采用如下表1所示的二維表表示:表1c0c1c2…cm-1c00r01r02…r0m-1c1r100r12…r1m-1c2r20r210…r2m-1…………0…cm-1rm-10rm-11rm-12…0在表1中,“0”表示無(wú)物理通路上的通信代價(jià),即一個(gè)處理器核到其本身的通信代價(jià)為0;則處理器核ca和cb之間的通信代價(jià)為:r(cacb)=rab+rba(2)在上述公式(2)中,rab為處理器核a到處理器b的平均通信代價(jià),rba為處理器核b到處理器a的平均通信代價(jià),即為上述的第一處理器核和第二處理器核。為了方便對(duì)處理器核的通信代價(jià)進(jìn)行處理,可以對(duì)處理器核之間的總通信代價(jià)按照升序排列,從而構(gòu)建出通信代價(jià)集合cct={r0,r1,…,rp},其中p為總通信代價(jià)集合中元素的個(gè)數(shù),p的計(jì)算方法為:上述公式(3)中,m為處理器核的數(shù)量。由于通信代價(jià)中的每個(gè)元素對(duì)應(yīng)兩個(gè)處理器核,在進(jìn)行調(diào)度時(shí),可以將這兩個(gè)處理器核進(jìn)行隨意分配,為了進(jìn)一步優(yōu)化調(diào)度方法,本申請(qǐng)采用如下方式進(jìn)行處理:如果通信代價(jià)集合中兩個(gè)通信代價(jià)相同,則將處理器核序號(hào)小的總通信代價(jià)排序在前。舉例來(lái)說(shuō),對(duì)于具有8個(gè)處理器核的眾核系統(tǒng)m,眾核系統(tǒng)m={c0,c1,c2,c3,c4,c5,c6,c7},處理核之間的通信代價(jià)集合cc為:c0c1c2c3c4c5c6c7c001234567c110123456c221012345c332101234c443210123c554321012c665432101c776543210通信代價(jià)集合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接下來(lái),計(jì)算多線程之間的通信量,具體地,舉例來(lái)說(shuō),對(duì)于具有n個(gè)線程t0,t1,t2,…,tn-1的第一多線程集合δ,第一多線程集合δ表示為δ={t0,t1,t2,…,tn-1};任給兩個(gè)線程tl和tk,tflk表示從線程tl到tk的第一通信量,則第一多線程集合δ中全部線程之間的第一通信量可以用下表2所示的二維表表示:表2t0t1t2…tn-1t00tf01tf02…tf0n-1t1tf100tf12…tf1n-1t2tf20tf210…tf2n-1…………0…tn-1tfn-10tn-11tn-12…0在表2中,“0”表示兩個(gè)線程之間無(wú)通信量;則任一個(gè)線程ti的總通信量,即第二通信量tf(ti)為:其中為上述線程ti到所述第一多線程集合中每個(gè)線程(從t0到tn-1)的通信量,為所述第一多線程集合中每個(gè)線程(從t0到tn-1)到所述線程的通信量之和。由于計(jì)算得到了單個(gè)線程的第二通信量,然后對(duì)多線程集合δ中的線程按照線程的總通信量大小進(jìn)行降序排列,得到多線程集合δ’={t0’,t1’,t2’,…,tn-1’};作為優(yōu)選,如果兩個(gè)線程的總通信量相同,則序號(hào)小的線程排序在前。對(duì)于多線程集合δ={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;接下來(lái),對(duì)本發(fā)明實(shí)施例提供的一種優(yōu)選的線程調(diào)度方法進(jìn)行闡述,具體步驟如下:首先,判斷通信代價(jià)集合cct和第二多線程集合是否為空,如果通信代價(jià)集合cct或第二多線程集合為空,則線程調(diào)度結(jié)束;如果通信代價(jià)集合cct和第二多線程集合均不為空,則從通信代價(jià)集合cct選擇排序?yàn)?的成員,該成員記為rw,rw是兩個(gè)處理器核之間的總通信代價(jià),這兩個(gè)處理器核記為cu和cv。從通信代價(jià)集合cct中去掉rw。從眾核系統(tǒng)m中去掉處理器核cu和cv。為了進(jìn)一步優(yōu)化調(diào)度方法,在進(jìn)行調(diào)度前,還判斷通信代價(jià)集合cct選擇排序?yàn)?的成員對(duì)應(yīng)的處理器核cu和cv是否被分配以及多線程集合δ’中剩余線程數(shù)量。具體的實(shí)施過(guò)程中,具體的步驟如下所述:步驟1:如果總通信代價(jià)集合cct為空,則無(wú)可供分配的處理器核,線程調(diào)度結(jié)束;如果總通信代價(jià)集合cct不為空,到步驟2。步驟2:從總通信代價(jià)集合cct選擇排序?yàn)?的成員,該成員記為rw,rw是兩個(gè)處理器核之間的總通信代價(jià),這兩個(gè)處理器核記為cu和cv。從總通信代價(jià)集合cct中去掉rw。從眾核系統(tǒng)m中去掉處理器核cu和cv。步驟3:如果處理器核cu和cv都沒(méi)有被分配,且多線程集合δ’中剩余線程數(shù)量大于等于2,到步驟4;如果處理器核cu和cv中只有一個(gè)處理器核被分配,且多線程集合δ’不為空,到步驟5;如果處理器核cu和cv都沒(méi)有被分配,且多線程集合δ’中剩余線程數(shù)量等于1,到步驟5;如果處理器核cu和cv都已經(jīng)被分配,回到步驟1;步驟4:從多線程集合δ’選擇排序?yàn)?和2的兩個(gè)線程tx和ty,分配到處理器核cu和cv;從多線程集合δ’中去掉線程tx和ty。如果多線程集合δ’不為空,回到步驟1;如果多線程集合δ’為空,則等待新線程的到達(dá),線程調(diào)度結(jié)束。步驟5:從多線程集合δ’選擇排序?yàn)?的線程tx,分配到未被分配的處理器核:如果處理器核cu已經(jīng)被分配,則講線程tx分配到cv;如果處理器核cv已經(jīng)被分配,則講線程tx分配到cu;從多線程集合δ’中去掉線程tx。如果多線程集合δ’不為空,回到步驟1;如果多線程集合δ’為空,則等待新線程的到達(dá),線程調(diào)度結(jié)束。將多線程集合δ’={t0’,t1’,t2’,t3’,t4’,t5’,t6’,t7’}中的線程調(diào)度到眾核系統(tǒng)m={c0,c1,c2,c3,c4,c5,c6,c7}的過(guò)程如下,其中通信代價(jià)集合cct={r0,r1,…,r27}:1)、通信代價(jià)集合cct不為空,到步驟2。2)從通信代價(jià)集合cct選擇排序?yàn)?的成員,為r0,對(duì)應(yīng)的兩個(gè)處理器核為c0和c1。從通信代價(jià)集合cct中去掉r0。從眾核系統(tǒng)m中去掉處理器核c0和c1。3)處理器核c0和c1都沒(méi)有被分配,且多線程集合δ’中剩余線程數(shù)量為8,到步驟4);4)、從多線程集合δ’選擇排序?yàn)?和2的兩個(gè)線程t0’和t1’,分配到處理器核c0和c1;從多線程集合δ’中去掉線程t0’和t1’?;氐讲襟E1。5)重復(fù)上述步驟,直到所有的線程分配完畢。分配結(jié)果如下表所示:上表中,多線程集合δ’中的線程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實(shí)施例一同樣的發(fā)明構(gòu)思,本發(fā)明是實(shí)施例二還提供了一種面向眾核系統(tǒng)的多線程調(diào)度系統(tǒng),所述系統(tǒng)包括:第一獲取模塊,用于獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià);第二獲取模塊,用于獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;第三獲取模塊,用于根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,其中,所述第二通信量為所述線程到所述第一多線程集合中每個(gè)線程的通信量與所述第一多線程集合中每個(gè)線程到所述線程的通信量之和;調(diào)度模塊,用于根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中。可選地,所述第一獲取模塊還用于:獲取所述第一處理器核到所述第二處理核的第一通信代價(jià);獲取所述第二處理器核到所述第一處理核的第二通信代價(jià);以所述第一通信代價(jià)與所述第二通信代價(jià)的總和作為所述通信代價(jià)??蛇x地,所述獲取所述第一處理器核到所述第二處理核的第一通信代價(jià),包括:獲取所述第一處理器核到所述第二處理核之間的物理通路數(shù);獲取所述第一處理器核到所述第二處理核之間每條物理通路的第三通信代價(jià);對(duì)所述第三通信代價(jià)求和,獲取第三通信代價(jià)總和;以所述第三通信代價(jià)總和與所述物理通路數(shù)的比值作為所述第一通信代價(jià)??蛇x地,所述調(diào)度模塊還用于:根據(jù)所述通信代價(jià)所有處理器核進(jìn)行排序,獲得通信代價(jià)集合;根據(jù)所述第二通信量對(duì)所有線程進(jìn)行排序,獲得第二多線程集合;將所述第二多線程集合中第二通信量最大的線程調(diào)度到所述通信代價(jià)集合中通信代價(jià)最小的處理器核中。由于本發(fā)明實(shí)施例二所介紹的系統(tǒng),為實(shí)施本發(fā)明實(shí)施例一的線程調(diào)度的方法所采用的系統(tǒng),故而基于本發(fā)明實(shí)施例一所介紹的方法,本領(lǐng)域所屬人員能夠了解該系統(tǒng)的具體結(jié)構(gòu)及變形,故而在此不再贅述。凡是本發(fā)明實(shí)施例一的方法所采用的系統(tǒng)都屬于本發(fā)明所欲保護(hù)的范圍。本發(fā)明實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):本申請(qǐng)實(shí)施例提供的面向眾核系統(tǒng)的多線程調(diào)度方法及系統(tǒng),首先獲取預(yù)設(shè)的處理器核集合中第一處理器核與第二處理器核之間的通信代價(jià);并獲取預(yù)設(shè)的第一多線程集合中每?jī)蓚€(gè)線程之間的第一通信量;然后根據(jù)所述第一通信量,獲取單個(gè)線程的第二通信量,最后根據(jù)所述通信代價(jià)對(duì)所有處理器核進(jìn)行排序,將第二通信量最大的線程調(diào)度到通信代價(jià)最小的處理器核中,本申請(qǐng)從多線程任務(wù)執(zhí)行流的角度來(lái)分析并進(jìn)行優(yōu)化,從處理器核之間的通信代價(jià)和線程之間的通信量進(jìn)行分析,可以提高眾核系統(tǒng)的利用效率,從而縮短多線程任務(wù)的執(zhí)行時(shí)間,提高執(zhí)行的速度。解決了現(xiàn)有技術(shù)中的采用片上網(wǎng)絡(luò)的互連結(jié)構(gòu)實(shí)現(xiàn)的眾核系統(tǒng)存在任務(wù)執(zhí)行效率低、執(zhí)行時(shí)間長(zhǎng)技術(shù)問(wèn)題。盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
平利县| 额济纳旗| 抚顺县| 怀来县| 新邵县| 沂源县| 临海市| 巫山县| 五峰| 通化市| 垫江县| 调兵山市| 延寿县| 永泰县| 太湖县| 来凤县| 余干县| 牙克石市| 德兴市| 甘孜县| 信阳市| 平湖市| 滁州市| 南丰县| 普兰县| 无锡市| 天峨县| 禄劝| 建湖县| 兴文县| 元江| 华宁县| 汪清县| 平乡县| 通海县| 内黄县| 运城市| 南雄市| 麦盖提县| 桂平市| 昭苏县|