MPI和PVM關鍵特性比較_第1頁
MPI和PVM關鍵特性比較_第2頁
MPI和PVM關鍵特性比較_第3頁
MPI和PVM關鍵特性比較_第4頁
MPI和PVM關鍵特性比較_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、MPI和PVM關鍵特性比較09006218孫鴻賢摘要在科學計算和其他要求苛刻計算能力的領域,大規(guī)模并行處理機(MPP )和其他分布式機 群系統(tǒng)發(fā)揮了至關重要的作用。由于機群結構過于龐大,消息傳遞機制成為并行系統(tǒng)處理器 通信的唯一選擇。Message Passing Interface(MPI和 Parallel Virtual Machine(PVM)兩種 API 為 這一機制提供了支持。本文從異構性支持,通信上下文,搜集創(chuàng)建進程所需資源信息的方式 與容錯技術四個方面對這兩種解決方案做了初步比較,指出MPI比較是開發(fā)對動態(tài)性和容 錯能力要求不高的普通系統(tǒng)的高效工具。雖然MPI有成為消息傳遞模型

2、的事實標準的趨勢, 但目前而言,對于對動態(tài)性和容錯性要求很高的系統(tǒng),PVM仍然是最理想的選擇。關鍵詞MPI PVM異構性上下文資源信息容錯能力簡介PVM 是由美國 Oak Ridge National Laboratory ,University of Tennessee 和 Emory University 合作開發(fā)的。它的核心是虛擬機概念。即從用戶角度,由網(wǎng)絡連接的一系列異構主機表現(xiàn)為 一個統(tǒng)一的并行機。相對于性能方面的考慮,PVM的設計更加注重可移植性。這主要出于 兩個原因:相對于節(jié)點處理機和局部存儲的連接速度,網(wǎng)絡的速度非常之慢,這本身就極大限 制了系統(tǒng)可能達到的性能。PVM自始至終都

3、在注重于節(jié)點的異構性,容錯性,可擴展性。為在這些方面有滿意 的表現(xiàn),不得不在性能上有所犧牲。然而,MPI標準是MPI論壇的產(chǎn)物。該論壇的參與者是一些高性能計算的專家,包括具 體實現(xiàn)者,終端用戶等MPI標準的目的是要統(tǒng)一各廠商的消息傳遞接口,使得并行程序能 夠在不同廠商的系統(tǒng)之間不需更改地移植。MPI的設計目標之一就是高性能,但是據(jù)一些研 究表明,MPI的性能并沒有比PVM有較大的提高。MPI的主要特點有:提供了豐富的點對點通信函數(shù)集。這極大減輕了程序員的負擔。對PU組間的通信,提供了大量的聚集函數(shù)的支持。引入通信上下文及通信器(Communicator)的概念,使得并行編程更加安全??梢栽O定通

4、信網(wǎng)拓撲結構。提供派生數(shù)據(jù)類型和處理物理不連續(xù)數(shù)據(jù)的能力考慮到科學計算領域的實際需要,我們從異構tt(heterogeneity)支持,通信上下文 (Context),進程創(chuàng)建所需資源信息(Dynamic Resource Information)以及容錯能力(Fault Tolerance)四個角度對兩者進行比較。異構性支持由于單一類型的節(jié)點機組成的集群有時候不適應問題的需要,為達到更高性能,必須依 賴異構機器組成的系統(tǒng)。典型的,如著名的伯克利分布式計算平臺(Berkeley Open Infrastructure for Network Computing),就是由成千上萬從大型機到桌面機

5、器組成的功能超 強的計算網(wǎng)絡。PVM的實現(xiàn)具體考慮了節(jié)點間的異構性,即PVM可以在不同結構節(jié)點組成的并行系統(tǒng) 上流暢運行。比如一些節(jié)點是IBM的機器,另外一些是NEC的機器,他們體系結構約定不 同(比如機器字長或大小端約定不同),PVM仍然可以通過給pvm_send/recv提供數(shù)據(jù)類型參 數(shù)和pvm_pack/unpack函數(shù)參數(shù)來達到通信目的。長久以來人們對MPI異構性支持能力的認識不夠準確。很多人認為,MPI編寫的程序只 是在同種規(guī)格節(jié)點的集群上可以無縫移植。比如,在IBM并行系統(tǒng)上運行的MPI程序在NEC 的系統(tǒng)上可以順利運行。但是,這個程序在IBM和NEC節(jié)點的混合系統(tǒng)上無法執(zhí)行。這

6、一 觀念其實是錯誤的。MPI論壇給定的MPI設計目標之一就是鼓勵實現(xiàn)異構系統(tǒng)。然而部分硬 件制造商為了自己的商業(yè)利益考慮,其MPI實現(xiàn)只支持自己的產(chǎn)品。人們在使用他們的產(chǎn) 品時,就形成了上述錯誤觀念。其實MPI的很多實現(xiàn),包括MPICH和LAM,是完全支持PVM 式的異構系統(tǒng)的。通信上下文MPI最重要的貢獻在于引入了通信器的概念。通信器可以被看作是context對一組進程 的綁定。Context劃分通信空間,使得一個context間發(fā)送的信息不可能被另一個context的 進程所獲得。這使進程間點對點通信和進程組間通信更加安全。考慮下面的情形兩個完全相同的進程都在使用同一個庫函數(shù)進行消息傳遞。

7、用戶代碼和庫選擇用來標記 消息的標簽也是完全一樣的。如果沒有Context,那么信息接收的時序就是錯的。這要求操 作系統(tǒng)提供除了 senderlD, message tag之外的第三個標簽,用來區(qū)分庫函數(shù)消息和用戶消息。受MPI-1的啟發(fā),PVM3.4中也添加了上下文概念。這里有兩個問題:第三個標簽該如何 產(chǎn)生?如何分發(fā)到各個處理單元? PVM和MPI采取了不盡相同的策略。本質上MPI的交互模型是靜態(tài)的。它設置一次并行計算中所有進程所對應的通信器為 MPI_COMM_WORLD,并且假定該通信器中進程總數(shù)n不變。MPI程序中進程標號固定,為 0n-1。程序的推進過程中需要不斷地由現(xiàn)有的cont

8、ext派生出新的context。這一過程被設 置為所有進程的Barrier Synchronization。這樣做有幾大特點:不需要單獨的服務器來分配context,只需要各個進程間的互斥同步就可實現(xiàn)只要一個或多個進程終止,那么通信中的整個上下文狀態(tài)都將失效派生過程通過一個函數(shù)調(diào)用就可實現(xiàn)但是由于MPI沒有系統(tǒng)觀念,不同進程組間的通信很有可能使用相同的上下文tag。MPI 得架構下,為每個進程組都提供不同的上下文難度實在太大MPI由此提出組內(nèi)通信器(inter communicator)概念,使不同進程組可以安全的使用相同的上下文。MPI的上下文對程序員 透明,由其在操作中的作用來定義。對MP

9、I來說,提供全局范圍內(nèi)不同的上下文會損傷可 擴展性。PVM系統(tǒng)是一個統(tǒng)一的虛擬機器,在各個節(jié)點機上駐留了一系列后臺程序(daemon), 可以統(tǒng)一完成操作。所以PVM系統(tǒng)很容易實現(xiàn)全局上完全不同的上下文,這樣,就不需要 引入繁瑣的inter-communicator。而且系統(tǒng)將上下文對應成一個用戶可見的整數(shù)(context id)。 因此,PVM的上下文模型更為簡單和一般。這種方式的主要優(yōu)點是新產(chǎn)生的進程可以使用已存在的context和另一程序組進行通信。當整個大型機的程序出錯時,這對錯誤處理有很 大作用。但是PVM的這種做法很影響程序的模塊化和可擴展性??紤]兩個并行程序,它們希望 能相互通信

