下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MPI和PVM關(guān)鍵特性比較09006218孫鴻賢摘要在科學(xué)計(jì)算和其他要求苛刻計(jì)算能力的領(lǐng)域,大規(guī)模并行處理機(jī)(MPP )和其他分布式機(jī) 群系統(tǒng)發(fā)揮了至關(guān)重要的作用。由于機(jī)群結(jié)構(gòu)過于龐大,消息傳遞機(jī)制成為并行系統(tǒng)處理器 通信的唯一選擇。Message Passing Interface(MPI和 Parallel Virtual Machine(PVM)兩種 API 為 這一機(jī)制提供了支持。本文從異構(gòu)性支持,通信上下文,搜集創(chuàng)建進(jìn)程所需資源信息的方式 與容錯技術(shù)四個方面對這兩種解決方案做了初步比較,指出MPI比較是開發(fā)對動態(tài)性和容 錯能力要求不高的普通系統(tǒng)的高效工具。雖然MPI有成為消息傳遞模型
2、的事實(shí)標(biāo)準(zhǔn)的趨勢, 但目前而言,對于對動態(tài)性和容錯性要求很高的系統(tǒng),PVM仍然是最理想的選擇。關(guān)鍵詞MPI PVM異構(gòu)性上下文資源信息容錯能力簡介PVM 是由美國 Oak Ridge National Laboratory ,University of Tennessee 和 Emory University 合作開發(fā)的。它的核心是虛擬機(jī)概念。即從用戶角度,由網(wǎng)絡(luò)連接的一系列異構(gòu)主機(jī)表現(xiàn)為 一個統(tǒng)一的并行機(jī)。相對于性能方面的考慮,PVM的設(shè)計(jì)更加注重可移植性。這主要出于 兩個原因:相對于節(jié)點(diǎn)處理機(jī)和局部存儲的連接速度,網(wǎng)絡(luò)的速度非常之慢,這本身就極大限 制了系統(tǒng)可能達(dá)到的性能。PVM自始至終都
3、在注重于節(jié)點(diǎn)的異構(gòu)性,容錯性,可擴(kuò)展性。為在這些方面有滿意 的表現(xiàn),不得不在性能上有所犧牲。然而,MPI標(biāo)準(zhǔn)是MPI論壇的產(chǎn)物。該論壇的參與者是一些高性能計(jì)算的專家,包括具 體實(shí)現(xiàn)者,終端用戶等MPI標(biāo)準(zhǔn)的目的是要統(tǒng)一各廠商的消息傳遞接口,使得并行程序能 夠在不同廠商的系統(tǒng)之間不需更改地移植。MPI的設(shè)計(jì)目標(biāo)之一就是高性能,但是據(jù)一些研 究表明,MPI的性能并沒有比PVM有較大的提高。MPI的主要特點(diǎn)有:提供了豐富的點(diǎn)對點(diǎn)通信函數(shù)集。這極大減輕了程序員的負(fù)擔(dān)。對PU組間的通信,提供了大量的聚集函數(shù)的支持。引入通信上下文及通信器(Communicator)的概念,使得并行編程更加安全??梢栽O(shè)定通
4、信網(wǎng)拓?fù)浣Y(jié)構(gòu)。提供派生數(shù)據(jù)類型和處理物理不連續(xù)數(shù)據(jù)的能力考慮到科學(xué)計(jì)算領(lǐng)域的實(shí)際需要,我們從異構(gòu)tt(heterogeneity)支持,通信上下文 (Context),進(jìn)程創(chuàng)建所需資源信息(Dynamic Resource Information)以及容錯能力(Fault Tolerance)四個角度對兩者進(jìn)行比較。異構(gòu)性支持由于單一類型的節(jié)點(diǎn)機(jī)組成的集群有時(shí)候不適應(yīng)問題的需要,為達(dá)到更高性能,必須依 賴異構(gòu)機(jī)器組成的系統(tǒng)。典型的,如著名的伯克利分布式計(jì)算平臺(Berkeley Open Infrastructure for Network Computing),就是由成千上萬從大型機(jī)到桌面機(jī)
5、器組成的功能超 強(qiáng)的計(jì)算網(wǎng)絡(luò)。PVM的實(shí)現(xiàn)具體考慮了節(jié)點(diǎn)間的異構(gòu)性,即PVM可以在不同結(jié)構(gòu)節(jié)點(diǎn)組成的并行系統(tǒng) 上流暢運(yùn)行。比如一些節(jié)點(diǎn)是IBM的機(jī)器,另外一些是NEC的機(jī)器,他們體系結(jié)構(gòu)約定不 同(比如機(jī)器字長或大小端約定不同),PVM仍然可以通過給pvm_send/recv提供數(shù)據(jù)類型參 數(shù)和pvm_pack/unpack函數(shù)參數(shù)來達(dá)到通信目的。長久以來人們對MPI異構(gòu)性支持能力的認(rèn)識不夠準(zhǔn)確。很多人認(rèn)為,MPI編寫的程序只 是在同種規(guī)格節(jié)點(diǎn)的集群上可以無縫移植。比如,在IBM并行系統(tǒng)上運(yùn)行的MPI程序在NEC 的系統(tǒng)上可以順利運(yùn)行。但是,這個程序在IBM和NEC節(jié)點(diǎn)的混合系統(tǒng)上無法執(zhí)行。這
6、一 觀念其實(shí)是錯誤的。MPI論壇給定的MPI設(shè)計(jì)目標(biāo)之一就是鼓勵實(shí)現(xiàn)異構(gòu)系統(tǒng)。然而部分硬 件制造商為了自己的商業(yè)利益考慮,其MPI實(shí)現(xiàn)只支持自己的產(chǎn)品。人們在使用他們的產(chǎn) 品時(shí),就形成了上述錯誤觀念。其實(shí)MPI的很多實(shí)現(xiàn),包括MPICH和LAM,是完全支持PVM 式的異構(gòu)系統(tǒng)的。通信上下文MPI最重要的貢獻(xiàn)在于引入了通信器的概念。通信器可以被看作是context對一組進(jìn)程 的綁定。Context劃分通信空間,使得一個context間發(fā)送的信息不可能被另一個context的 進(jìn)程所獲得。這使進(jìn)程間點(diǎn)對點(diǎn)通信和進(jìn)程組間通信更加安全。考慮下面的情形兩個完全相同的進(jìn)程都在使用同一個庫函數(shù)進(jìn)行消息傳遞。
7、用戶代碼和庫選擇用來標(biāo)記 消息的標(biāo)簽也是完全一樣的。如果沒有Context,那么信息接收的時(shí)序就是錯的。這要求操 作系統(tǒng)提供除了 senderlD, message tag之外的第三個標(biāo)簽,用來區(qū)分庫函數(shù)消息和用戶消息。受MPI-1的啟發(fā),PVM3.4中也添加了上下文概念。這里有兩個問題:第三個標(biāo)簽該如何 產(chǎn)生?如何分發(fā)到各個處理單元? PVM和MPI采取了不盡相同的策略。本質(zhì)上MPI的交互模型是靜態(tài)的。它設(shè)置一次并行計(jì)算中所有進(jìn)程所對應(yīng)的通信器為 MPI_COMM_WORLD,并且假定該通信器中進(jìn)程總數(shù)n不變。MPI程序中進(jìn)程標(biāo)號固定,為 0n-1。程序的推進(jìn)過程中需要不斷地由現(xiàn)有的cont
8、ext派生出新的context。這一過程被設(shè) 置為所有進(jìn)程的Barrier Synchronization。這樣做有幾大特點(diǎn):不需要單獨(dú)的服務(wù)器來分配context,只需要各個進(jìn)程間的互斥同步就可實(shí)現(xiàn)只要一個或多個進(jìn)程終止,那么通信中的整個上下文狀態(tài)都將失效派生過程通過一個函數(shù)調(diào)用就可實(shí)現(xiàn)但是由于MPI沒有系統(tǒng)觀念,不同進(jìn)程組間的通信很有可能使用相同的上下文tag。MPI 得架構(gòu)下,為每個進(jìn)程組都提供不同的上下文難度實(shí)在太大MPI由此提出組內(nèi)通信器(inter communicator)概念,使不同進(jìn)程組可以安全的使用相同的上下文。MPI的上下文對程序員 透明,由其在操作中的作用來定義。對MP
9、I來說,提供全局范圍內(nèi)不同的上下文會損傷可 擴(kuò)展性。PVM系統(tǒng)是一個統(tǒng)一的虛擬機(jī)器,在各個節(jié)點(diǎn)機(jī)上駐留了一系列后臺程序(daemon), 可以統(tǒng)一完成操作。所以PVM系統(tǒng)很容易實(shí)現(xiàn)全局上完全不同的上下文,這樣,就不需要 引入繁瑣的inter-communicator。而且系統(tǒng)將上下文對應(yīng)成一個用戶可見的整數(shù)(context id)。 因此,PVM的上下文模型更為簡單和一般。這種方式的主要優(yōu)點(diǎn)是新產(chǎn)生的進(jìn)程可以使用已存在的context和另一程序組進(jìn)行通信。當(dāng)整個大型機(jī)的程序出錯時(shí),這對錯誤處理有很 大作用。但是PVM的這種做法很影響程序的模塊化和可擴(kuò)展性。考慮兩個并行程序,它們希望 能相互通信
10、。PVM方式要求這兩個進(jìn)程在同一個虛擬機(jī)上。假若把兩個PVM系統(tǒng)強(qiáng)行合并 到一起,雖然產(chǎn)生的context id在各自系統(tǒng)內(nèi)是完全不同的,但是兩個系統(tǒng)間完全可以產(chǎn)生 相同的context id。這也說明了 PVM系統(tǒng)不可合并,缺乏可擴(kuò)展性。PVM系統(tǒng)還會遇到的一 個問題是用戶強(qiáng)行指定context id,這也會造成無窮無盡的潛在問題。而MPI系統(tǒng)context 表示對程序員不可見,通過犧牲編程靈活性保證了可擴(kuò)展性和實(shí)現(xiàn)的模塊化和封裝性能。獲取資源信息在并行機(jī)中,在那個節(jié)點(diǎn)創(chuàng)建新的進(jìn)程取決于當(dāng)前機(jī)群的資源信息。PVM和MPI收集 和處理這些信息的方式是不同的。PVM系統(tǒng)提供了一個分布式操作系統(tǒng),
11、通過pvm_reg_tasker 一類函數(shù),便于和資源信 息系統(tǒng)交互。而MPI根本不存在Distributed OS的概念,它的方法是通過MPI對象MPI_Info 與任何提供Distributed OS功能的系統(tǒng)交換資源信息。對PVM和MPI方式的不同系統(tǒng),如何與給定配置的系統(tǒng),如運(yùn)行AIX 5L OS的IBM刀片 服務(wù)器進(jìn)行交互呢? PVM機(jī)群的策略是通過兩個系統(tǒng)都支持的功能子集來運(yùn)作。而MPI系 統(tǒng)則通過具體提供一個與資源系統(tǒng)交換信息的接口來達(dá)到目的。這具體體現(xiàn)為 MPI_COMM_Spawn 函數(shù)的 info_for_resource_manager參數(shù)。作為一個虛擬機(jī)系統(tǒng),PVM機(jī)群
12、可以通過pvm_config來動態(tài)配置系統(tǒng)資源。但是在極 大規(guī)模,動態(tài)性非常強(qiáng)的系統(tǒng)(考慮BONIC)中,這可能帶來問題。比如用戶程序先用 pvm_config獲取資源信息,處理后發(fā)出pvm_spawn命令創(chuàng)建子進(jìn)程,但是在這兩個操作之 間恰好有另一用戶程序執(zhí)行了 pvm_delhost操作,這就使系統(tǒng)環(huán)境發(fā)生變化,甚至創(chuàng)建子進(jìn) 程失敗。這非常類似于OS中的WAR競爭情況,但卻無法通過鎖機(jī)制加以解決。MPI系統(tǒng)采 用聚合操作的方式解決這類問題,使產(chǎn)生進(jìn)程和獲取資源信息不可中斷地被完成,這就避免 了競爭條件。容錯能力在大規(guī)模科學(xué)計(jì)算中,系統(tǒng)的容錯能力是至關(guān)重要的。想像一下一個運(yùn)行了一周的數(shù)值 仿
13、真程序在最后一刻因?yàn)槟硞€不重要的進(jìn)程的失敗而突然終止,前功盡棄是多么可怕。更嚴(yán) 重的是,一個小錯誤可能經(jīng)過很長時(shí)間之后才使得任務(wù)終止,而期間可能產(chǎn)生了很多不可用 的結(jié)果,但是我們確無從區(qū)分出它們,這樣我們已做的工作就毫無意義了。PVM系統(tǒng)把機(jī)群整體看做一臺虛擬機(jī),正在運(yùn)行的任務(wù)在機(jī)器狀態(tài)變化或任務(wù)終止時(shí) 會在機(jī)器上登記特殊的事件信息。想要接受消息的進(jìn)程將會受到這一信息,對出現(xiàn)的意外情 況作出相應(yīng)處理。事實(shí)上這一機(jī)制經(jīng)常被專門用來進(jìn)行資源配置,平衡計(jì)算負(fù)載,啟用新資 源。發(fā)送這一類消息的時(shí)序需要特殊考慮。比如,機(jī)器退出機(jī)群的消息發(fā)出后需要立即收回; 然而新節(jié)點(diǎn)加入機(jī)群后,為了避免浪費(fèi)資源,不能將
14、add_new_node消息懸掛太長時(shí)間,這 時(shí)可取的方法可能是對其他節(jié)點(diǎn)逐一通告(polling)o而MPI系統(tǒng)的容錯能力相對而言非常差,其原因是MPI-1模型本質(zhì)上是靜態(tài)的,全局通 信器MPI_COMM_WORLD的SIZE不變,進(jìn)程永遠(yuǎn)駐留。很根本的一點(diǎn)是,由于通信上下文 的改變是由不同進(jìn)程的同步來實(shí)現(xiàn)的,某個進(jìn)程的突然終止或出錯會使得系統(tǒng)通信環(huán)境進(jìn)入 一個沒有意義的狀態(tài)。然而進(jìn)入這一混亂狀態(tài)以后計(jì)算過程或許還會進(jìn)行,產(chǎn)生大量無用結(jié) 果,這是對資源的極大浪費(fèi)。由上面的比較可以看出,PVM適合于動態(tài)性和容錯能力需求很強(qiáng)的場合,但模塊化程 度不高,抽象層次低,工具較少。而MPI API工具函數(shù)較多,適合于開發(fā)一般的并行系統(tǒng)。 PVM從單一系統(tǒng)的角度理解通信,MPI從進(jìn)程交互角度去給消息傳遞建模。MPI的動態(tài)特性 在MPI-2中已經(jīng)有所體現(xiàn),F(xiàn)T-MPI(Fault-Tolerant MPI)是一個重要的發(fā)展方向。參考文獻(xiàn):Sourcebook of Parallel Computation, Jack Dongarra, Ian Foster et al. Elsevier Science, 2003Goals Guiding Design, William Gro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 走進(jìn)小學(xué)活動方案樣本(3篇)
- 二零二五年度二手房交易稅費(fèi)計(jì)算合同樣本3篇
- 二零二五年度辦公大樓智能化系統(tǒng)運(yùn)維合同2篇
- 2025年度涂料涂料工程招標(biāo)代理服務(wù)合同范本3篇
- 2025年三年級上學(xué)期英語教師工作總結(jié)范文(2篇)
- 煤礦綜掘綜合防塵管理制度(3篇)
- 自學(xué)書法系統(tǒng)課程設(shè)計(jì)
- 輪形課程設(shè)計(jì)
- 二零二五年度個人住房裝修貸款保證合同3篇
- 2025年高一班級工作計(jì)劃(二篇)
- 東風(fēng)集團(tuán)新能源汽車培訓(xùn)
- 2024-2030年中國廣電技術(shù)行業(yè)現(xiàn)狀分析及未來發(fā)展趨勢預(yù)測報(bào)告
- 鋼構(gòu)樓板合同范例
- 造影劑過敏的護(hù)理
- 蘇教版六年級上冊分?jǐn)?shù)四則混合運(yùn)算100題帶答案
- 潛水員潛水作業(yè)安全2024
- 以案促改心得體會
- 2024年公文寫作基礎(chǔ)知識競賽試題庫及答案(共130題)
- 2023-2024學(xué)年浙江省麗水市蓮都區(qū)教科版三年級上冊期末考試科學(xué)試卷
- 失禁性皮炎病例護(hù)理查房課件
- 期末復(fù)習(xí)試題 (試卷)-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
評論
0/150
提交評論