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

虛擬機過度分配環(huán)境下的mpi消息接收方法

文檔序號:6332606閱讀:172來源:國知局
專利名稱:虛擬機過度分配環(huán)境下的mpi消息接收方法
技術領域
本發(fā)明屬于虛擬機環(huán)境下的MPI (Message Passing Interface)通信技術領域, 具體來說就是提出了一種改善MPI并行程序在虛擬機過度分配環(huán)境下的通信性能的方法。
背景技術
自從虛擬化技術復興以后,基于其上的軟件技術逐漸成為一個重要的研究領域。 如今,利用虛擬化技術構建高性能計算應用所需的運行環(huán)境正成為一種流行趨勢。在眾多 的虛擬化技術中,由于Xen允許多臺虛擬處理器同時運行在一臺物理處理器上且系統(tǒng)開銷 較小,因此應用較為廣泛。本方法所采用的實驗平臺就是Xen。同傳統(tǒng)計算模式相比,虛擬化技術的出現(xiàn)帶來了許多好處。比如資源聚合,降低能 耗,處理機器失效,改善程序移植性,還可以協(xié)助調試復雜的程序代碼等。在虛擬化技術中, 為了更好的復用系統(tǒng)底層物理資源,物理處理器封裝并虛擬出多個虛擬處理器,通過調用 虛擬處理器到物理處理器上,Xen創(chuàng)造出一臺物理機上共存多個操作系統(tǒng)的假象。在虛擬機計算模式中,同時存在兩種調度機制在用戶操作系統(tǒng)中,操作系統(tǒng)將應 用進程調度到虛擬處理器上;在虛擬化層中,虛擬機管理器將虛擬處理器調度到物理處理 器上運行。然而,在現(xiàn)今的虛擬機體系結構中,這兩種調度機制是相互獨立執(zhí)行的。這在一 定程度上影響了那些需要通過MPI進行通信的高性能計算負載的性能。這種負面影響在虛 擬機過度分配(即一個物理處理器上分配了不止一個虛擬處理器)的情況下顯得更為突出。通過分析和實驗得知,在過度分配虛擬機環(huán)境下,通過MPI進行通信會帶來一些 性能損耗,這些損耗主要來自于MPI消息接收機制中的“忙等”現(xiàn)象。MPI的消息接收機制 如下對于阻塞式接收操作,MPI庫會不斷的輪詢套接字文件描述符集或者共享內存直到 接收到所需數(shù)據已到達的消息。在這個過程中,該消息接收機制并不會使持有阻塞式消息 接收進程的虛擬處理器進入阻塞狀態(tài),相反它會使該虛擬處理器一直運行直到當前時間片 結束,這樣就產生了所謂的“忙等”現(xiàn)象,即該阻塞式消息接收進程一直等待接收所需數(shù)據 已到達的消息。這種“忙等”現(xiàn)象會浪費較多的處理器資源。為了解決這個問題,MPI使用 了一種基于閾值的高效機制,具體方法為若阻塞式消息接收進程在輪詢預定義的次數(shù)后仍 未接收到所需數(shù)據已到達的消息就得通過在用戶操作系統(tǒng)中進行系統(tǒng)調用以放棄該進程 所占用的處理器資源。根據實驗我們發(fā)現(xiàn),在過量分配虛擬處理器系統(tǒng)下,該機制并不能有 效的改善高性能計算負載下的MPI通信性能。