10、。PVM方式要求這兩個進程在同一個虛擬機上。假若把兩個PVM系統(tǒng)強行合并 到一起,雖然產(chǎn)生的context id在各自系統(tǒng)內(nèi)是完全不同的,但是兩個系統(tǒng)間完全可以產(chǎn)生 相同的context id。這也說明了 PVM系統(tǒng)不可合并,缺乏可擴展性。PVM系統(tǒng)還會遇到的一 個問題是用戶強行指定context id,這也會造成無窮無盡的潛在問題。而MPI系統(tǒng)context 表示對程序員不可見,通過犧牲編程靈活性保證了可擴展性和實現(xiàn)的模塊化和封裝性能。獲取資源信息在并行機中,在那個節(jié)點創(chuàng)建新的進程取決于當前機群的資源信息。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),如運行AIX 5L OS的IBM刀片 服務器進行交互呢? PVM機群的策略是通過兩個系統(tǒng)都支持的功能子集來運作。而MPI系 統(tǒng)則通過具體提供一個與資源系統(tǒng)交換信息的接口來達到目的。這具體體現(xiàn)為 MPI_COMM_Spawn 函數(shù)的 info_for_resource_manager參數(shù)。作為一個虛擬機系統(tǒng),PVM機群

12、可以通過pvm_config來動態(tài)配置系統(tǒng)資源。但是在極 大規(guī)模,動態(tài)性非常強的系統(tǒng)(考慮BONIC)中,這可能帶來問題。比如用戶程序先用 pvm_config獲取資源信息,處理后發(fā)出pvm_spawn命令創(chuàng)建子進程,但是在這兩個操作之 間恰好有另一用戶程序執(zhí)行了 pvm_delhost操作,這就使系統(tǒng)環(huán)境發(fā)生變化,甚至創(chuàng)建子進 程失敗。這非常類似于OS中的WAR競爭情況,但卻無法通過鎖機制加以解決。MPI系統(tǒng)采 用聚合操作的方式解決這類問題,使產(chǎn)生進程和獲取資源信息不可中斷地被完成,這就避免 了競爭條件。容錯能力在大規(guī)??茖W計算中,系統(tǒng)的容錯能力是至關重要的。想像一下一個運行了一周的數(shù)值 仿

