專利名稱:搜索空間計(jì)算方法和裝置及自適應(yīng)線程調(diào)度方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及多核計(jì)算機(jī)領(lǐng)域,并且尤其涉及如何在多核硬件平 臺(tái)上進(jìn)行多個(gè)軟件線程的調(diào)度的線程調(diào)度技術(shù)。
背景技術(shù):
自多核技術(shù)提出后,多核處理器已經(jīng)成為大家公認(rèn)的處理器設(shè)計(jì)趨 勢(shì)。而且,隨著多核芯片市場(chǎng)的^,出現(xiàn)了越來(lái)越多的基于多核的系統(tǒng) (例如,服務(wù)器和個(gè)人計(jì)算機(jī))。這些基于多核的系統(tǒng)提供了多線程應(yīng)用 可以同時(shí)運(yùn)行許多線程這樣的能力。多線程應(yīng)用總4一創(chuàng)建多個(gè)線程,并且 由于存在多個(gè)線程和多個(gè)核,因此需要將多個(gè)線程調(diào)度到不同的核上以^更 執(zhí)行。線程在不同核上的運(yùn)行方式將會(huì)在很大程度上影響到系統(tǒng)的性能。
多線程應(yīng)用和多核技術(shù)對(duì)于如何將軟件線程調(diào)度到多個(gè)硬件核上提 出了新的挑戰(zhàn)。從軟件的角度來(lái)說(shuō),多線程應(yīng)用是更加高速緩存敏感的 (即,在多個(gè)線程當(dāng)中共享總的高速緩存大小)。而且,多線程應(yīng)用的存 儲(chǔ)模型/編程模型決定了在不同線程之間有大量的共享資源(例如,全局 變量、原子變量、鎖機(jī)制等),其中所述線程通常是基于要共享的高速緩
存、前端總線(FSB)或者計(jì)算單元的。而從硬件核的角度來(lái)說(shuō),多核服 務(wù)器通常具有分級(jí)高速緩存結(jié)構(gòu),例如,Ll高速緩存是專用的,L2高速 緩存由同 一處理器中的多個(gè)核共享,而L3高速緩存可由不同插座(socket) 上的處理器共享,等等。而且,多核處理器技術(shù)還提出了許多新的硬件線 程模型,例如,同步多線程(SMT)/片上多線程(CMT)/超線程(HT) 模型,它們是邏輯硬件線程而不是物理核,并且共享FSB的硬件資源、 計(jì)算單元等。由此,導(dǎo)致存在許多線程調(diào)度問(wèn)題。例如,線程到核的不好
的調(diào)度會(huì)由于存在快取置換(cache thrashing)、資源竟?fàn)幍葐?wèn)題而導(dǎo)致 系統(tǒng)性能降低。而且,由于可能存在M個(gè)不同的軟件線程和N個(gè)硬件線 程(其中N和M為自然數(shù)),而且N個(gè)硬件線程與復(fù)雜的硬件結(jié)構(gòu)有關(guān), 因此編程人員或者系統(tǒng)性能分析人員難以確定最優(yōu)的線程調(diào)度方法。此外,在某一多線程應(yīng)用已經(jīng)在某一特定硬件平臺(tái)上適應(yīng)得4艮好了的情況 下,如果想要把這個(gè)應(yīng)用移植到另 一個(gè)與該特定平臺(tái)具有不同的硬件線程 類型/核/高速緩存結(jié)構(gòu)的硬件平臺(tái)上,那么將會(huì)是非常困難的。
目前已經(jīng)提出了很多應(yīng)用在多核環(huán)境下的線程調(diào)度方法和/或系統(tǒng),例
如,可以參見(jiàn)美國(guó)專利US6779182B1和US4910660A, C. Severance和 R. Enbody所著的、題為"Automatic Self-allocating Thread (ASAT) on an SGI Challenge"的文章(參見(jiàn)Proceedings of 1996 International Conference on Parallel Processing (ICPP' 96), Vol. 3,第III-132 ~ III-139 頁(yè),1996年8月),以及Bodhisattwa Mukherjee和Karsten Schwan所著 的、題為"Implementation of Scalable Blocking Locks Using an Adaptive Thread Scheduler"(參見(jiàn)Proceedings of the 10th International Parallel Processing Symposium (IPPS' 96),第339 ~ 343頁(yè),1996年)的文章等。 然而,這些已有的線程調(diào)度方法和/或系統(tǒng)都沒(méi)有充分考慮到不同線程之 間的交互和/或資源共享問(wèn)題,因此存在諸如費(fèi)時(shí)、無(wú)法資源共享等問(wèn)題。
將多個(gè)線程調(diào)度到多個(gè)核上的過(guò)程就像是數(shù)學(xué)上的球盒(ball-box) 問(wèn)題,因此,可以根據(jù)排列組合的原理計(jì)算所有可能的、包含多個(gè)線程與 多個(gè)核之間的映射關(guān)系的線程調(diào)度選擇。例如,在多線程應(yīng)用可以生成M 個(gè)軟件線程且多核系統(tǒng)具有N個(gè)硬件核的情況下,對(duì)于從M到N的映射 關(guān)系,如果假設(shè)一個(gè)線程只能被調(diào)度給一個(gè)核,則總計(jì)可能存在NM種線 程調(diào)度選擇(在下文中將其稱為綁定選擇),其中包含M個(gè)線程與N個(gè) 硬件的所有可能的映射關(guān)系,這時(shí)可以認(rèn)為,包含所有從線程到核的綁定 選擇的、總的搜索空間大小為NM。在此,搜索空間表示應(yīng)用程序(單線 程應(yīng)用或多線程應(yīng)用)在多核硬件平臺(tái)上的線程調(diào)度選擇或方案(即,綁 定選擇或方案)的組合空間。在這種情況下,例如,如果在4個(gè)核上有6 個(gè)軟件線程,則總計(jì)可能存在46 = 4096種綁定選擇。例如,如果針對(duì)每 種綁定選擇的性能測(cè)量需要l分鐘,則總的測(cè)量時(shí)間要接近3天,即使使 用比較好的、例如僅需要該時(shí)間的10%來(lái)得到搜索結(jié)果的搜索算法,也 仍然需要大約7個(gè)小時(shí)。也就是說(shuō),即使采用目前已知的最佳搜索算法從 這個(gè)搜索空間中查找最優(yōu)的綁定選擇,這個(gè)搜索空間也太大了,所需要的 搜索時(shí)間也太長(zhǎng)了。
因此,如何減小包含多個(gè)線程到多個(gè)核的所有綁定選擇的巨大的搜索 空間,以便從中快速地找到令人滿意的綁定方案,是當(dāng)前迫切要解決的一 個(gè)重要問(wèn)題。
7此外,還迫切需要一種設(shè)計(jì)良好的、用于將多個(gè)線程調(diào)度到多個(gè)核上 的線程調(diào)度方法,以確保多線程應(yīng)用在多核硬件平臺(tái)上具有令人滿意的運(yùn) 行性能。
發(fā)明內(nèi)容
在下文中給出了關(guān)于本發(fā)明的簡(jiǎn)要概述,以便提供關(guān)于本發(fā)明的某些 方面的基本理解。應(yīng)當(dāng)理解,這個(gè)概述并不是關(guān)于本發(fā)明的窮舉性概述。 它并不是意圖確定本發(fā)明的關(guān)鍵或重要部分,也不是意圖限定本發(fā)明的范 圍。其目的僅僅是以簡(jiǎn)化的形式給出某些概念,以此作為稍后論述的更詳 細(xì)描述的前序。
為了解決現(xiàn)有技術(shù)中的上述問(wèn)題,本發(fā)明的一個(gè)目的是,提供一種用 于計(jì)算可供在多核系統(tǒng)上對(duì)多線程應(yīng)用進(jìn)行線程調(diào)度時(shí)使用的線程調(diào)度 搜索空間的方法和/或裝置,其能夠基于多核系統(tǒng)的硬件結(jié)構(gòu),從所有可 能的綁定選擇中找出所有彼此相同或等效的綁定選擇,并且在所有可能的 綁定選擇中僅保留所有彼此相同或等效的綁定選擇其中之一 ,而除去其余 彼此相同或等效的綁定選擇,以得到減小了的線程調(diào)度搜索空間。
在此,兩個(gè)綁定選擇等效,意味著多線程應(yīng)用依據(jù)這兩種綁定選擇進(jìn)
行線程調(diào)度時(shí)"預(yù)期"會(huì)產(chǎn)生相同的效果,例如,程序運(yùn)行的iUL相同, CPU的利用率相同,內(nèi)存占用空間相同等。
本發(fā)明的另一個(gè)目的是,提供一種利用上述計(jì)算線程調(diào)度搜索空間的 方法和/或裝置進(jìn)行自適應(yīng)線程調(diào)度的方法和/或系統(tǒng),其能夠在減小了的 線程調(diào)度搜索空間中模擬運(yùn)行多線程應(yīng)用,并M于多核系統(tǒng)的性能監(jiān)視 結(jié)果從所述線程調(diào)度搜索空間中搜索并確定優(yōu)選綁定方案,據(jù)此產(chǎn)生調(diào)度 執(zhí)行計(jì)劃,并在真實(shí)環(huán)境下實(shí)際應(yīng)用該調(diào)度執(zhí)行計(jì)劃。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于計(jì)算可 供在多核系統(tǒng)上對(duì)多線程應(yīng)用進(jìn)行線程調(diào)度時(shí)使用的線程調(diào)度搜索空間 的方法,包括以下步驟獲取有關(guān)多線程應(yīng)用和多核系統(tǒng)的硬件結(jié)構(gòu)的信 息;通過(guò)參考所述有關(guān)信息,計(jì)算所有可能的、包含多個(gè)線程與多個(gè)核之 間的映射關(guān)系的綁定選擇;基于多核系統(tǒng)的硬件結(jié)構(gòu),從所有可能的綁定 選擇中找出所有彼此相同或等效的綁定選擇;以及在所有可能的綁定選擇 中,對(duì)于所有彼此相同或等效的綁定選擇,保留其中之一,而除去其余彼 此相同或等效的綁定選擇,以得到可供線程調(diào)度時(shí)使用的搜索空間。根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種用于計(jì)算可供在多核系統(tǒng)上
對(duì)多線程應(yīng)用進(jìn)行線程調(diào)度時(shí)使用的線程調(diào)度搜索空間的裝置,包括信 息獲取器,被配置用于獲取有關(guān)多線程應(yīng)用以及多核系統(tǒng)的硬件結(jié)構(gòu)的信 息;綁定選擇計(jì)算器,被配置用于通過(guò)參考所述有關(guān)信息,計(jì)算所有可能 的、包含多個(gè)線程與多個(gè)核之間的映射關(guān)系的綁定選擇;綁定選"^檢測(cè)器, 被配置用于基于多核系統(tǒng)的硬件結(jié)構(gòu),從所有可能的綁定選擇中找出所有 彼此相同或等效的綁定選擇,并保留所有彼此相同或等效的綁定選擇其中 之一,而除去其余彼此相同或等效的綁定選擇;以及綁定選擇存儲(chǔ)器,用 于存儲(chǔ)可供線程調(diào)度時(shí)使用的線程調(diào)度搜索空間,該線程調(diào)度搜索空間是 在所有可能的綁定選擇中保留所有彼此相同或等效的綁定選擇其中之一 而除去其余彼此相同或等效的綁定選擇而得到的。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種使用上述計(jì)算線程調(diào)度搜索 空間的方法進(jìn)行自適應(yīng)線程調(diào)度的方法,包括以下步驟才艮據(jù)作為線程調(diào) 度優(yōu)化目標(biāo)的多線程應(yīng)用和多核硬件平臺(tái)的有關(guān)信息,利用上述方法計(jì)算 可用的線程調(diào)度搜索空間;在所述多核硬件平臺(tái)上在所述線程調(diào)度搜索空 間中模擬運(yùn)行所述多線程應(yīng)用,并且基于模擬運(yùn)行所述多線程應(yīng)用時(shí)所述 多核硬件平臺(tái)的性能監(jiān)視結(jié)果,從所述線程調(diào)度搜索空間中搜索并確定優(yōu) 選的綁定選擇,作為優(yōu)選綁定方案;以;SJL據(jù)所確定的優(yōu)選綁定方案產(chǎn)生 調(diào)度執(zhí)行計(jì)劃,并實(shí)際應(yīng)用該調(diào)度執(zhí)行計(jì)劃。
根據(jù)本發(fā)明還有的另一個(gè)方面,還提供了一種自適應(yīng)線程調(diào)度系統(tǒng), 包括作為優(yōu)化目標(biāo)對(duì)象的多線程應(yīng)用和多核硬件平臺(tái);上述計(jì)算線程調(diào) 度搜索空間的裝置,被配置用于根據(jù)多線程應(yīng)用和多核硬件平臺(tái)的有關(guān)信 息計(jì)算可用的線程調(diào)度搜索空間;模擬運(yùn)行控制器,被配置用于在所述多 核硬件平臺(tái)上在所述線程調(diào)度搜索空間中模擬運(yùn)行所述多線程應(yīng)用;以及 性能監(jiān)視器,被配置用于記錄模擬運(yùn)行所述多線程應(yīng)用時(shí)所述多核硬件平 臺(tái)的性能監(jiān)視結(jié)果,其中,所^擬運(yùn)行控制器基于來(lái)自所述性能監(jiān)視器 的性能監(jiān)視結(jié)果,從所述線程調(diào)度搜索空間中搜索并確定優(yōu)選的綁定選 擇,作為優(yōu)選綁定方案,并根據(jù)所確定的優(yōu)選綁定方案產(chǎn)生調(diào)度執(zhí)行計(jì)劃, 并實(shí)際應(yīng)用該調(diào)度執(zhí)行計(jì)劃。
依據(jù)本發(fā)明的其它方面,還提供了相應(yīng)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算
秘序產(chǎn) 品。
本發(fā)明的一個(gè)優(yōu)點(diǎn)在于,通過(guò)利用根據(jù)本發(fā)明實(shí)施例的計(jì)算搜索空間 的方法和/或裝置,可以較大程度地減小可供在多核系統(tǒng)上對(duì)多線程應(yīng)用進(jìn)行線程調(diào)度時(shí)使用的線程調(diào)度搜索空間。
本發(fā)明的另一個(gè)優(yōu)點(diǎn)在于,通過(guò)利用本發(fā)明實(shí)施例的自適應(yīng)線程調(diào)度 方法和/或系統(tǒng),不管有多少不同的工作負(fù)荷或者多么復(fù)雜的硬件平臺(tái), 都可以自動(dòng)地確定優(yōu)選的綁定方案。
本發(fā)明的又一個(gè)優(yōu)點(diǎn)在于,在根據(jù)本發(fā)明實(shí)施例的自適應(yīng)線程調(diào)度方 法和/或系統(tǒng)中,由于利用了根據(jù)本發(fā)明實(shí)施例的計(jì)算搜索空間的方法和/ 或裝置而使得線程調(diào)度搜索空間被大大地減小了 ,而且該搜索空間是通過(guò) 保留所有彼此相同或等效的綁定選擇其中之一而除去其余彼此相同或等 效的綁定選擇而得到的,因此不會(huì)與現(xiàn)有的任何優(yōu)化的搜索方法相沖突, 使得可以使用任何已有的優(yōu)選搜索方法,所以,可以使用自適應(yīng)技術(shù),并 且可以更快地找到優(yōu)選的綁定方案。
本發(fā)明還有一個(gè)優(yōu)點(diǎn)在于,在根據(jù)本發(fā)明實(shí)施例的自適應(yīng)線程調(diào)度方 法和/或系統(tǒng)中,可以屏蔽不同硬件平臺(tái)間的差異,從而應(yīng)用自動(dòng)適應(yīng)平 臺(tái)特征。
通過(guò)以下結(jié)合附圖對(duì)本發(fā)明的最佳實(shí)施例的詳細(xì)說(shuō)明,本發(fā)明的這些 以及其他優(yōu)點(diǎn)將更加明顯。
本發(fā)明可以通過(guò)參考下文中結(jié)合附圖所給出的描述而得到更好的理
的部件。所述附圖連同下面的詳細(xì)說(shuō)明一起包含在本說(shuō)明書中并且形成本 說(shuō)明書的一部分,而且用來(lái)進(jìn)一步舉例說(shuō)明本發(fā)明的優(yōu)選實(shí)施例和解釋本
發(fā)明的原理和優(yōu)點(diǎn)。在附圖中
圖l示出了現(xiàn)有Intel四核處理器的結(jié)構(gòu)示意圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算可用線程得到搜索空間的 方法的流程圖,其中該方法可以基于多核系統(tǒng)的體系拓樸結(jié)構(gòu),在所有可 能的綁定選擇中僅保留所有彼此相同或等效的綁定選擇其中之一,而除去 其余彼此相同或等效的綁定選擇,使得搜索空間得以大幅度減小;
圖3示出了才艮據(jù)本發(fā)明的一個(gè)實(shí)施例的搜索空間計(jì)算裝置的結(jié)構(gòu)示意 圖,其中該裝置可以基于多核系統(tǒng)的體系拓樸結(jié)構(gòu),通過(guò)在所有可能的綁 定選擇中僅保留所有彼此相同或等效的綁定選擇其中之一,而除去其余彼此相同或等效的綁定選擇,來(lái)得到減小了的綁定選擇搜索空間;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的利用圖2所示的方法進(jìn)行自適應(yīng)線程調(diào)度的方法的流程圖5示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的自適應(yīng)線程調(diào)度系統(tǒng)的方框圖,其中在該自適應(yīng)線程調(diào)度系統(tǒng)中包括如圖3所示的搜索空間計(jì)算裝置,并且可以執(zhí)行以上結(jié)合圖4所描述的自適應(yīng)線程調(diào)度方法;以及
圖6示出了對(duì)根據(jù)本發(fā)明實(shí)施例的自適應(yīng)線程調(diào)度方法和/或系統(tǒng)進(jìn)
行測(cè)試的M發(fā)起協(xié)議(SIP)應(yīng)用服務(wù)器測(cè)試場(chǎng)景。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,附圖中的元件僅僅是為了簡(jiǎn)單和清ft^見(jiàn)而示出的,而且不一定是按比例繪制的。例如,附圖中某些元件的尺寸可能相對(duì)于其他元件放大了 ,以便有助于提高對(duì)本發(fā)明實(shí)施例的理解。
具體實(shí)施例方式
在下文中將結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例進(jìn)行描述。為了清楚和簡(jiǎn)明起見(jiàn),在說(shuō)明書中并未描述實(shí)際實(shí)施方式的所有特征。然而,應(yīng)該了解,在開(kāi)發(fā)任何這種實(shí)際實(shí)施例的過(guò)程中必須做出很多特定于實(shí)施方式的決定,以便實(shí)現(xiàn)開(kāi)發(fā)人員的具體目標(biāo),例如,符合與系統(tǒng)及業(yè)務(wù)相關(guān)的那些限制條件,并且這些限制條件可能會(huì)隨著實(shí)施方式的不同而有所改變。此外,還應(yīng)該了解,雖然開(kāi)發(fā)工作有可能是非常復(fù)雜和費(fèi)時(shí)的,但對(duì)得益于4^^開(kāi)內(nèi)容的本領(lǐng)域技術(shù)人員來(lái)說(shuō),這種開(kāi)發(fā)工作僅僅是例行的任務(wù)。
在此,還需要說(shuō)明的一點(diǎn)是,為了避免因不必要的細(xì)節(jié)而模糊了本發(fā)明,在附圖中僅僅示出了與根據(jù)本發(fā)明的方案密切相關(guān)的裝置結(jié)構(gòu)和/或處理步驟,而省略了與本發(fā)明關(guān)系不大的其他細(xì)節(jié)。
為了更好地描述多核系統(tǒng)的體系拓樸結(jié)構(gòu),在此提出了一種公式化的描述方法,該>^式化的描述方法不僅可以包含處理器的體系結(jié)構(gòu)信息,而且還可以用來(lái)在線程調(diào)度過(guò)程中減小搜索空間。該公式化的描述方法具有
如下所述的描述框架
(1)用于表示各個(gè)核之間的關(guān)系的符號(hào)集,其中包括如下符號(hào)S:自身;
Ll:共享L1高速緩存;
iiL2:共享L2高速緩存但不共享Ll高速緩存;D:在同一小片(die)內(nèi),但是排除L2和L1;C:在同一芯片/插座內(nèi),但是排除D;
顯然,可能還存在其他以上并未列出的符號(hào)定義或約束條件(例如,可能由于新的架構(gòu)設(shè)計(jì)而帶來(lái)的新的共享或獨(dú)享約束等)。在此,需要注意的是,該符號(hào)集的定義必須是具有完備性的(MECE, MutuallyExclusive Collectively Exhaustive ),即,該符號(hào)集中各個(gè)符號(hào)代表的約A條件所表示的可能情況的總和包括了所有可能出現(xiàn)的情況,也就是說(shuō),各個(gè)符號(hào)的定義彼此相互之間是無(wú)交集的,而且所有符號(hào)合起來(lái)構(gòu)成全集(即,包括所有可能出現(xiàn)的核與核之間的可能性的集合)。
(2)用于表明每一核對(duì)之間的關(guān)系的關(guān)聯(lián)矩陣IM (IncidenceMatrix):
假設(shè)在此用Xy表示關(guān)聯(lián)矩陣IM中第i行第j列上的元素,它的含義表示多核系統(tǒng)中第i個(gè)核和第j個(gè)核之間的關(guān)系,并且它的值來(lái)自于以上所定義的符號(hào)集。
例如,根據(jù)上述符號(hào)集定義和關(guān)聯(lián)矩陣定義,對(duì)于具有兩個(gè)Intel四核處理器(該Intel四核處理器的結(jié)構(gòu)示意圖見(jiàn)圖1)的HS21刀片月艮務(wù)器而言,可以得出如下的關(guān)聯(lián)矩陣<formula>formula see original document page 12</formula>
而對(duì)于SunFire T1000服務(wù)器(其中包含4個(gè)硬件核,但是每個(gè)硬件核上可并行運(yùn)行4個(gè)線程,即,包含16個(gè)硬件線程N(yùn)iagara),可以得出如下的關(guān)聯(lián)矩陣sLILIUL2L2L2L2L2L2L2L2L2
LISLIUL2L2L2L2L212L2L2
LILISLIL2L2L2L2L2L2L2L2L2L2
LILILISL2L2L2L2L2L212L2L2L2
L2L212SLIULIL2L212L2L2L2L2
L2L2IJSLILIL2L2L2L2
L2L2L2LIuSL2L2L2U
L2L2LILIUSL2L2L2L2L2L2L2
L2L2L2L2L212L2SLILIUL2L2L2
L2L2L2L2L2L2L2LISLILIL2UL2
L2L2L2L2L2L2LILISLIL2L2L2L2
L2L2L2L2L2LILISIL2
12L2L2L212L2L2L2L2L2SLIULI
L2L2L2L2L2L2L2L2L2L2LISLILI
L2L2L2L2L2L2L2L2LILISLI
L2L2L2L2L212L2L2LILIUS
需要說(shuō)明的一點(diǎn)是,以上所給出的HS21刀片服務(wù)器和SunFire T1000服務(wù)器的關(guān)聯(lián)矩陣中所使用的符號(hào)集就目前現(xiàn)有的架構(gòu)設(shè)計(jì)而言是具有完備性的.
由此,根據(jù)以上給出的包含上述符號(hào)集和關(guān)聯(lián)矩陣的描述框架,不管是同構(gòu)的多核系統(tǒng)還是異構(gòu)的多核系統(tǒng)(例如,IBM CELL),對(duì)于,多核系統(tǒng)的體系拓樸結(jié)構(gòu),都可以給出公式化的描述,即定義如上所述的關(guān)聯(lián)矩陣。
顯然也可以根據(jù)需要給出其他不同的符號(hào)集定義,只要所定義的符號(hào)集具有完備性這一特點(diǎn)即可,并且因此可以得到形式上有所不同的關(guān)聯(lián)矩陣來(lái)表示多核系統(tǒng)的體系拓樸結(jié)構(gòu)。
下面將結(jié)合圖2所示的流程圖來(lái)具體描述根據(jù)本發(fā)明的實(shí)施例如何基于多核系統(tǒng)的體系拓樸結(jié)構(gòu)來(lái)減小搜索空間的過(guò)程。
圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于計(jì)算可用線程調(diào)度搜索空間的處理過(guò)程200的流程圖,其中該處理過(guò)程200能夠基于多核系統(tǒng)的體系拓樸結(jié)構(gòu),在所有可能的綁定選擇中僅保留所有彼i^目同或等效的綁定選捧其中之一,而除去其余彼此相同或等效的可能綁定選擇,從而得到減小了的線程調(diào)度搜索空間。
如圖2所示,在步驟S210,獲取有關(guān)多核系統(tǒng)的體系拓樸結(jié)構(gòu)以及多線程應(yīng)用的信息,例如,核的數(shù)目,各個(gè)核之間的關(guān)系,線程的數(shù)目,各線程間的通信方式等。其中,有關(guān)多核系統(tǒng)的體系拓樸結(jié)構(gòu)的信息可以從多核系統(tǒng)的硬件平臺(tái)手冊(cè)或使用規(guī)范中獲得,而有關(guān)多線程應(yīng)用的信息
13可以從多線程應(yīng)用獲得(其中該多線程應(yīng)用是由用戶輸入的)。
然后,在步驟S220,參考步驟S210中所得到的信息,才艮據(jù)多個(gè)線程與多個(gè)核之間的可能的映射關(guān)系,計(jì)算線程調(diào)度過(guò)程中所有可能的綁定方案(即綁定選擇)。
在此,正如前面所提到的那樣,可以根據(jù)排列組合的原理計(jì)算所有可能的綁定選擇。以將6個(gè)線程(分別用Tl、 T2、 T3、 T4、 T5和T6表示)調(diào)度到4個(gè)核(分別用Cl、 C2、 C3和C4表示)上為例,如果假設(shè)在每種綁定方案中一個(gè)線程都只能被調(diào)度給一個(gè)核,那么這樣可以得出共計(jì)有
46 = 4096種可能的綁定選擇(分別用Choice 1、 Choice 2........ Choice
4096表示),其分別為
Choice 1: T1C1, T2C1, T3C1, T4C1, T5C1, T6C1;
Choice 2: T1C2, T2C1, T3C1, T4C1, T5C1, T6C1;
Choice 4096: T1C4, T2C4, T3C4, T4C4, T5C4, T6C4。
然而,實(shí)際上,在線程調(diào)度過(guò)程中一個(gè)線程往往可以被調(diào)度到一個(gè)以上的核,例如,線程Tl可以被調(diào)度到核C0和Cl (假設(shè)用T1(C0C1)來(lái)表示),這樣可能的綁定選擇應(yīng)當(dāng)更多。例如,在將6個(gè)線程調(diào)度到4個(gè)核上的情況下,可能的綁定選擇的總數(shù)如下所示
接下來(lái),在步猓S230,基于多核系統(tǒng)的體系拓樸結(jié)構(gòu),從所有可能
在>(^設(shè)每種綁定方案中 一個(gè)線程都只能被調(diào)度給一個(gè)核的情況下,判斷任何兩種綁定選擇是否相同的過(guò)程比較簡(jiǎn)單。例如,對(duì)于以上給出的Choice l和Choice 2,不管采用何種方法,都可以4艮容易地確定出除第一項(xiàng)有所不同(它們的第一項(xiàng)分別為T1C1和T1C2)夕卜,其余各項(xiàng)分別相同,因此,可以確定Choice 1和Choice 2不同。
但是,實(shí)際上一個(gè)線程往往不只是可以被^調(diào)度到一個(gè)核而是可以被調(diào)度到若干個(gè)核,在這種情況下,由于綁定方案中存在一個(gè)線程與若千個(gè)核的組合(即核子集)的較為復(fù)雜的映射關(guān)系,如何判斷任何兩種其中包含這種復(fù)雜映射關(guān)系的綁定選擇是否相同或等效,就變得復(fù)雜多了。例如,
C: + C42 + C43 + C44 = 156 = 11,390,625選擇。假設(shè)線程Tl可以被調(diào)度到核CO、 Cl和C2中的任意兩個(gè)核,這樣就可能存在如下三種可能的復(fù)雜映射關(guān)系T1(C0C1), T1(C0C2)和T1(C1C2)。在下文中,為了簡(jiǎn)單起見(jiàn),將綁定選擇中的這種包含復(fù)雜映射關(guān)系的項(xiàng)稱為組合項(xiàng)。如何更加簡(jiǎn)單和快捷地判斷這三種可能的復(fù)雜映射關(guān)系是否等效,也是本發(fā)明較為關(guān)注的問(wèn)題之一。
在此,為了更好地比較任意兩種包含上述這種復(fù)雜映射關(guān)系的綁定選擇是否相同或等效,引入了如下幾個(gè)概念組合矢量CV (CombinationVector ),組合矩陣CM ( Combination Matrix),和標(biāo)識(shí)因子IF (IdentityFactor )0
其中,組合矢量CV是表示在某一綁定方案中各個(gè)核是否被選中運(yùn)行(即是否被分配有軟件線程)的布爾矢量,而組合矩陣CM是按照下述等式從組合矢量CV得到的矩陣
cm = Cxct (等式l)
例如,對(duì)于具有2個(gè)Intel四核處理器的HS21刀片服務(wù)器(其中包含8個(gè)核)而言,假設(shè)核C2、 C4和C5在線程調(diào)度過(guò)程中被選中(即,
被分配有線程),則對(duì)于該服務(wù)器的組合矢量cv可以a示為(0, 1, 0,1, 1,
O,O,O),并且因此可以得到如下所示的組合矩陣CM:
<formula>formula see original document page 15</formula>基于以上定義的組合矢量CV和組合矩陣CM,按照如下方式計(jì)算類似T(C2C4C5)這樣的組合項(xiàng)的標(biāo)識(shí)周子IF:
/F二Ex[CM-iM]x57 -ExfCrrxCr-ZAnx^r (等式2 )
其中,5 = (1,1,...,1),符號(hào)" "表示點(diǎn)積.
在此,按以上方式計(jì)算的標(biāo)識(shí)因子IF表示了和多線程應(yīng)用的線程相關(guān)的那些核之間的拓樸關(guān)系。
假設(shè)某一線程T可以被調(diào)度(或分配)給核子集Sl和核子集S2,而且多核系統(tǒng)的關(guān)聯(lián)矩陣為IM,核子集S1的組合矢量為CV1,核子集S2的組合矢量為CV2,那么,只有當(dāng)分別針對(duì)核子集Sl和核子集S2計(jì)算得到的組合項(xiàng)TS1和TS2的標(biāo)識(shí)因子IF1和IF2相等、即滿足以下的等式3時(shí),才認(rèn)為線程T到核子集Sl的線程調(diào)度和線程T到核子集S2的線程調(diào)JLA等效的,即,所述線程T到核子集Sl和核子集S2的映射關(guān)系(即組合項(xiàng)TS1和TS2 )是等效的
五x[CF/ xCFj ,/M]x五r三五x[C「/ x CF2 /M]x £r (等式3 )
例如,以下述兩種綁定選擇為例來(lái)進(jìn)行i兌明
Choice x: T1(C1C2C3), T2C1, T3C1, T4C1, T5C1, T6C1;
Choice y: T1(C2C3C4), T2C1, T3C1, T4C1, T5C1, T6C1。
通過(guò)對(duì)上述兩種綁定選擇進(jìn)行比較不難看出,它們的第一項(xiàng)中都包含線程到核子集的復(fù)雜映射關(guān)系,而其余各項(xiàng)均表示一個(gè)線程到一個(gè)核的映射,而且第2至6項(xiàng)分別相等,這時(shí)只需要判斷它們的第1項(xiàng)是否等效,即可以確定這兩種綁定選擇是否等效。
也就是說(shuō),當(dāng)兩個(gè)綁定選擇中包含的非組合項(xiàng)彼此相同且組合項(xiàng)彼此等效時(shí),兩個(gè)綁定選"^是等效的。而且,正如上文中所說(shuō)明的那樣,兩個(gè)綁定選擇等效,意味著多線程應(yīng)用依據(jù)這兩種綁定選擇進(jìn)行線程調(diào)度時(shí)"預(yù)期"會(huì)產(chǎn)生相同的效果,例如,程序運(yùn)行的速度相同,CPU的利用率相同,內(nèi)存占用空間相同等。
仍以HS21刀片服務(wù)器為例,對(duì)于上述的Choice x和Choice y的第1項(xiàng),它們的核子集分別是(C1, C2, C3)以及(C2, C3, C4},即,CVx =(1,1,1, 0, 0,0, 0, 0), CVy = (0,1,1,1, 0, 0, 0, 0),
那么,才艮據(jù)上述等式2可以得出
:(1,1,…,1)X[(l,l,l,O,O,O,O,Cx(l,l,l,0,0,0,0,0)"M]x(l,l,...(U,…,l)x[-1,1,1,0,0,0,0,0-l,l,l,O,O,O,O,O l,l,lO,O,O,O,O o,o,o,o,o,o,o —S,丄2,Z),D,C,C,C,C— 丄2,S,Z),D,C,C,C,C D,化S,丄2,C,C,C,C Z),化Z2,S,C,C,C,C]x—1 _ 1 1 1
16<formula>formula see original document page 17</formula>
由此,可以確定T1(C1C2C3)與T1(C2C3C4)是等效的,繼而可以確 定Choice x和Choice y是等效的。這一點(diǎn)從圖1中所示的Intel四核處理 器的結(jié)構(gòu)中也可以得到證實(shí)。
對(duì)于任何一種其中至少有一項(xiàng)包含線程到核子集的復(fù)雜映射關(guān)系(即 組合項(xiàng))的綁定選擇,都可以如上所述計(jì)算出該綁定選擇中的組合項(xiàng)的標(biāo) 識(shí)因子IF,然后再比較該種綁定選擇與其他也包含組合項(xiàng)的綁定選擇是 否等效.
這樣,在圖2所示的步驟230中,從所有可能的綁定選擇中找出所有 彼此相同或等效的綁定選擇。
隨后,在步驟S240,在所有可能的綁定選擇中,對(duì)于所有彼此相同 或等效的綁定選擇,僅保留其中之一,而除去其余彼此相同或等效的綁定 選擇(在下文中,為了簡(jiǎn)明起見(jiàn),將這些要除去的其余彼此相同或等效的 綁定選擇稱為"多余的綁定選擇")。
在找出了彼此相同或等效的綁定選擇之后,從所有可能的綁定選擇中 除去多余的綁定選擇是非常方便的。也就是說(shuō),可以使用任何已有的方法 來(lái)遍歷整個(gè)線程調(diào)度搜索空間,保留所有彼此相同或等效的綁定選擇其中 之一而除去多余的綁定選擇,從而可以大大地減小搜索空間。
以上結(jié)合圖2描述根據(jù)本發(fā)明實(shí)施例的方法時(shí),基于多個(gè)線程彼此不 同這個(gè)假設(shè),對(duì)如何判斷任意兩種綁定選擇是否相同或等效進(jìn)行了說(shuō)明, 但是,實(shí)際上,多線程應(yīng)用創(chuàng)建的多個(gè)線程往往是相同的。針對(duì)其中所述 多個(gè)線程相同這樣一種特例,完全可以如上所述那樣來(lái)處理,因此,為了 簡(jiǎn)明起見(jiàn),在此就不再詳述了。在多個(gè)線程相同的這種情況下,例如對(duì)于
上面所提到的6線程應(yīng)用,可以通過(guò)將Tl、 T2........ T6統(tǒng)一用T表
示,然后比較綁定選擇的各項(xiàng)的并集是否相同或等效,來(lái)判斷任意兩個(gè)綁 定選擇是否相同或等效,因此,可以對(duì)以上所描述的方法200進(jìn)行筒化。圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的搜索空間計(jì)算裝置300的結(jié)構(gòu) 示意圖,其中該搜索空間計(jì)算裝置300可以基于多核系統(tǒng)的體系拓樸結(jié) 構(gòu),通過(guò)在所有可能的綁定選擇中保留所有彼此相同或等效的綁定選擇其 中之一,而除去其余彼此相同或等效的綁定選擇(即,多余的綁定選擇), 來(lái)得到減小了的線程調(diào)度搜索空間。
該搜索空間計(jì)算裝置300中可以執(zhí)行如圖2所示的方法200,并且如 圖3所示,搜索空間計(jì)算裝置300包括信息獲取器310,綁定選擇計(jì)算 器320,綁定選擇檢測(cè)器330和綁定選擇存儲(chǔ)器340。
其中,信息獲取器310被配置用于獲取有關(guān)多核系統(tǒng)的體系拓樸結(jié)構(gòu) 以及多線程應(yīng)用的信息,例如,線程和核的數(shù)目,各線程間的通信方式, 各個(gè)核之間的關(guān)系等。
綁定選擇計(jì)算器320被配置用于通過(guò)參考信息獲取器310所獲取的信 息,根據(jù)線程與核之間的可能的映射關(guān)系,計(jì)算線程調(diào)度過(guò)程中所有可能 的綁定選擇,并將其存儲(chǔ)在綁定選擇存儲(chǔ)器340。
綁定選#^檢測(cè)器330被配置用于從所有可能的綁定選擇中檢測(cè)出所有 彼此具有相同或等效映射關(guān)系的相同或等效綁定選擇,并M儲(chǔ)在綁定選 擇存儲(chǔ)器340中的所有可能的綁定選擇中除去多余的綁定選擇,即,在所 有可能的綁定選擇中保留所有彼此相同或等效的綁定選擇其中之一,而除 去其余彼此相同或等效的綁定選擇。在此,綁定選^^檢測(cè)器330可以如以 上結(jié)合圖2所示的流程圖所描述的那樣,對(duì)于包含至少一個(gè)組合項(xiàng)的綁定 選擇計(jì)算組合項(xiàng)的標(biāo)識(shí)因子,然后通過(guò)對(duì)所有可能的綁定選擇進(jìn)行兩兩比 較,找出所有彼此相同或等效的綁定選擇。
綁定選擇存儲(chǔ)器340 ,被配置用于存儲(chǔ)可供線程調(diào)度過(guò)程中選用的綁 定選擇,其中所述可供選用的綁定選擇是從所有可能的綁定選擇中除去多 余的綁定選擇后得到的。
通過(guò)閱讀以上結(jié)合圖2給出的、關(guān)于如何基于多核系統(tǒng)的體系拓樸結(jié) 構(gòu)來(lái)計(jì)算線程調(diào)度搜索空間的處理過(guò)程的描述,搜索空間計(jì)算裝置300 的各個(gè)組成部件的功能如何實(shí)現(xiàn)就變得很清楚了 ,所以在此就不再贅述 了。
對(duì)于將6個(gè)相同的軟件線程調(diào)度到4個(gè)核上并且每個(gè)線程只能被調(diào)度 到一個(gè)核上的情況,通過(guò)利用以上結(jié)合圖2和/或3所描述的方法和/或裝 置,從所有可能的46=4096種綁定選擇中去除了多余的綁定選擇后得到的
18搜索空間的大小為
<formula>formula see original document page 19</formula>
由此可以看出,通過(guò)利用以上所描述的根據(jù)本發(fā)明實(shí)施例的計(jì)算搜索 空間的方法和/或裝置,與已有技術(shù)相比,在很大程度上減小了線程調(diào)度 搜索空間。
在傳統(tǒng)的線程調(diào)度方法中,由于運(yùn)行自適應(yīng)技術(shù)需要花費(fèi)大量的時(shí) 間,所以使得自適應(yīng)技術(shù)不太適合于用在線程調(diào)度領(lǐng)域中。然而,由于根 據(jù)本發(fā)明線程調(diào)度搜索空間得到了大幅度的減小,所以在此可以將自適應(yīng) 線程調(diào)度技術(shù)用來(lái)查找線程和核之間的優(yōu)化的綁定方案。
為此,為了能夠更好地應(yīng)用以上結(jié)合圖2和3所描述的方法和裝置, 以便在多核系統(tǒng)上更好地進(jìn)行線程調(diào)度,##本發(fā)明的其他實(shí)施例,還提 供了一種自適應(yīng)線程調(diào)度方法及系統(tǒng),它們能夠利用圖2所述的方法和/ 或圖3所示的裝置,才艮據(jù)多線程應(yīng)用和多核系統(tǒng)的硬件體系結(jié)構(gòu),自動(dòng)地 確定優(yōu)選的綁定方案。
下面首先結(jié)合圖4來(lái)描述根據(jù)本發(fā)明其他實(shí)施例的自適應(yīng)線程調(diào)度方 法的處理過(guò)程。圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的、利用圖2所示的方 法200進(jìn)行自適應(yīng)線程調(diào)度的處理過(guò)程400的流程圖。
如圖4所示,為了有針對(duì)性地解決多線程應(yīng)用在不同的多核硬件平臺(tái) 上的性能問(wèn)題,在步驟S410,獲得J^行的多線程應(yīng)用和要在其上進(jìn)行
件平臺(tái)稱為線程調(diào)度優(yōu)化目標(biāo))的有關(guān)信息,例如,有多少個(gè)軟件線程, 以及有多少個(gè)核和硬件平臺(tái)的存儲(chǔ)模型等體系拓樸結(jié)構(gòu)信息等。
然后,在步驟S420,獲得測(cè)量條件和性能標(biāo)準(zhǔn),以便明確什么樣的 綁定選##^人為是優(yōu)選的綁定方案。所述測(cè)量條件和性能標(biāo)準(zhǔn)可以是用戶 預(yù)先設(shè)置的并存儲(chǔ)在一個(gè)測(cè)量條件和性能標(biāo)準(zhǔn)儲(chǔ)存庫(kù)中.
例如,服務(wù)器總是在每秒處理500條消息的工作負(fù)荷下運(yùn)行,因此可 以將測(cè)量條件定義為這個(gè)工作負(fù)荷;或者,對(duì)于數(shù)學(xué)庫(kù)而言,可以將輸入 數(shù)據(jù)大小定義為測(cè)量M。而對(duì)于性能標(biāo)準(zhǔn)來(lái)說(shuō),例如,可以定義在一 定的工作負(fù)荷下,CPU利用率越低,服務(wù)器的性能越好;而對(duì)于數(shù)學(xué)庫(kù) 來(lái)說(shuō),使用的時(shí)間越少,性能越好。接下來(lái),在步驟S430,根據(jù)多線程應(yīng)用和硬件平臺(tái)的體系拓樸結(jié)構(gòu), 計(jì)算可用的線程調(diào)度搜索空間。
正如前面所提及的那樣,在傳統(tǒng)的方法中,在有M個(gè)軟件線程和N 個(gè)核的情況下,總的線程調(diào)度搜索空間大小為NM (假設(shè)一個(gè)線程只能被 調(diào)度到一個(gè)核上),但是這個(gè)搜索空間太大了。為此,在這一步驟中,執(zhí) 行如圖2所示的處理過(guò)程,以便基于硬件體系結(jié)構(gòu)從所有可能的綁定選擇 中除去多余的那些綁定選擇,從而得到減小了的可用搜索空間.
然后,如圖4所示,在步驟S440,在步驟S430中所得到的可用搜索 空間中模擬運(yùn)行所述多線程應(yīng)用,并查找優(yōu)選的綁定方案。
具體來(lái)說(shuō),在如上所述減小了搜索空間之后,將其中的每種綁定選擇 作為輸入,在多核硬件平臺(tái)上模擬運(yùn)行多線程應(yīng)用,并根據(jù)步驟S420中 所獲得的測(cè)量條件和性能標(biāo)準(zhǔn),記錄性能監(jiān)視輸出結(jié)果,然后從所有可用 綁定選擇中搜索并選擇出優(yōu)選的那個(gè)綁定選擇,作為優(yōu)選綁定方案。
在這個(gè)步驟中,可以使用任何已有的搜索算法,例如,模擬退火 (Simulated Annealing)、神經(jīng)網(wǎng)絡(luò)(Neuron Network),最速下降方法 (Steepest Decent Method)、動(dòng)態(tài)編程(Dynamic Programming)、遺傳 算法(GeneticAlgorithm)等,來(lái)加速搜索過(guò)程。
在找到了優(yōu)選的綁定方案后,在步驟S450,根據(jù)所述優(yōu)選的綁定方 案產(chǎn)生調(diào)度執(zhí)行計(jì)劃,并在真實(shí)環(huán)境下實(shí)際應(yīng)用該調(diào)度執(zhí)行計(jì)劃,這個(gè)步 驟的處理也是相對(duì)簡(jiǎn)單的,把所述優(yōu)選綁定方案作為輸入,并按照該綁定 方案中定義的那樣將線程調(diào)度到相應(yīng)的那些核即可。在實(shí)際的實(shí)現(xiàn)過(guò)程 中,這可以通過(guò)下述措施來(lái)實(shí)現(xiàn)修改多線程應(yīng)用的源代碼,由多線程應(yīng) 用的運(yùn)行時(shí)環(huán)境進(jìn)行調(diào)度,或者修改操作系統(tǒng)的調(diào)度程序。
在根據(jù)本發(fā)明實(shí)施例的這種自適應(yīng)線程調(diào)度方法中,由于基于多核硬 件平臺(tái)的嚴(yán)格的體系拓樸結(jié)構(gòu)定義,在所有可能的綁定選擇中僅僅保留所 有彼此相同或等效的綁定選擇其中之一,而除去其余彼此相同或等效的綁 定選擇(即,多余的那些綁定選擇),以大大減小搜索空間,因此,可以 確保減小后的搜索空間仍然包含軟件線程到硬件核的映射關(guān)系的所有可 變性,也就是說(shuō),減小后的搜索空間并不會(huì)影響到自適應(yīng)線程調(diào)度技術(shù)的 輸出。
而且,在根據(jù)本發(fā)明實(shí)施例的這種自適應(yīng)線程調(diào)度方法中,先前所描 述的根據(jù)本發(fā)明實(shí)施例的減小搜索空間的方法可以在已有的優(yōu)化的搜索
20方法之前使用,因此并不會(huì)與優(yōu)化的搜索方法相沖突,而且可以使用優(yōu)化
的搜索方法來(lái)加速搜索n從而減少自適應(yīng)處理的時(shí)間,
以上結(jié)合圖4所描述的自適應(yīng)線程調(diào)度方法可以以離線的方式或者以 在線的方式執(zhí)行。例如,在離線的方式下,通過(guò)在圖4所示的步驟S410 中選擇作為線程調(diào)度優(yōu)化目標(biāo)的多線程應(yīng)用和多核系統(tǒng)硬件平臺(tái),可以自 動(dòng)地獲知軟件線程和硬件平臺(tái)的有關(guān)信息,離線地在減小了的可用搜索空 間中進(jìn)行搜索,選#^優(yōu)選綁定方案,然后將其實(shí)際應(yīng)用到真實(shí)的環(huán)境中; 而在在線的方式下,對(duì)于實(shí)際的多線程應(yīng)用和多核系統(tǒng)硬件平臺(tái),在線地 在所計(jì)算的可用搜索空間中執(zhí)行搜索,同時(shí)在硬件平臺(tái)上執(zhí)行性能采樣 (profile),并選擇當(dāng)前優(yōu)選的綁定方案予以應(yīng)用。
顯然,可以根據(jù)實(shí)際需要對(duì)圖4所示的自適應(yīng)線程調(diào)度方法的處理流 程進(jìn)行適當(dāng)?shù)母?。例如,用戶可以在圖4所示的步驟S420中定義測(cè)量 條件和性能標(biāo)準(zhǔn),或者也可以根據(jù)需要對(duì)預(yù)先定義的測(cè)量條件和性能標(biāo)準(zhǔn) 進(jìn)行修改。而且,也可以對(duì)圖4所示的處理流程的執(zhí)行順序進(jìn)行調(diào)整,例 如,步驟S420的處理在采用系統(tǒng)默認(rèn)的測(cè)量條件和性能標(biāo)準(zhǔn)的情況下不 是必需的,而且也可以根據(jù)情況在步驟S430的處理W執(zhí)行。當(dāng)然,可 能還存在其他的更改方式,在此就不——列舉了。
圖5示出了根據(jù)本發(fā)明另 一個(gè)實(shí)施例的自適應(yīng)線程調(diào)度系統(tǒng)500的方 框圖,其中在該自適應(yīng)線程調(diào)度系統(tǒng)500中可以執(zhí)行以上結(jié)合圖4所描述 的自適應(yīng)線程調(diào)度方法,并且包括如圖3所示的搜索空間計(jì)算裝置300.
如圖5所示,自適應(yīng)線程調(diào)度系統(tǒng)500包括作為優(yōu)化目標(biāo)對(duì)象的多 線程應(yīng)用510和多核硬件平臺(tái)520,如圖3所示的用于減小線程調(diào)度搜索 空間的搜索空間計(jì)算裝置300,模擬運(yùn)行控制器530,性能監(jiān)視器540和 測(cè)量M&性能標(biāo)準(zhǔn)儲(chǔ)存庫(kù)550。
其中,搜索空間計(jì)算裝置300根據(jù)多線程應(yīng)用510和多核硬件平臺(tái)520 的有關(guān)信息,計(jì)算出可用的線程調(diào)度搜索空間,由模擬運(yùn)行控制器530 控制在硬件平臺(tái)520上模擬運(yùn)行所述多線程應(yīng)用510,同時(shí)由性能監(jiān)視器 540根據(jù)測(cè)量條件&性能標(biāo)準(zhǔn)儲(chǔ)存庫(kù)550中存儲(chǔ)的測(cè)量條件和性能標(biāo)準(zhǔn), 對(duì)硬件平臺(tái)520的性能進(jìn)行監(jiān)視,并將性能監(jiān)視結(jié)果傳送給模擬運(yùn)行控制 器530,由模擬運(yùn)行控制器530基于性能監(jiān)視結(jié)果,從所述可用搜索空間 中查找優(yōu)選的綁定方案,據(jù)此產(chǎn)生調(diào)度執(zhí)行計(jì)劃并實(shí)際應(yīng)用該調(diào)度執(zhí)行計(jì) 劃。通過(guò)閱讀以上結(jié)合圖4所描述的處理過(guò)程400,自適應(yīng)線程調(diào)度系統(tǒng) 500中的各個(gè)裝置如何實(shí)現(xiàn)其各自的功能就是很顯然的,因此,為了簡(jiǎn)明 起見(jiàn)就不在此贅述了。
為了更好地說(shuō)明根據(jù)本發(fā)明實(shí)施例的自適應(yīng)線程調(diào)度方法和/或系統(tǒng) 在實(shí)際應(yīng)用中帶來(lái)的優(yōu)點(diǎn),發(fā)明人對(duì)該自適應(yīng)線程調(diào)度方法和/或系統(tǒng)進(jìn) 行了如下測(cè)試。
測(cè)試實(shí)例l:科學(xué)計(jì)算
以執(zhí)行矩陣加矩陣C=矩陣A+矩陣B為例,^Ri殳測(cè)試矩陣大 小為8192*16,有四個(gè)線程,而且測(cè)試用的硬件平臺(tái)為四核系統(tǒng)(其中具 有兩個(gè)處理器,且每個(gè)處理器有兩個(gè)核)。
以實(shí)際計(jì)算完成的時(shí)間為性能評(píng)價(jià)標(biāo)準(zhǔn),在利用傳統(tǒng)的操作系統(tǒng)
(OS)調(diào)度方法時(shí),耗時(shí)396749.9 us,而在利用根據(jù)本發(fā)明實(shí)施例的自 適應(yīng)線程調(diào)度方法對(duì)線程調(diào)度進(jìn)行優(yōu)化后,耗時(shí)為326207.3 us,由此可 以看出,在利用本發(fā)明進(jìn)行優(yōu)化后性能提高了 21.6%。
測(cè)試實(shí)例2: ^^L^協(xié)議(SIP)應(yīng)用服務(wù)器測(cè)試
圖6示出了這種測(cè)試的場(chǎng)景,其中在SIP客戶端610發(fā)出請(qǐng)求后,等 待SIP服務(wù)器620的響應(yīng)。在SIP服務(wù)器620端設(shè)有偵聽(tīng)線程,它在收到 請(qǐng)求后將請(qǐng)求i^請(qǐng)求隊(duì)列,等待SIP堆棧派發(fā),ii^派發(fā)隊(duì)列后, 線程池派發(fā)器,通過(guò)UDP發(fā)送器請(qǐng)求對(duì)應(yīng)的響應(yīng)。
為了便于測(cè)試,選擇簡(jiǎn)單Invite作為測(cè)試場(chǎng)景,假設(shè)固定呑吐率為 1000,啟動(dòng)4個(gè)主要的軟件線程(包括偵聽(tīng)線程、SIP堆棧派發(fā)、線程池 派發(fā)器和UDP發(fā)送器),測(cè)試平臺(tái)為四核系統(tǒng)(其中有兩個(gè)處理器,且每 個(gè)處理器有兩個(gè)核)。將性能評(píng)判標(biāo)準(zhǔn)設(shè)定為較少的CPU占用率和上下文 切換次數(shù),經(jīng)試驗(yàn)后得到的實(shí)驗(yàn)數(shù)據(jù)如下
調(diào)度方法平均的CPU負(fù)載平均的上下文切換次lt/秒
OS調(diào)度方法14.7%23538
一一映射16.0%27719
自適應(yīng)線程調(diào)度12.3%21456
從以上的測(cè)試數(shù)據(jù)中不難看出,根據(jù)本發(fā)明實(shí)施例的自適應(yīng)線程調(diào)度
方法在CPU占用率和上下文切換率上都要優(yōu)于傳統(tǒng)的操作系統(tǒng)(OS )調(diào)
度方法和—映射的調(diào)度方法。
22通過(guò)利用根據(jù)本發(fā)明實(shí)施例的上述自適應(yīng)線程調(diào)度方法和/或系統(tǒng),可 以自動(dòng)地確定優(yōu)選的綁定方案(即,軟件線程與硬件核的優(yōu)選的映射方 案),而這在傳統(tǒng)的線程調(diào)度方法中是很難實(shí)現(xiàn)的。而且,不管有多少不 同的工作負(fù)荷或者多么復(fù)雜的硬件平臺(tái),都可以找到或確定優(yōu)選的綁定方 案,而在傳統(tǒng)的線程調(diào)度方法中在不同的平臺(tái)中往往需要設(shè)置不同的算法 和/或參數(shù)。此外,由于其中利用了根據(jù)本發(fā)明的計(jì)算可用搜索空間的方 法和/或裝置,使得線程調(diào)度搜索空間被大大地減小了,而且可以使用現(xiàn) 有的任何優(yōu)選的搜索方法,所以可以更快地找到優(yōu)選的綁定方案。
此外,顯然,根據(jù)本發(fā)明的上述方法的各個(gè)操作過(guò)程也可以以存儲(chǔ)在 各種機(jī)器可讀的存儲(chǔ)介質(zhì)中的計(jì)算機(jī)可執(zhí)行程序的方式實(shí)現(xiàn)。
而且,本發(fā)明的目的也可以通過(guò)下述方式實(shí)現(xiàn)將存儲(chǔ)有上述可執(zhí)行 程序代碼的存儲(chǔ)介質(zhì)直接或者間接地提供給系統(tǒng)或設(shè)備,并且該系統(tǒng)或設(shè) 備中的計(jì)算機(jī)或者中央處理單元(CPU)讀出并執(zhí)行上述程序代碼。
此時(shí),只要該系統(tǒng)或者設(shè)備具有執(zhí)#^序的功能,則本發(fā)明的實(shí)施方 式不局限于程序,并且該程序也可以;1任意的形式,例如,目標(biāo)程序、解 釋器執(zhí)行的程序或者提供給操作系統(tǒng)的腳4^序等。
上述這些機(jī)器可讀存儲(chǔ)介質(zhì)包括但不限于各種存儲(chǔ)器和存儲(chǔ)單元, 半導(dǎo)體設(shè)備,磁盤單元例如光、磁和磁光盤,以及其它適于存儲(chǔ)信息的介 質(zhì)等。
另夕卜通過(guò)連接到因特網(wǎng)上的相應(yīng)網(wǎng)站,并且將依據(jù)本發(fā)明的計(jì)算機(jī) 程序代碼下載和安裝到計(jì)算機(jī)中然后執(zhí)行該程序,也可以實(shí)現(xiàn)本發(fā)明。
最后,還需要說(shuō)明的是,術(shù)語(yǔ)"包括"、"包含"或者其任何其他變體 意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品 或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者 是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。此外,在沒(méi)有 更多限制的情況下,由語(yǔ)句"包括一個(gè)……"限定的要素,并不排除在包 括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上雖然結(jié)合附圖詳細(xì)描述了本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)明白,上面所 描述的實(shí)施方式只是用于說(shuō)明本發(fā)明,而并不構(gòu)成對(duì)本發(fā)明的限制。對(duì)于本 領(lǐng)域的技術(shù)人員來(lái)說(shuō),可以對(duì)上述實(shí)施方式作出各種修改和變更而沒(méi)有背離 本發(fā)明的實(shí)質(zhì)和范圍。因此,本發(fā)明的范圍僅由所附的權(quán)利要求及其等效含 義來(lái)限定。
權(quán)利要求
1.一種用于計(jì)算可供在多核系統(tǒng)上對(duì)多線程應(yīng)用進(jìn)行線程調(diào)度時(shí)使用的線程調(diào)度搜索空間的方法,包括以下步驟獲取有關(guān)多線程應(yīng)用和多核系統(tǒng)的硬件結(jié)構(gòu)的信息;通過(guò)參考所述有關(guān)多線程應(yīng)用和多核系統(tǒng)的硬件結(jié)構(gòu)的信息,計(jì)算所有可能的、包含多個(gè)線程與多個(gè)核之間的映射關(guān)系的綁定選擇;基于多核系統(tǒng)的硬件結(jié)構(gòu),從所有可能的綁定選擇中找出所有彼此相同或等效的綁定選擇;以及在所有可能的綁定選擇中,對(duì)于所有彼此相同或等效的綁定選擇,保留其中之一,而除去其余彼此相同或等效的綁定選擇,以得到可供線程調(diào)度時(shí)使用的搜索空間。
2. 根據(jù)權(quán)利要求1所述的方法,其中,所述有關(guān)信息包括線程的 數(shù)目,各線程間的通信方式,以及有關(guān)多核系統(tǒng)的體系拓樸結(jié)構(gòu)的、包括 核的數(shù)目和各個(gè)核之間的關(guān)系在內(nèi)的信息。
3. 根據(jù)權(quán)利要求2所述的方法,其中,通il&于多核系統(tǒng)的體系拓 樸結(jié)構(gòu),比較兩個(gè)綁定選擇中包含的每個(gè)線程的線程與核之間的映射關(guān) 系,來(lái)判定所述兩個(gè)綁定選擇是否相同或等效。
4. 根據(jù)權(quán)利要求3所述的方法,其中,在綁定選擇中包含由一個(gè)線 程與若干個(gè)核的組合、即核子集的復(fù)雜映射關(guān)系構(gòu)成的組合項(xiàng)的情況下,通過(guò)確定兩個(gè)組合項(xiàng)的標(biāo)識(shí)因子IF是否相同,來(lái)判定兩個(gè)組合項(xiàng)是否等 效,其中標(biāo)識(shí)因子IF利用下述等式計(jì)算得到=五x [crr x cr /M] x五7其中,CV是綁定選擇的組合矢量,其為表示在該綁定選擇中各個(gè)核 是否被分配有線程的布爾矢量,£ = (1,1,...,1), " "表示點(diǎn)積,而IM為多核系統(tǒng)的關(guān)聯(lián)矩陣,所述關(guān)聯(lián)矩陣IM中的第i行第j列的元素Xy表示所述多核系統(tǒng)中第i個(gè)核和第j個(gè)核之間的關(guān)系,當(dāng)兩個(gè)綁定選擇中包含的非組合項(xiàng)彼此相同且組合項(xiàng)彼此等效時(shí),兩 個(gè)綁定選擇是等效的。
5. 根據(jù)權(quán)利要求4所述的方法,其中,對(duì)所述多個(gè)核中各個(gè)核之間 的關(guān)系的定義是具有完備性的。
6. 根據(jù)權(quán)利要求1至5中任何一項(xiàng)所述的方法,其中,所述多個(gè)線 程是彼此相同的線程。
7. —種用于計(jì)算可供在多核系統(tǒng)上對(duì)多線程應(yīng)用進(jìn)行線程調(diào)度時(shí)使 用的線程調(diào)度搜索空間的裝置,包括信息獲取器,被配置用于獲取有關(guān)多線程應(yīng)用以及多核系統(tǒng)的硬件結(jié) 構(gòu)的信息;綁定選擇計(jì)算器,被配置用于通過(guò)參考所述有關(guān)多線程應(yīng)用以及多核 系統(tǒng)的硬件結(jié)構(gòu)的信息,計(jì)算所有可能的、包含多個(gè)線程與多個(gè)核之間的 映射關(guān)系的綁定選擇;綁定選擇檢測(cè)器,被配置用于基于多核系統(tǒng)的硬件結(jié)構(gòu),從所有可能 的綁定選擇中找出所有彼此相同或等效的綁定選擇,并保留所有彼此相同 或等效的綁定選擇其中之一,而除去其余彼此相同或等效的綁定選擇;以 及綁定選擇存儲(chǔ)器,用于存儲(chǔ)可供線程調(diào)度時(shí)使用的線程調(diào)度搜索空等效的綁定選擇其中之一而除去其余彼此相同或等效的綁定選擇而得到 的。
8. 根據(jù)權(quán)利要求7所述的裝置,其中,所述信息獲取器獲取的所述 有關(guān)多線程應(yīng)用以及多核系統(tǒng)的硬件結(jié)構(gòu)的信息包括線程的數(shù)目,各線 程間的通信方式,以及有關(guān)多核系統(tǒng)的體系拓樸結(jié)構(gòu)的、包括核數(shù)目和各 個(gè)核之間的關(guān)系在內(nèi)的信息。
9. 根據(jù)權(quán)利要求8所述的裝置,其中,所述綁定選擇檢測(cè)器通it^ 于多核系統(tǒng)的體系拓樸結(jié)構(gòu),比較兩個(gè)綁定選擇中包含的每個(gè)線程的線程 與核之間的映射關(guān)系,來(lái)判定所述兩個(gè)綁定選擇是否相同或等效。
10. 根據(jù)權(quán)利要求9所述的裝置,其中,在綁定選擇中包含由一個(gè)線 程與若干個(gè)核的組合、即核子集的復(fù)雜映射關(guān)系構(gòu)成的組合項(xiàng)的情況下, 所述等效綁定選擇檢測(cè)器通過(guò)確定兩個(gè)組合項(xiàng)的標(biāo)識(shí)因子IF是否相同, 來(lái)判定兩個(gè)組合項(xiàng)是否等效,其中標(biāo)識(shí)因子IF利用下述等式計(jì)算得到<formula>formula see original document page 3</formula>其中,cv是綁定選擇的組合矢量,其為表示在該綁定選擇中各個(gè)核是否被分配有線程的布爾矢量,£ = (l,l,...,l), " "表示點(diǎn)積,而IM為多核系統(tǒng)的關(guān)聯(lián)矩陣,所述關(guān)聯(lián)矩陣IM中的第i行第j列的元素Xy表示所述多核系統(tǒng)中第i個(gè)核和第j個(gè)核之間的關(guān)系,當(dāng)兩個(gè)綁定選擇中包含的非組合項(xiàng)彼此相同且組合項(xiàng)彼此等效時(shí),兩 個(gè)綁定選擇是等效的。
11. 根據(jù)權(quán)利要求10所述的裝置,其中,對(duì)所述多個(gè)核中各個(gè)核之間的關(guān)系的定義是具有完備性的。
12. 根據(jù)權(quán)利要求7至11中任何一項(xiàng)所述的裝置,其中,所述多個(gè) 線程是彼此相同的線程。
13. —種使用根據(jù)權(quán)利要求1至6中任何一項(xiàng)所述的方法進(jìn)行自適應(yīng) 線程調(diào)度的方法,包括以下步驟根據(jù)作為線程調(diào)度優(yōu)化目標(biāo)的多線程應(yīng)用和多核硬件平臺(tái)的有關(guān)信 息,利用根據(jù)權(quán)利要求1 - 6中任何一項(xiàng)所述的方法計(jì)算可用的線程調(diào)度 搜索空間;在所述多核硬件平臺(tái)上在所述線程調(diào)度搜索空間中模擬運(yùn)行所述多 線程應(yīng)用,并且基于模擬運(yùn)行所述多線程應(yīng)用時(shí)所述多核硬件平臺(tái)的性能 監(jiān)視結(jié)果,從所述線程調(diào)度搜索空間中搜索并確定優(yōu)選的綁定選擇,作為 優(yōu)選綁定方案;以及才艮據(jù)所確定的優(yōu)選綁定方案產(chǎn)生調(diào)度執(zhí)行計(jì)劃,并實(shí)際應(yīng)用該調(diào)度執(zhí) 行計(jì)劃。
14. 根據(jù)權(quán)利要求13所述的自適應(yīng)線程調(diào)度方法,其中,所述性能 監(jiān)視結(jié)果是根據(jù)預(yù)先定義的測(cè)量條件和性能標(biāo)準(zhǔn)對(duì)所述多核硬件平臺(tái)進(jìn) 行性能監(jiān)視而得到的。
15. 根據(jù)權(quán)利要求13或14所述的自適應(yīng)線程調(diào)度方法,其中,所述 自適應(yīng)線程調(diào)度方法以離線方式或在線方式執(zhí)行。
16. 根據(jù)權(quán)利要求13或14所述的自適應(yīng)線程調(diào)度方法,其中,使用 下述搜索方法之一從所述線程調(diào)度搜索空間中搜索并確定優(yōu)選的綁定選 擇模擬退火,神經(jīng)網(wǎng)絡(luò),最速下降方法,動(dòng)態(tài)編程,和遺傳算法。
17. —種自適應(yīng)線程調(diào)度系統(tǒng),包括 作為優(yōu)化目標(biāo)對(duì)象的多線程應(yīng)用和多核硬件平臺(tái); 根據(jù)權(quán)利要求7至12中任何一項(xiàng)所述的裝置,被配置用于根據(jù)多線程應(yīng)用和多核硬件平臺(tái)的有關(guān)信息計(jì)算可用的線程調(diào)度搜索空間;模擬運(yùn)行控制器,被配置用于在所述多核硬件平臺(tái)上在所述線程調(diào)度 搜索空間中模擬運(yùn)行所述多線程應(yīng)用;以及性能監(jiān)視器,被配置用于記M擬運(yùn)行所述多線程應(yīng)用時(shí)所述多核硬 件平臺(tái)的性能監(jiān)視結(jié)果,其中,所述模擬運(yùn)行控制器基于來(lái)自所述性能監(jiān)視器的性能監(jiān)視結(jié) 果,從所述線程調(diào)度搜索空間中搜索并確定優(yōu)選的綁定選擇,作為優(yōu)選綁 定方案,并才艮據(jù)所確定的優(yōu)選綁定方案產(chǎn)生調(diào)度執(zhí)行計(jì)劃,并實(shí)際應(yīng)用該 調(diào)度執(zhí)行計(jì)劃。
18. 根據(jù)權(quán)利要求17所述的自適應(yīng)線程調(diào)度系統(tǒng),進(jìn)一步包括測(cè) 量條件和性能標(biāo)準(zhǔn)儲(chǔ)存庫(kù),用于存儲(chǔ)預(yù)先定義的測(cè)量4Ht和性能標(biāo)準(zhǔn),其中,所述性能監(jiān)視器通過(guò)才艮據(jù)所述預(yù)先定義的測(cè)量條件和性能標(biāo)準(zhǔn) 對(duì)所述多核硬件平臺(tái)進(jìn)行性能監(jiān)視,而得到所述性能監(jiān)視結(jié)果。
19. 根據(jù)權(quán)利要求17或18所述的自適應(yīng)線程調(diào)度系統(tǒng),其中,所述 模擬運(yùn)行控制器使用下述搜索方法之一從所述線程調(diào)度搜索空間中搜索 并確定優(yōu)選的綁定選擇模擬退火,神經(jīng)網(wǎng)絡(luò),最速下降方法,動(dòng)態(tài)編程, 和遺傳算法。
全文摘要
本發(fā)明提供了用于計(jì)算可供在多核系統(tǒng)上對(duì)多線程應(yīng)用進(jìn)行線程調(diào)度時(shí)使用的線程調(diào)度搜索空間的方法和裝置,以及利用該方法和/或裝置進(jìn)行自適應(yīng)線程調(diào)度的方法和系統(tǒng)。所述計(jì)算搜索空間的方法包括獲取有關(guān)多線程應(yīng)用和多核系統(tǒng)的硬件結(jié)構(gòu)的信息;通過(guò)參考所述有關(guān)信息,計(jì)算所有可能的、包含多個(gè)線程與多個(gè)核之間的映射關(guān)系的綁定選擇;基于多核系統(tǒng)的硬件結(jié)構(gòu),從所有可能的綁定選擇中找出所有彼此相同或等效的綁定選擇;以及在所有可能的綁定選擇中,對(duì)于所有彼此相同或等效的綁定選擇,保留其中之一,而除去其余彼此相同或等效的綁定選擇,以得到可供線程調(diào)度時(shí)使用的搜索空間。
文檔編號(hào)G06F9/48GK101634953SQ20081013325
公開(kāi)日2010年1月27日 申請(qǐng)日期2008年7月22日 優(yōu)先權(quán)日2008年7月22日
發(fā)明者嚴(yán) 李, 林海波, 王海川, 凱 鄭, 高志國(guó) 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司