發(fā)明內容
本發(fā)明的目的是提供一種虛擬機過度分配環(huán)境下的MPI消息接收方法。該方法獨 立于虛擬機層調度機制,通過修改MPI庫中的消息接收機制,使虛擬機環(huán)境下兩種調度機 制即用戶操作系統(tǒng)調度進程到虛擬處理器和虛擬機管理器調度虛擬處理器到物理處理器 相互協(xié)作來提高系統(tǒng)性能。本發(fā)明提供的一種虛擬機過度分配環(huán)境下的MPI消息接收方法包括下述步驟第丄步令t = 0,t為輪詢次數(shù);
第2步阻塞式消息接收進程輪詢套接字文件描述符集或者共享內存,若接收到所需 數(shù)據已到達的消息則轉第10步,否則令t = t + 1,然后進入第3步;
第3步判斷t > T是否成立,T為預定義的最大輪詢次數(shù),如果成立,則令t = 0后轉 第4步,否則轉第2步;
第4步所述接收進程調用schecLyield函數(shù),釋放該進程當前所占有的虛擬處理器資 源,記錄此時時間,記為tl ;
第5步所述虛擬處理器所屬的虛擬機中的用戶操作系統(tǒng)查詢該虛擬處理器的運行隊 列,選擇一個可以調度的進程調度運行;
第6步所述接收進程再次被調度執(zhí)行時,記錄此時時間,記為t2; 第7步判斷t2與tl的差值是否小于預先設定的閾值,如果是,轉第8步,否則轉第2

少;
第8步所述接收進程通過超級調用hypercall通知虛擬機管理器,通知其執(zhí)行虛擬處 理器的重新調度操作;
第9步虛擬機管理器執(zhí)行虛擬處理器的重新調度操作; 第10步所述阻塞接收進程處理接收到的消息。本發(fā)明方法在虛擬機過度分配環(huán)境下利用了用戶操作系統(tǒng)和虛擬化層中兩種不 同的調度機制相互合作提高了 MPI通信性能。本發(fā)明通知適時將用戶操作系統(tǒng)中的調度信 息報告給虛擬機管理器以通知虛擬機管理器重新調度虛擬處理器的方法來減少因MPI庫 消息接收機制產生的“忙等”現(xiàn)象而引起的性能損耗。具體而言,本發(fā)明方法具有以下優(yōu)點 或用途
(1)系統(tǒng)性能的提高
本發(fā)明在Xen虛擬環(huán)境下,與原始的MPI庫相比較,采用credit調度算法時,能夠將性 能提高700倍,采用SEDF調度算法時,性能可以提高4倍。在過度分配環(huán)境下,根據通信模 式以及過度分配嚴重性等不同因素,我們的方案可以將性能提高到不同的程度。(2)為改進虛擬機管理器中的調度算法提供了便捷性和適用性
本發(fā)明不依賴于虛擬機管理器中特定的調度算法,為以后虛擬機管理器中調度算法的 改進提供了便捷性和適用性。