13、真程序在最后一刻因為某個不重要的進程的失敗而突然終止,前功盡棄是多么可怕。更嚴 重的是,一個小錯誤可能經(jīng)過很長時間之后才使得任務終止,而期間可能產(chǎn)生了很多不可用 的結果,但是我們確無從區(qū)分出它們,這樣我們已做的工作就毫無意義了。PVM系統(tǒng)把機群整體看做一臺虛擬機,正在運行的任務在機器狀態(tài)變化或任務終止時 會在機器上登記特殊的事件信息。想要接受消息的進程將會受到這一信息,對出現(xiàn)的意外情 況作出相應處理。事實上這一機制經(jīng)常被專門用來進行資源配置,平衡計算負載,啟用新資 源。發(fā)送這一類消息的時序需要特殊考慮。比如,機器退出機群的消息發(fā)出后需要立即收回; 然而新節(jié)點加入機群后,為了避免浪費資源,不能將

14、add_new_node消息懸掛太長時間,這 時可取的方法可能是對其他節(jié)點逐一通告(polling)o而MPI系統(tǒng)的容錯能力相對而言非常差,其原因是MPI-1模型本質上是靜態(tài)的,全局通 信器MPI_COMM_WORLD的SIZE不變,進程永遠駐留。很根本的一點是,由于通信上下文 的改變是由不同進程的同步來實現(xiàn)的,某個進程的突然終止或出錯會使得系統(tǒng)通信環(huán)境進入 一個沒有意義的狀態(tài)。然而進入這一混亂狀態(tài)以后計算過程或許還會進行,產(chǎn)生大量無用結 果,這是對資源的極大浪費。由上面的比較可以看出,PVM適合于動態(tài)性和容錯能力需求很強的場合,但模塊化程 度不高,抽象層次低,工具較少。而MPI API工具函數(shù)較多,適合于開發(fā)一般的并行系統(tǒng)。 PVM從單一系統(tǒng)的角度理解通信,MPI從進程交互角度去給消息傳遞建模。MPI的動態(tài)特性 在MPI-2中已經(jīng)有所體現(xiàn),F(xiàn)T-MPI(Fault-Tolerant MPI)是一個重要的發(fā)展方向。參考文獻: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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論