Windows下PVM的安裝 - 配置與編程-_第1頁
Windows下PVM的安裝 - 配置與編程-_第2頁
Windows下PVM的安裝 - 配置與編程-_第3頁
Windows下PVM的安裝 - 配置與編程-_第4頁
Windows下PVM的安裝 - 配置與編程-_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、文章編號:1000-2375(200404-0297-06Windows 下PVM 的安裝、配置與編程柯艷明1,李躍新1,解定2(1.湖北大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,湖北武漢430062;2.北京廣播學(xué)院計(jì)算機(jī)與軟件學(xué)院,北京,100024摘要:PVM 是目前國內(nèi)外比較流行的幾種并行編程環(huán)境之一,但大多是基于Unix 平臺或Linux 平臺的 .介紹了基于Windows 平臺的PVM 的安裝與配置方法,探討了PVM 的兩種不同的編程模式并給出了實(shí)例說明.關(guān)鍵詞:PVM;安裝;配置;編程模式中圖分類號:TP393文獻(xiàn)標(biāo)志碼:A收稿日期:2003-02-15作者簡介:柯艷明(1968-,男,碩士生1

2、Windows 下PVM 并行計(jì)算環(huán)境簡介PVM (Parallel Virtual Machine 是并行虛擬機(jī)的簡稱,它通過T CP/IP 網(wǎng)絡(luò)通訊協(xié)議將整個(gè)網(wǎng)絡(luò)的多臺計(jì)算機(jī)虛擬成一臺并行機(jī)使用,是目前國內(nèi)外比較流行的并行編程環(huán)境之一.PVM 主要可分為兩個(gè)部分,其中一部分為PVM 后臺監(jiān)控程序pvmd (pvm deam on ,它是整個(gè)PVM 的核心.每臺節(jié)點(diǎn)機(jī)都運(yùn)行一個(gè)pvmd ,負(fù)責(zé)與本機(jī)任務(wù)通過T CP 協(xié)議交互及節(jié)點(diǎn)機(jī)之間通過UDP 協(xié)議交互;另一部分為pvm 接口庫(pvm lib ,它為PVM 任務(wù)提供一個(gè)采用消息傳遞方式的API 接口,支持C 語言和FORTRAN 語言.

3、PVM 設(shè)計(jì)的目的是在一個(gè)異構(gòu)環(huán)境下實(shí)現(xiàn)可伸縮的并行計(jì)算.到目前為止,PVM 虛擬機(jī)中已經(jīng)能夠加入40多種不同體系結(jié)構(gòu)的機(jī)器,包括一般的Unix 工作站,共享存儲并行機(jī)和MPP.總的來看,PVM 需要一個(gè)多任務(wù)的操作系統(tǒng)平臺,以便生成多個(gè)PVM 進(jìn)程,實(shí)現(xiàn)其虛擬并行機(jī)的功能.以前這個(gè)多任務(wù)的操作系統(tǒng)平臺都是基于Unix 或Liunx 的,但由于Windows 亦是32位的多任務(wù)操作系統(tǒng)且基于Windows 的PC 機(jī)在數(shù)量上遠(yuǎn)遠(yuǎn)超過基于Unix 或Liunx 的機(jī)器,因此,PVM 在Win32上的應(yīng)用為基于消息傳遞的并行計(jì)算的普及和應(yīng)用提供了一條新的途徑,事實(shí)上,由于PC 機(jī)面廣量大,加之PC

4、 機(jī)所用CPU 速度的迅速升級,由高速網(wǎng)絡(luò)互連的多臺計(jì)算機(jī)可形成強(qiáng)大的計(jì)算能力.本文介紹在Windows2000環(huán)境下PVM 的安裝,配置與編程,選用的PVM 版本為基于Windows 的PVM3.4beta6.2Windows2000環(huán)境下PVM 的安裝與配置PVM 并行編程環(huán)境的建立應(yīng)該說是比較容易的.PVM3.4beta6版本提供了安裝軟件包,只需按照其向?qū)О惭b即可成功(對于PVM3.4以前的版本則需要用戶添加一些環(huán)境變量.但是只安裝PVM 軟件包是不夠的,如果要聯(lián)機(jī)計(jì)算還需要安裝Wins ock RSH 和Wins ock RSH D/95這兩個(gè)軟件(Windows95/98/ME 下

5、或wins ock rshd/NT 這一個(gè)軟件(在Windows2000/NT/XP 下.rsh (rem ote shell 實(shí)際上是一個(gè)在本地啟動遠(yuǎn)程宿主機(jī)上應(yīng)用程序的一個(gè)實(shí)用命令,PVM 就是利用初啟機(jī)上rsh 命令來啟動遠(yuǎn)程宿主機(jī)上pvmd 的.但要使本地rsh 命令能正常工作還需得到遠(yuǎn)程宿主機(jī)上的rsh 監(jiān)控進(jìn)程rshd (rem ote shell dae 2m on 的支持.一般來說,rshd 是作為Windows 操作系統(tǒng)的一項(xiàng)服務(wù)來使用.在PVM 下配置虛擬機(jī)時(shí)必須首先啟動每臺節(jié)點(diǎn)機(jī)上的rshd 服務(wù),否則rsh 命令無法使用,虛擬機(jī)的配置當(dāng)然不會成功.2.1PV M 的安裝

6、運(yùn)行PVM3.4beta6自解壓軟件包,選擇PVM 安裝文件的存放路徑后,程序自動運(yùn)行安裝文件,然后按照屏幕提示一步步操作即可.在安裝過程中需注意的問題是必須為PVM 指定一個(gè)運(yùn)行的臨時(shí)目錄(例如c :tem p ,該目錄用于存放PVM 運(yùn)行過程中的兩個(gè)日志文件pvmd.uid 和pvml.第26卷第4期2004年12月湖北大學(xué)學(xué)報(bào)(自然科學(xué)版Journal of Hubei University (Natural Science Edition V ol.26N o.4Dec.,2004uid ,其中uid 為用戶的Windows 登錄名.在啟動PVM 時(shí),該目錄一定要存在,否則PVM 無法

7、啟動.2.2Winsock RSH D/NT 的安裝從網(wǎng)上下載rshdnt-eval 自解壓軟件包,將其安裝在用戶硬盤的某一目錄下(例如c :wrshdnt .在安裝過程中可以選擇每次啟動Windows 時(shí)即啟動rshd 服務(wù).實(shí)際上用戶隨時(shí)可以通過“程序管理工具服務(wù)Rem ote Shell Daem on ”來啟動或停止rshd 服務(wù).2.3PV M 并行計(jì)算環(huán)境的建立a.啟動所有機(jī)器上的rshd 服務(wù).b.利用一臺機(jī)器作為master host 啟動PVM.c.在PVM 控制臺用add 命令添加節(jié)點(diǎn)機(jī).命令格式如下:pvm >add “主機(jī)名dx =c :pvm3.4lib win

8、32pvmd3.exe ”.d.可以用控制臺命令wn f 來查看目前虛擬機(jī)配置情況.2.4PV M 無法正常啟動或節(jié)點(diǎn)機(jī)無法添加的原因分析a.PVM 的臨時(shí)工作目錄是否已建立, 該目錄的位置與安裝PVM 時(shí)的設(shè)置一致.b.網(wǎng)絡(luò)是否通暢,可以用rsh 命令來測試一下.例如c :>rsh 主機(jī)名dir c : ( 列出指定遠(yuǎn)程主機(jī) 上的C 盤根目錄.c. 所要添加的節(jié)點(diǎn)機(jī)上的rshd 服務(wù)是否已啟動 .d. PVM 臨時(shí)目錄下的pvmd. uid 文件是否已刪除.該文件是運(yùn)行PVM 不正常退出留下的(若該文件存在,PVM 會認(rèn)為pvmd 正在運(yùn)行,因此會發(fā)出“不能啟動pvmd ”的消息.3P

9、VM 的編程模式PVM 應(yīng)用程序常采用“群型”計(jì)算模式,這種模式從程序的結(jié)構(gòu)上又可分為兩種,即主從模式和對等模式.主從模式又稱為Master/Slave 模式.在這種模式的應(yīng)用程序中,單獨(dú)執(zhí)行控制程序的一個(gè)進(jìn)程稱為主進(jìn)程(master .負(fù)責(zé)生成其它進(jìn)程,初始化,收集并顯示結(jié)果等.執(zhí)行從程序的若干進(jìn)程稱為從進(jìn)程(slave ,由主進(jìn)程生成,做實(shí)際的計(jì)算,它們的工作負(fù)載由主進(jìn)程分配或由從進(jìn)程本身分配.對等模式又稱為SPMD 模式.在這種模式的應(yīng)用程序中,所有進(jìn)程都執(zhí)行同一個(gè)程序,但計(jì)算的數(shù)據(jù)不同.其中,有一個(gè)進(jìn)程在完成自己的計(jì)算任務(wù)的同時(shí)還負(fù)責(zé)非計(jì)算的功能,比如初始化,收集并顯示結(jié)果等,具體選用

10、哪種模式應(yīng)視具體應(yīng)用而定.3.1Master/Slave 并行程序的基本框架如果選用Master/Slave 編程模式編寫應(yīng)用程序,需要分別編寫master 程序和slave 程序.主進(jìn)程(第一個(gè)啟動執(zhí)行master 程序,各個(gè)子進(jìn)程(由主進(jìn)程派生分別執(zhí)行各自的slave 程序.Master 程序和slave 程序各自的程序框架分別如下所示:結(jié)束退出PV M 接收各slave 的運(yùn)算結(jié)果并歸約顯示發(fā)送或廣播發(fā)送打包待發(fā)送數(shù)據(jù)初始化發(fā)送緩沖區(qū)初始化數(shù)據(jù)派生子進(jìn)程開始圖1Master 程序基本框架結(jié)束退出PV M 向master 發(fā)送運(yùn)算結(jié)果打包待發(fā)送運(yùn)算結(jié)果初始化發(fā)送緩沖區(qū)進(jìn)行特定的slave

11、計(jì)算從父進(jìn)程接受數(shù)據(jù)取得父進(jìn)程號開始圖2S lave 程序基本框架892湖北大學(xué)學(xué)報(bào)(自然科學(xué)版第26卷3.2SPMD 并行程序的基本框架PVM 支持進(jìn)程(任務(wù)組(G ROUP 的概念,在一個(gè)任務(wù)組中可包含多個(gè)任務(wù).任務(wù)組的引入有助于對組中任務(wù)進(jìn)行廣播,設(shè)置路障及施行全局計(jì)算.每個(gè)任務(wù)加入一個(gè)組都獲得一個(gè)成員號,從0號開始遞增.SPMD 模式的并行應(yīng)用程序采用任務(wù)組機(jī)制.第一個(gè)啟動的應(yīng)用程序拷貝負(fù)責(zé)創(chuàng)建任務(wù)組且獲得成員號0,同時(shí)還負(fù)責(zé)啟動其它應(yīng)用程序拷貝并完成一些非計(jì)算任務(wù),如初始化,歸約運(yùn)算結(jié)果等.下面是典型SPMD 并行應(yīng)用程序的基本框架.begin pvm -joingroup (gro

12、upname ;/3如果任務(wù)組不存在則創(chuàng)建該組,否則加入該組3/pvm -parent (;/3獲得父進(jìn)程的tid 3/if 組成員號=0then pvm -spawn (;/3啟動其它應(yīng)用程序拷貝3/一些非計(jì)算任務(wù),如輸入,初始化等;endif for 所有進(jìn)程pardo 在各自的數(shù)據(jù)區(qū)進(jìn)行計(jì)算;endfor if 組成員號 =0then 歸約各進(jìn)程的運(yùn)算結(jié)果并輸出;endif pvm -barrier (;/3同步所有進(jìn)程3 /pvm -lvgroup (;/3離開任務(wù)組3/pvm -exit (;/3退出PVM 3/end4PVM 編程實(shí)例下面通過兩個(gè)PVM 應(yīng)用程序?qū)嵗?對PVM 的兩

13、種編程模式作進(jìn)一步說明.4.1Master/Slave 應(yīng)用程序?qū)嵗旅媸且粋€(gè)依據(jù)公式/4=1-1/3+1/5-1/7+1/9-計(jì)算的C 語言程序,由一個(gè)master 程序和兩個(gè)slave 程序組成.slave 程序1負(fù)責(zé)計(jì)算1/5+1/9+1/13+,slave 程序2負(fù)責(zé)計(jì)算1/3+1/7+1/11+;master 程序負(fù)責(zé)啟動slave 程序并收集運(yùn)算結(jié)果.master 程序#include “pvm3.h ”v oid main (int chidtid1,childtid2,msgtag ,n ;double sum1,sum2;pvm -spawn (“slave1”,(char

14、330,0,1,&childtid1;/3啟動slave1進(jìn)程3/pvm -spawn (“slave2”,(char 330,0,1,&childtid2;/3啟動slave2進(jìn)程3/printf (“entre n ;”;scan f (“%d ”,&n ;msgtag =1;/3發(fā)送數(shù)據(jù)給slave13/pvm -initsend (PvmDataRaw ;pvm -pkint (&n ,1,1;pvm -send (childtid1,msgtag ;msgtag =2;/3發(fā)送給數(shù)據(jù)給slave23/pvm -initsend (PvmDataRaw

15、;pvm -pkint (&n ,1,1;992第4期柯艷明等:Windows 下PVM 的安裝、配置與編程pvm-send(childtid2,msgtag;msgtag=3;/3接收slave1送來的運(yùn)算結(jié)果3/pvm-recv(childtid1,msgtag;pvm-upkdouble(&sum1,1,1;msgtag=4;/3接收slave2送來的運(yùn)算結(jié)果3/pvm-recv(childtid2,msgtag;pvm-upkdouble(&sum2,1,1;printf(“pi is approximately%fn”,43(sum1-sum2;slave程序

16、1#include“pvm3.h”v oik main(int i,n,ptid;double sum=0.0;ptid=pvm-parent(;/3 獲得父進(jìn)程的tid3/msgtag=1;while(pvm-nrecv(ptid,msgtag=0;/3如數(shù)據(jù)未到達(dá)則循環(huán)等待3/pvm-upkdouble(&n,1,1/3解數(shù)據(jù)包3/for(i=1,i<=n:i+=4sun+=1.0/(i+4;mastag=3;/3向父進(jìn)程發(fā)送計(jì)算結(jié)果3/pvm-inistend(PvmDataRaw;pvm-pkdouble(&sum,1,1;pvm-send(ptid,msgtag

17、;pvm-exit(;/3退出PVM3/slave程序2#include“pvm3.h”v oik main(int i,n,ptid;double sum=0.0;ptid=pvm-parent(;msgtag=2while(pvm-nrecv(ptid,msgtag=0;pvm-upkdouble(&n,1,1;for(i=1,i<=n:i+=4sun+=1.0/(i+2;mastag=4;pvm-initsend(PvmDataRaw;pvm-pkdouble(&sum,1,1;pvm-send(ptid,msgtag;pvm-exit(;4.2SPMD應(yīng)用程序?qū)嵗?/p>

18、下面是一個(gè)用數(shù)值積分法計(jì)算的C語言程序段1,它是一個(gè)SPMD程003湖北大學(xué)學(xué)報(bào)(自然科學(xué)版第26卷序.用數(shù)值積分法計(jì)算,就是要求出在區(qū)間0,1內(nèi)函數(shù)曲線4/(1+x 2的面積.為此先將區(qū)間0,1劃分成N 個(gè)等間隔的子區(qū)間并把每個(gè)子區(qū)間近似為矩形,顯然各個(gè)子區(qū)間的面積之和就是的近似值.本程序共定義16個(gè)進(jìn)程來完成這項(xiàng)工作.第1個(gè)進(jìn)程負(fù)責(zé)計(jì)算第1個(gè)小矩形面積+第17個(gè)小矩形面積+第33個(gè)小矩形面積+,第2個(gè)進(jìn)程負(fù)責(zé)計(jì)算第2個(gè)小矩形面積+第18個(gè)小矩形面積+第34個(gè)小矩形面積+,如此類推.#define n 16/3定義進(jìn)程數(shù)為163/#include “pvm3.h ”v oid main (i

19、nt tidsn ,me ,i ,N ,parent ;double mypi ,h ,sum =0.0.x ;me =pvm -joingroup (“pi ”;/3本進(jìn)程加入任務(wù)組pi 并獲得自己的成員號3/parent =pvm -parent (;/3獲得父進(jìn)程號3/if (me =0/3組成員號為0的進(jìn)程負(fù)責(zé)啟動其它進(jìn)程并完成數(shù)據(jù)N 的輸入工作,同時(shí)還把N 向其余所有進(jìn)程廣播3/pvm -spawn (“pi ”,(char 330,0,”,n -1,tids ;printf (“enter the nurnber of regions :”;scan f (“%d ”,&N

20、 ;pvm -initsend (PvmDataRaw ;pvm -pkint (&N ,1,1;pvm -mcast (tids ,n -1,5;else/3組成員號為非0的進(jìn)程從父進(jìn)程處接收數(shù)據(jù)3/pvm -recv (parent ,5;pvm -upkint (&N ,1,1;h =1.0/(double N ;/3各進(jìn)程在各自的數(shù)據(jù)區(qū)進(jìn)行計(jì)算3/for (i =me +1,i <=N ,i +=n x =h 3(double i -0.5;sun +4.0/(1.0+x 3x ;mypi =h 3sum ;pvm -reduce (Pvmsum ,&my

21、pi ,1,PVM -DOUBLE ,6,“pi ”,0;/3各進(jìn)程把運(yùn)算結(jié)果歸約到組成員號為0的進(jìn)程3/if (me =0printf (“pi is approximately %f n ”,my pi ;/3組成員號為0的進(jìn)程輸出運(yùn)算結(jié)果3/pvm -barrier (;/3各進(jìn)程在離開任務(wù)組之前在此同步3/pvm -lvgroup (;/3離開任務(wù)組3/pvm -exit (;/3退出PVM 3/5結(jié)束語網(wǎng)絡(luò)并行計(jì)算是實(shí)現(xiàn)大規(guī)模、高性能計(jì)算的重要技術(shù)之一,對并行算法的理論研究特別是加速比、可擴(kuò)展性和計(jì)算復(fù)雜性都有重要意義,也比較適合我國國情.本文的內(nèi)容屬PVM 最基本的技術(shù),也是我們研

22、究工作的開端.目前我們正把多Agent 的理論方法和技術(shù)與PVM 提供的并行及分布式計(jì)算(處理環(huán)境相結(jié)合研究分布式人工智能中的應(yīng)用問題,如并行符號處理、分布式專家數(shù)據(jù)庫系統(tǒng)、分布式數(shù)據(jù)庫的自然語言接口和基于PVM 的專家系統(tǒng)開發(fā)工具(分布式Clips 等.103第4期柯艷明等:Windows 下PVM 的安裝、配置與編程302 湖北大學(xué)學(xué)報(bào) ( 自然科學(xué)版 第 26 卷 參考文獻(xiàn) : 1 陳國良 . 并行計(jì)算 結(jié)構(gòu) 算法 編程 M . 北京 : 高等教育出版社 ,2000. 348349. The installation ,configuration and programming of P

23、VM based on widows (1. Scool of Mathematics and Computer Science ,Hubei University ,Wuhan 430062 ,China ; 2. College of Computer and Software ,Beijing Broadcasting Institute ,Beijing 100024 ,China 2 Abstract :Consider the regression model : y i = x + g ( t i +ei , 1 i n , wher i = f ( ui , ( x i , t

24、 i , ui i i are known and nonrandom design points , is an unknown parameter to be estimated , g and f are unknown func2 tions ,and the errors ei are negative quadrant dependent random sequence. Strong consistency for the least squares estimator ,the weighted least squares estimator and the ultimate wighted least squares estimato

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論