圖1為本發(fā)明方法的流程圖2為本發(fā)明在credit算法下的實例圖; 圖3為本發(fā)明在SEDF算法下的實例圖。
具體實施例方式下面結合附圖和實例對本發(fā)明方法作進一步詳細地說明。如圖1所示,本發(fā)明修改了 MPI庫中的消息接收機制,即阻塞式消息接收進程等待 接收所需數(shù)據已到達的消息時的流程,具體實施步驟如下
(1)令t = o,t為輪詢次數(shù);
4(2)阻塞式消息接收進程輪詢套接字文件描述符集或者共享內存,若接收到所需數(shù)據 已到達的消息則轉步驟(10),否則令t = t+1;
(3)判斷t^ T是否成立,T為預定義的最大輪詢次數(shù),這個預定義次數(shù)是系統(tǒng)自定義 的,比如對于mpich2-l. 2. 1來說是1000次;如果成立,則令t = 0后轉步驟(4),否則轉步 驟⑵;
(4)該阻塞式消息接收進程調用schecLyield函數(shù),釋放該進程當前所占有的虛擬處 理器資源,記錄下此時時間為tl ;
(5)該虛擬處理器所屬的虛擬機中的用戶操作系統(tǒng)查詢該虛擬處理器的運行隊列,選 擇一個可以調度的進程調度運行;
(6)該阻塞式消息接收進程再次被調度執(zhí)行時,記錄下此時時間為t2;
(7)判斷t2_tl<Sched-Gap是否成立,其中Sched-Gap是我們自定義的數(shù)值。如果是 轉步驟(8),否則轉步驟(2);
此處判斷是否通知虛擬機管理器執(zhí)行虛擬處理器的重新調度操作的方法是在用戶操 作系統(tǒng)中記錄下該阻塞式消息接收進程調用schecLyield函數(shù),釋放虛擬處理器資源的時 間與該阻塞式消息接收進程被再度調度執(zhí)行時的時間間隔,并將這個間隔與我們自己定義 的一個閾值(Sched-Gap)相比較。當時間間隔小于Sched-Gap時,判定當前進程隊列中只 有該非阻塞式消息接收進程一個可運行進程,此時需要通知虛擬機管理器執(zhí)行虛擬處理器 的重新調度操作,即該虛擬處理器放棄其所占用的物理處理器資源,由虛擬機管理器選擇 另一個合適的虛擬處理器在剛被釋放的物理處理器上運行。這是因為考慮到多個進程同時 運行在一個虛擬處理器上的情況,在這種情況下,并不適宜重調度整個虛擬處理器,因為當 前調度很有可能正在運行一些極其有用的工作。在過度分配虛擬處理器情況下,被消息接 收阻塞的進程一般是該虛擬處理器上唯一一個運行的進程,這就意味著我們測量的時間間 隔會非常小,這將會觸發(fā)虛擬機管理器的重新調度操作。我們在進行一系列的實驗后,將 Sched-Gap范圍定為10-120毫秒,最佳值取100微秒。該阻塞式消息接收進程通過這種方 法來判斷是否應該通知虛擬機管理器進行重新調度虛擬處理器操作。(8)該阻塞式消息接收進程通過超級調用(hypercall)通知虛擬機管理器執(zhí)行虛 擬處理器的重新調度操作;
(9)虛擬機管理器執(zhí)行虛擬處理器的重新調度操作;
(10)該阻塞接收進程處理接收到的消息 性能評測實例
Xen虛擬機管理器中有兩種可用的調度器credit和SEDF。本發(fā)明采用這兩種調度 器的默認調度參數(shù)。本實例采用版本號為2. 6. 28-rc2的Iinux內核來啟動測試平臺以形 成一個單處理器環(huán)境,該版本的Iinux內核并不支持對稱多處理進程。單處理器環(huán)境與分 配多個虛擬處理器到一個物理處理器的情況類似,因此可以通過測量兩個基準程序進程之 間的MPI通信性能并將其當作未使用虛擬化技術時原始的MPI通信性能(記作原始性能)。測量虛擬機過度分配環(huán)境下的MPI通信性能時,我們考慮以下四種配置 (Dcredit調度器下虛擬機機間通信虛擬化系統(tǒng)用credit調度器,有兩個物理處理
器,兩個非特權虛擬機,每個只有一個虛擬處理器,所有的虛擬處理器都綁定在物理處理器 1上。測量這兩個非特權虛擬機之間的MPI通信性能。
(2) SEDF調度器下虛擬機機間通信除了調度器選擇SEDF外,其余的與上同。(3) credit調度器下虛擬機機內通信虛擬化系統(tǒng)采用credit調度器,有兩個物 理處理器,一個非特權虛擬機有兩個虛擬處理器,所有的虛擬處理器綁定到物理處理器1 上,測量這個非特權虛擬機內部的MPI通信性能。(4) SEDF調度器下虛擬機機內通信除了調度器選擇SEDF外,其余的與(3)同。我們采用BefT來收集我們定義的過度分配配置下的通信性能數(shù)據,并將其與原 始性能相比較。如圖2、圖3所示。在圖2和圖3中,標有前綴“*”的數(shù)據表明是采用本發(fā) 明之后的數(shù)據。從圖2圖3我們可以看出,與以前的數(shù)據相比較,采用了本發(fā)明后的通信性 能提高很大圖2中對于credit調度器,在虛擬機機間通信情況下,性能大約提高300倍, 在虛擬機機內通信情況下,性能大約提高700倍。從圖2可以看出對于SEDF調度器,虛擬 機機間通信情況下性能提高3倍,虛擬機機內通信情況下性能提高約是4倍。由上述分析可以得知,在虛擬機過度分配環(huán)境下,根據通信模式以及過度分配嚴 重性等不同的因素,本發(fā)明可以將通信性能提高不同的程度。另外,本發(fā)明并不依賴于虛擬 機管理器中特定的調度算法,這也給虛擬機管理器中調度算法的改進提供了便捷性和適用 性。本發(fā)明不僅局限于上述具體實施方式
,本領域一般技術人員根據本發(fā)明公開的內 容,可以采用其它多種具體實施方式
實施本發(fā)明,因此,凡是采用本發(fā)明的設計結構和思 路,做一些簡單的變化或更改的設計,都落入本發(fā)明保護的范圍。
權利要求
一種虛擬機過度分配環(huán)境下的MPI消息接收方法,該方法包括下述步驟第1步 令t=0,t為輪詢次數(shù);第2步 阻塞式消息接收進程輪詢套接字文件描述符集或者共享內存,若接收到所需數(shù)據已到達的消息則轉第10步,否則令t=t+1,然后進入第3步;第3步 判斷t≥T是否成立,T為預定義的最大輪詢次數(shù),如果成立,則令t=0后轉第4步,否則轉第2步;第4步 所述接收進程調用sched_yield函數(shù),釋放該進程當前所占有的虛擬處理器資源,記錄此時時間,記為t1;第5步 所述虛擬處理器所屬的虛擬機中的用戶操作系統(tǒng)查詢該虛擬處理器的運行隊列,選擇一個可以調度的進程調度運行;第6步 所述接收進程再次被調度執(zhí)行時,記錄此時時間,記為t2;第7步 判斷t2與t1的差值是否小于預先設定的閾值,如果是,轉第8步,否則轉第2步;第8步 所述阻塞式消息接收進程通過超級調用hypercall通知虛擬機管理器,通知其執(zhí)行虛擬處理器的重新調度操作;第9步 虛擬機管理器執(zhí)行虛擬處理器的重新調度操作;第10步 所述阻塞接收進程處理接收到的消息。
全文摘要
本發(fā)明公開了一種虛擬機過度分配環(huán)境下的MPI消息接收方法,其過程為阻塞接收進程輪詢套接字文件描述符集或者共享內存,該阻塞式消息接收進程調用sched_yield函數(shù),釋放該進程當前所占有的虛擬處理器資源;該虛擬處理器所屬的虛擬機中的用戶操作系統(tǒng)查詢該虛擬處理器的運行隊列,選擇一個可以調度的進程調度運行;該阻塞式消息接收進程再次被調度執(zhí)行時,判斷是否需要通知虛擬機管理器執(zhí)行虛擬處理器的重新調度操作;該阻塞式消息接收進程通過超級調用通知虛擬機管理器執(zhí)行虛擬處理器的重新調度操作;虛擬機管理器執(zhí)行虛擬處理器的重新調度操作,阻塞接收進程處理接收到的消息。本發(fā)明可以減少因MPI庫消息接收機制產生“忙等”現(xiàn)象引起的性能損耗。
文檔編號G06F9/46GK101968749SQ201010290600
公開日2011年2月9日 申請日期2010年9月26日 優(yōu)先權日2010年9月26日
發(fā)明者周文博, 李大江, 王強, 胡侃, 謝雪嬌, 邵志遠, 金海 申請人:華中科技大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
郧西县| 铜山县| 大渡口区| 博野县| 伊通| 旌德县| 宁明县| 贵德县| 武清区| 荆门市| 平定县| 望奎县| 洪泽县| 明溪县| 洛隆县| 常德市| 顺平县| 建平县| 南召县| 乌恰县| 龙口市| 岳普湖县| 凉城县| 石楼县| 商都县| 乐业县| 阳江市| 合江县| 德安县| 信宜市| 栖霞市| 黑山县| 库伦旗| 长沙县| 扎赉特旗| 璧山县| 岑巩县| 南岸区| 冷水江市| 孝感市| 阳原县|