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

一種虛擬化環(huán)境下面向任務并行編程模型的優(yōu)化方法

文檔序號:8445412閱讀:493來源:國知局
一種虛擬化環(huán)境下面向任務并行編程模型的優(yōu)化方法
【技術領域】
[0001] 本發(fā)明屬于虛擬化與并行程序優(yōu)化技術領域,更具體地,涉及一種虛擬化環(huán)境下 面向任務并行編程模型的優(yōu)化方法。
【背景技術】
[0002] 隨著處理器內(nèi)核數(shù)量的增加,計算機編程模式由傳統(tǒng)串行編程模式向新型并行編 程模式轉變,以發(fā)揮出于內(nèi)核數(shù)量的增長一致的實際效果;近年來,任務并行編程模型被廣 泛用于開發(fā)并行應用,旨在簡化并行編程和提高多核利用率。
[0003] 任務并行編程模型的核心技術是任務竊取調(diào)度,即每個處理器核對應一個線程, 每個線程維護一個雙端隊列,該隊列的尾部用于壓入準備好的任務或彈出已經(jīng)執(zhí)行完的任 務;當一個線程的雙端隊列為空時,該線程會轉化為小偷線程,然后隨機選擇一個線程為受 害線程,并試圖從該受害線程的雙端隊列頭部竊取任務來執(zhí)行。若竊取失敗,則隨機選擇另 一個線程來竊取,如此反復,直到成功竊取到任務或本地隊列非空為止。
[0004] 當前,隨著虛擬化技術的發(fā)展,越來越多的并行應用運行在虛擬機中,并且單臺物 理機通常被多個虛擬機共享。如果任務并行編程模型中的一個小偷線程持續(xù)竊取任務失 敗,執(zhí)行該線程的虛擬CPU會浪費計算資源?,F(xiàn)有的任務并行編程模型,如Cilk++、TBB和 BWS等,在減少小偷線程對計算資源浪費的方面,缺乏針對虛擬化環(huán)境的優(yōu)化。所以,任務并 行編程模型在虛擬化環(huán)境下面臨著性能低下的問題。

【發(fā)明內(nèi)容】

