[發(fā)明專利]一種支持多線程調(diào)用MPI函數(shù)的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201210518573.4 | 申請(qǐng)日: | 2012-12-05 |
| 公開(公告)號(hào): | CN103019844A | 公開(公告)日: | 2013-04-03 |
| 發(fā)明(設(shè)計(jì))人: | 何銳邦;唐會(huì)軍 | 申請(qǐng)(專利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號(hào): | G06F9/48 | 分類號(hào): | G06F9/48 |
| 代理公司: | 北京潤澤恒知識(shí)產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 蘇培華 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 支持 多線程 調(diào)用 mpi 函數(shù) 方法 裝置 | ||
技術(shù)領(lǐng)域
本申請(qǐng)涉及測試技術(shù)領(lǐng)域,特別是涉及一種支持多線程調(diào)用MPI函數(shù)的方法和裝置。
背景技術(shù)
云計(jì)算(云計(jì)算:一種通過計(jì)算機(jī)網(wǎng)絡(luò)以服務(wù)的方式提供動(dòng)態(tài)可伸縮的虛擬化的資源的計(jì)算模式)程序的種類可分為并行程序無通信類型,和并行程序有通信類型。對(duì)于并行程序無通信類型,該計(jì)算(通常稱為作業(yè))的每個(gè)進(jìn)程(即每個(gè)子任務(wù)),可以在任何時(shí)候啟動(dòng),不需要和其他子任務(wù)同時(shí)啟動(dòng),因?yàn)樽尤蝿?wù)間不需通信,每個(gè)子任務(wù)處理完自己的計(jì)算就可以直接結(jié)束。因此云計(jì)算平臺(tái)調(diào)度器可以在不同時(shí)間調(diào)度不同的子任務(wù),處理這種調(diào)度需求的調(diào)度方式稱為任務(wù)級(jí)調(diào)度。對(duì)于并行程序有通信類型,由于該計(jì)算(即作業(yè))的每個(gè)子任務(wù)都需要互相通信,因此需要等全部子任務(wù)都啟動(dòng)以后,才能開始計(jì)算。也即需要云計(jì)算平臺(tái)當(dāng)前擁有能啟動(dòng)該作業(yè)的所有子任務(wù)的資源后,才能將這個(gè)作業(yè)啟動(dòng),否則,需要等到其他作業(yè)計(jì)算完畢,釋放出足夠資源,才能啟動(dòng)該作業(yè)。處理這種調(diào)度需求的調(diào)度方式稱為作業(yè)級(jí)調(diào)度。
MPI(Message?Passing?Interface,訊息傳遞接口;一種消息傳遞編程接口,同時(shí)提供了實(shí)現(xiàn)其一系列接口的多語言函數(shù)庫)是云計(jì)算集群上常用的消息傳遞機(jī)制之一,云計(jì)算程序可以使用MPI來進(jìn)行數(shù)據(jù)的發(fā)送與接收。MPI標(biāo)準(zhǔn)定義了一組函數(shù),使應(yīng)用程序可以將消息從一個(gè)MPI進(jìn)程送到另一個(gè)MPI進(jìn)程。
對(duì)于并行程序有通信類型,現(xiàn)有技術(shù)中基本上采用OpenMPI進(jìn)行各計(jì)算節(jié)點(diǎn)的進(jìn)程之間的通信。OpenMPI是一種高性能消息傳遞庫,最初是作為融合的技術(shù)和資源從其他幾個(gè)項(xiàng)目(FT-MPI,LA-MPI,LAM/MPI,以及PACX-MPI),它是MPI-2標(biāo)準(zhǔn)的一個(gè)開源實(shí)現(xiàn),由一些科研機(jī)構(gòu)和企業(yè)一起開發(fā)和維護(hù)。因此,OpenMPI能夠從高性能社區(qū)中獲得專業(yè)技術(shù)、工業(yè)技術(shù)和資源支持,來創(chuàng)建最好的MPI庫。OpenMPI提供給系統(tǒng)和軟件供應(yīng)商、程序開發(fā)者和研究人員很多便利。易于使用,并運(yùn)行本身在各種各樣的操作系統(tǒng),網(wǎng)絡(luò)互連,以及一批/調(diào)度系統(tǒng)。
OpenMPI目前只支持單線程調(diào)用,因?yàn)樵谒O(shè)計(jì)的時(shí)候并沒有考慮將其運(yùn)用于多線程環(huán)境,一些關(guān)鍵數(shù)據(jù)結(jié)構(gòu)沒有添加多線程訪問的保護(hù)。如果在不同的線程中調(diào)用OpenMPI的函數(shù),會(huì)破壞這些關(guān)鍵數(shù)據(jù)結(jié)構(gòu),導(dǎo)致OpenMPI內(nèi)部處理出錯(cuò),使程序發(fā)生異常。
現(xiàn)有技術(shù)中,若使用OpenMPI時(shí),每個(gè)計(jì)算節(jié)點(diǎn)只能使用單線程模式,或者使用嚴(yán)格分階段的程序。其中,嚴(yán)格分階段模式,會(huì)將程序生命周期分為幾個(gè)階段,每個(gè)階段做不同的事情。例如分為計(jì)算和網(wǎng)絡(luò)收發(fā)階段,兩個(gè)階段不會(huì)重疊,即計(jì)算階段時(shí),不會(huì)有網(wǎng)絡(luò)收發(fā)調(diào)用,集中把數(shù)據(jù)全部計(jì)算完畢(可用多線程來計(jì)算);而網(wǎng)絡(luò)收發(fā)階段時(shí),所有計(jì)算線程全部處于阻塞等待狀態(tài),由單個(gè)網(wǎng)絡(luò)收發(fā)線程來調(diào)用OpenMPI函數(shù),將剛剛的計(jì)算結(jié)果發(fā)送到其他機(jī)器上,并從其他機(jī)器接收它們的計(jì)算結(jié)果。然后又再次進(jìn)行計(jì)算和網(wǎng)絡(luò)收發(fā)的交替。
而上述兩種方式中,單線程模式?jīng)]有充分利用計(jì)算節(jié)點(diǎn)可支持多線程進(jìn)行處理的優(yōu)點(diǎn);
而嚴(yán)格分階段模式,只適合傳統(tǒng)的并行計(jì)算環(huán)境。而在云計(jì)算環(huán)境下,會(huì)有如下缺點(diǎn):
1、在云計(jì)算環(huán)境中,往往需要使用多線程來對(duì)數(shù)據(jù)進(jìn)行更細(xì)粒度的切分,并且將計(jì)算更充分地并行起來,使得計(jì)算和網(wǎng)絡(luò)能夠同時(shí)進(jìn)行,提高程序性能。而嚴(yán)格分階段程序中計(jì)算和網(wǎng)絡(luò)不能同時(shí)進(jìn)行,并不能完全發(fā)揮云計(jì)算細(xì)粒度、高并行的優(yōu)勢。
2、程序編寫者需要時(shí)刻記住不能在多個(gè)線程使用OpenMPI函數(shù),這對(duì)于云計(jì)算程序編寫者來說,很容易出錯(cuò),導(dǎo)致程序出現(xiàn)難以察覺的問題。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的多線程調(diào)用MPI函數(shù)的嘖嘖嘖和相應(yīng)的支持多線程調(diào)用MPI函數(shù)的方法。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種支持多線程調(diào)用MPI函數(shù)的方法,包括:
針對(duì)云計(jì)算中的一個(gè)計(jì)算服務(wù)器,當(dāng)所述計(jì)算服務(wù)器執(zhí)行一任務(wù)時(shí),若所述計(jì)算服務(wù)器中的線程發(fā)送各自的MPI調(diào)用請(qǐng)求調(diào)用OpenMPI庫中的MPI函數(shù),將所述各MPI調(diào)用請(qǐng)求進(jìn)行統(tǒng)一的排序操作;
按所述排序操作后的順序,逐個(gè)調(diào)用所述MPI調(diào)用請(qǐng)求對(duì)應(yīng)的MPI函數(shù)進(jìn)行操作。
可選的,還包括:
針對(duì)OpenMPI庫構(gòu)建一個(gè)隊(duì)列;針對(duì)OpenMPI庫中的每個(gè)MPI函數(shù)構(gòu)建相應(yīng)的封裝函數(shù);所述隊(duì)列和所述封裝函數(shù)用于當(dāng)所述計(jì)算服務(wù)器執(zhí)行一任務(wù)時(shí),若所述計(jì)算服務(wù)器中的線程發(fā)送各自的MPI調(diào)用請(qǐng)求調(diào)用OpenMPI庫中的MPI函數(shù),將所述各MPI調(diào)用請(qǐng)求進(jìn)行統(tǒng)一的排序操作。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210518573.4/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種攪拌式工業(yè)物料加熱除雜裝置
- 下一篇:一種飼料混合機(jī)
- 多線程應(yīng)用系統(tǒng)的異常處理方法和異常處理裝置
- 一種面向片上網(wǎng)絡(luò)的多線程調(diào)度實(shí)現(xiàn)方法
- 基于計(jì)算機(jī)多線程多核顯微鏡細(xì)胞圖像快速掃描處理方法
- 一種基于同步鎖的多線程處理方法、終端以及存儲(chǔ)介質(zhì)
- 多線程并發(fā)處理系統(tǒng)及方法
- 海外控股估值流程控制方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 讀數(shù)方法、電子裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種基于云平臺(tái)多線程調(diào)度的方法、系統(tǒng)、設(shè)備及介質(zhì)
- 一種基于云平臺(tái)的前端多線程調(diào)度方法和系統(tǒng)
- 多線程調(diào)度方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- IDL調(diào)用裝置及調(diào)用方法
- 調(diào)用方法及調(diào)用系統(tǒng)
- 一種服務(wù)調(diào)用方法及裝置
- 服務(wù)調(diào)用方法、服務(wù)調(diào)用裝置及服務(wù)調(diào)用系統(tǒng)
- 組件調(diào)用方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 身份驗(yàn)證方法及裝置
- 系統(tǒng)調(diào)用處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)調(diào)用方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種微服務(wù)請(qǐng)求重試的方法及終端
- 業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及系統(tǒng)