[0005] 針對現(xiàn)有技術的以上缺陷或改進需求,本發(fā)明提供了一種虛擬化環(huán)境下面向任務 并行編程模型的優(yōu)化方法,其目的在于,利用運行小偷線程的虛擬CPU時間片,加速運行有 用線程的虛擬CPU,由此減少運行小偷線程的虛擬CPU對計算資源的浪費,有效降低運行有 用線程的虛擬CPU的調(diào)度延時,從而最大化地將多核資源投入到有效計算中,提升任務并 行編程模型的性能。
[0006] 為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種虛擬化環(huán)境下面向任務并 行編程模型的優(yōu)化方法,具體如下:
[0007] (1)獲取任務并行編程模型中失敗的竊取操作,讀取失敗的竊取操作對應的受害 線程在任務并行編程模型中維護的運行狀態(tài)和雙端隊列信息;
[0008] 其中,雙端隊列是指每個線程維護的一個隊列,該隊列的尾部用于壓入相應線程 準備好的任務或彈出已經(jīng)執(zhí)行完的任務;受害線程是指被小偷線程試圖竊取任務的線程; 小偷線程是指自己的雙端隊列不存在準備好的任務,試圖從其它線程的雙端隊列頭部竊取 任務來執(zhí)行的線程;
[0009] (2)根據(jù)受害線程的運行狀態(tài),判斷受害線程是否為執(zhí)行任務的有用線程,如果 是,進入步驟(3);否則,結束本次優(yōu)化;其中,有用線程是指擁有可執(zhí)行任務的線程;
[0010] ⑶判斷受害線程的雙端隊列是否為空,如果是,進入步驟⑷;否則,結束本次優(yōu) 化;
[0011] ⑷通過自定義的系統(tǒng)功能調(diào)用,將小偷線程的標識符和受害線程的線程標識符, 分別作為系統(tǒng)功能調(diào)用的第一個參數(shù)和第二個參數(shù),發(fā)送給客戶操作系統(tǒng)的內(nèi)核層;
[0012] (5)客戶操作系統(tǒng)的內(nèi)核層,根據(jù)小偷線程的標識符和受害線程的標識符,查找內(nèi) 核中代表小偷線程和受害線程的數(shù)據(jù)結構,并從中獲取受害線程在內(nèi)核層的運行狀態(tài),以 及小偷線程和受害線程所在虛擬CPU的標識符;
[0013] (6)根據(jù)受害線程在內(nèi)核層的運行狀態(tài),判斷受害線程是否已被客戶操作系統(tǒng)搶 占,如果是,結束本次優(yōu)化;否則,進入步驟(7);
[0014] (7)將運行小偷線程的虛擬CPU角色定義為加速發(fā)起者,運行受害線程的虛擬CPU 角色定義為被加速候選者,并通過自定義的超級調(diào)用,將加速發(fā)起者的虛擬CPU標識符和 被加速候選者的虛擬CPU標識符,分別作為超級調(diào)用的第一個參數(shù)和第二個參數(shù),發(fā)送給 虛擬機監(jiān)控器;
[0015] (8)虛擬機監(jiān)控器接收來自客戶虛擬機的虛擬CPU標識符,查找虛擬機監(jiān)控器中 代表加速發(fā)起者和被加速候選者的虛擬CPU數(shù)據(jù)結構,并從中讀取它們的運行狀態(tài)和所在 物理CPU的信息;
[0016] (9)根據(jù)加速發(fā)起者和被加速候選者所在物理CPU的信息以及運行狀態(tài),判斷是 否執(zhí)行加速,如果是,進入步驟(10);否則,結束本次優(yōu)化;本步驟中,決定是否執(zhí)行加速的 過程具體如下:
[0017] (9-1)根據(jù)加速發(fā)起者和被加速候選者所在物理CPU的信息,判斷它們是否屬于 相同NUMA節(jié)點,如果是,進入步驟(9-2);否則,決定不執(zhí)行加速;
[0018] 其中,NUM節(jié)點是指NUM系統(tǒng)中幾個CPU通過內(nèi)存總線與一塊內(nèi)存相連構成的 一個組;因為一個NUM系統(tǒng)擁有多條內(nèi)存總線,所以被分為若干個NUM節(jié)點,并且處于相 同NUM節(jié)點的CPU訪問本地內(nèi)存的速度,遠快于訪問其它NUM節(jié)點的內(nèi)存;
[0019] (9-2)根據(jù)被加速候選者的運行狀態(tài),判斷被加速候選者是否已被虛擬機監(jiān)控器 搶占,如果是,進入步驟(9-3);否則,決定不執(zhí)行加速;
[0020] (9-3)根據(jù)加速發(fā)起者的運行狀態(tài),計算它在當前調(diào)度的剩余時間片,判斷剩余時 間片的長度是否大于零,如果是,決定執(zhí)行加速;否則,決定不執(zhí)行加速;
[0021] (10)利用加速發(fā)起者的剩余時間片,加速被加速候選者的執(zhí)行;本步驟具體包括 以下子步驟:
[0022] (10-1)暫停執(zhí)行加速發(fā)起者;
[0023] (10-2)保留被加速候選者在當前物理CPU運行隊列中的位置,并將被加速候選者 迀移到加速發(fā)起者所在的物理CPU;
[0024] (10-3)調(diào)度被加速候選者,且調(diào)度時間片等于加速發(fā)起者的剩余時間片;
[0025] (10-4)當被加速候選者被虛擬機監(jiān)控器搶占(例如:時間片耗盡或被阻塞)時, 如果被加速候選者還處于可運行狀態(tài),則將它迀移回原本所在的物理CPU運行隊列中的位 置,恢復其原本的調(diào)度路徑;這樣不僅降低了被加速候選者的調(diào)度延時,還使其獲得了額外 的調(diào)度機會,以至于達到被加速的效果;
[0026] (10-5)結束本次加速。
[0027] 總體而言,通過本發(fā)明所構思的以上技術方案與現(xiàn)有技術相比,能夠取得下列有 益效果:
[0028] (1)高效利用計算資源:本發(fā)明提供的優(yōu)化方法彌補了現(xiàn)有任務并行編程模型缺 少針對虛擬化環(huán)境優(yōu)化的不足,不僅能夠減少運行小偷線程的虛擬CPU對計算資源的浪 費,還能有效降低運行有用線程的虛擬CPU的調(diào)度延時,從而最大化地將多核資源投入到 有效計算中;
[0029] (2)透明性:本發(fā)明提供的優(yōu)化方法針對任務并行編程模型的優(yōu)化過程涉及到獲 取任務并行編程模型中失敗的竊取操作,客戶虛擬機和虛擬機監(jiān)控器之間的通信等,這些 過程對用戶來說是完全透明的,用戶不需要參與其中;
[0030] (3)低開銷:本發(fā)明提供的優(yōu)化方法針對任務并行編程模型的優(yōu)化過程涉及到獲 取小偷線程失敗的竊取操作,客戶虛擬機和虛擬機監(jiān)控器之間的通信等,這些過程僅對運 行基于任務并行編程模型的應用的虛擬機進行操作;每次加速執(zhí)行涉及的加速發(fā)起者只是 把原本屬于自己的時間片提供給被加速候選者,并且加速發(fā)起者和被加速候選者來自相同 虛擬機,故不會破壞虛擬機使用計算資源的公平性;因此,采用本發(fā)明提供的優(yōu)化方法不會 對運行其它類型應用的虛擬機產(chǎn)生影響。
【附圖說明】
[0031] 圖1是本發(fā)明的方法所基于的虛擬CPU調(diào)度系統(tǒng)的體系結構圖;
[0032] 圖2是本發(fā)明實施例1的流程圖;
[0033] 圖3是本發(fā)明實施例1步驟(9)的細化流程圖;
[0034] 圖4是本發(fā)明實施例1步驟(10)的細化流程圖;
[0035] 圖5是本發(fā)明實施例1與現(xiàn)有技術在性能上的對比示意圖。
【具體實施方式】
[0036] 為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術特征只要 彼此之間未構成沖突就可以相互組合。
[0037] 本發(fā)明的方法所基于的虛擬CPU調(diào)度系統(tǒng)的體系結構如圖1所示,服務器上有N 臺客戶虛擬機,由虛擬機監(jiān)控器負責管理,本發(fā)明虛擬化環(huán)境下面向任務并行編程模型的 優(yōu)化方法分為前后端兩個部分,兩個部分相互交互共同完成整體操作;前端監(jiān)控部分位于 客戶虛擬機中,負責獲取任務并行編程模型中小偷線程失敗的竊取操作,將運行小偷線程 的虛擬CPU角色定義為加速發(fā)起者,運行有用線程的虛擬CPU角色定義為被加速候選者,并 將它們的標識符以及相關角色信息發(fā)送給虛擬機監(jiān)控器;
[0038] 后端加速部分位于虛擬機監(jiān)控器中,負責根據(jù)加速發(fā)起者和被加速候選者的運行 狀態(tài)和所在物理C
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1