版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算科學(xué)與工程中的并行編程技術(shù)Parallel Programming Technology in Computational Science and Engineering 都志輝清華大學(xué)計(jì)算機(jī)系 Email : Phone: 62782530http:/ main(int argc, char* agrv)nnint curid, recvid, sendid, procsNum, msgsize;nchar* sendmsg;nchar* recvmsg;nnMPI_Status status;nnMPI_Init(&argc, &argv);nMPI_Comm_rank(MPI_COM
2、M_WORLD, &curid);nsendmsg = SetMsg(&msgsize, curid);nrecvmsg = (char*)malloc(msgsize);nMPI_Comm_size(MPI_COMM_WORLD, &procsNum);nfor(int i = 0; i prcsNum; i +)nnif ( i = curid )nnsendid = (i + argc) % procsNum;nrecvid = (i - argc + procsNum) % procsNum;nMPI_Send(sendmsg, msgsize, MPI_CHAR, sendid, 1
3、00, MPI_COMM_WORLD);nMPI_Recv(recvmsg, msgsize, MPI_CHAR, recvid, 100, MPI_COMM_WORLD, &status);nif ( recvmsg0 != 0)nprintf(進(jìn)程%d發(fā)送消息%s給進(jìn)程%d, recvid, recvmsg, curid);nnnMPI_Finalize();nreturn 0;n作業(yè)實(shí)例n#include mpi.hn#include n#include nvoid main(argc,argv)nint argc;char* argv;nnint N,K,myid;nint sendi
4、d,dest;nchar* data=(char*)malloc(25*sizeof(char);nint i=8,n;nstrcpy(data,hello!);nn=strlen(data);nitoa(i,temp,1);ndatan=*temp;ndatan+1=0;nK=(int)argv1;nMPI_Status status;nMPI_Init(&argc,&argv);nMPI_Comm_size(MPI_COMM_WORLD,&N);nMPI_Comm_rank(MPI_COMM_WORLD,&myid);nndest=(myid+K)%N;nMPI_Send(data,1,M
5、PI_INT,dest,100,MPI_COMM_WORLD);nMPI_Recv(data,1,MPI_INT,MPI_ANY_SOURCE,100,MPI_COMM_WORLD,&status);nprintf(進(jìn)程d發(fā)送消息s給進(jìn)程d,(int)data18,data,myid);nMPI_Finalize();n作業(yè)實(shí)例n#include mpi.hn#include n#include nconst int K=1;nint main(int argc,char *argv)nint id,size;nMPI_Status status;nchar message50;nMPI_In
6、it(&argc,&argv);nMPI_Comm_rank(MPI_COMM_WORLD,&id);nMPI_Comm_size(MPI_COMM_WORLD,&size);nsprintf(message,HELLO!My rank is %d,id);nMPI_Send(message,strlen(message)+1,MPI_CHAR,(id+K)%size,0,MPI_COMM_WORLD);nMPI_Recv(message,50,MPI_CHAR,(id-K+size)%size,0,MPI_COMM_WORLD,&status);nfprintf(stderr,進(jìn)程%d發(fā)送消
7、息%s給進(jìn)程%dn,(id-K+size)%size,message,id);nMPI_Finalize();nMPICH簡(jiǎn)介/mpi/mpich1/n完成者nArgonne National LaboratorynMississippi State Universityn最廣泛使用的一個(gè)MPI實(shí)現(xiàn)版本n目前發(fā)展與MPI-1同步發(fā)展支持MPI-2(MPICH2)基于Linux系統(tǒng)的MPICHnMPICH包的獲取n/mpi/mpich1/download.htmln安裝n解壓: tar zxv
8、f mpich.tar.gznRedhat 完全安裝n配置和編譯:cd mpich;./configure;make; make installn設(shè)置路徑: 將 mpich/bin 加入缺省查找路徑基于Linux系統(tǒng)的MPICH(續(xù)) 目錄結(jié)構(gòu)mpich/bin 可執(zhí)行腳本mpich/doc 文檔mpich/examples 例子mpich/include 頭文件mpich/lib 庫(kù)mpich/man 參考手冊(cè)mpich/www 參考手冊(cè) 不同版本的目錄結(jié)構(gòu)是不同的 基于Linux系統(tǒng)的MPICH(續(xù))MPI程序的編譯MPI編譯器與本地編譯器的關(guān)系調(diào)用與包含關(guān)系mpiCC/mpicc/mpi
9、f77/mpif90C+/C/F77/F90-mpilog/-mpitrace 產(chǎn)生LOG或跟蹤文件-mpianim 產(chǎn)生實(shí)時(shí)動(dòng)畫-show 顯示編譯時(shí)產(chǎn)生的命令,但并不執(zhí)行-help 給出幫助信息-echo 顯示出當(dāng)前正在編譯聯(lián)接的命令信息mpiCC/mpicc/mpif77/mpif90 -o test test.cc/c/f/f90基于Linux系統(tǒng)的MPICH(續(xù))n建立MPI程序運(yùn)行所必需的信任機(jī)制n為什么要建立信任機(jī)制?n如何建立信任機(jī)制?n通過(guò)/etc/hosts.equiv文件建立信任機(jī)制n依次列出所信任的機(jī)器名或IP地址n例子1,例子2n通過(guò).rhosts文件建立信任機(jī)制n依
10、次列出機(jī)器名及其相應(yīng)的帳戶n例子基于Linux系統(tǒng)的MPICH(續(xù))n文件準(zhǔn)備n需要哪些文件?n如何準(zhǔn)備?n復(fù)制可執(zhí)行程序和相關(guān)數(shù)據(jù)n將可執(zhí)行程序和所需要的數(shù)據(jù)文件拷貝到指定機(jī)器的指定位置nrcp cpi tp1:/home/mpi/mpich/examples/basic/.nrcp 源 目 源/目 機(jī)器名:路徑n問題n是否一定要拷貝文件?基于Linux系統(tǒng)的MPICH(續(xù))nMPI程序的執(zhí)行n使用缺省配置文件 mpirun -np N executive_file 缺省配置文件,使用缺省路徑n使用指定配置文件 mpirun -p4pg confile executive_file 使用指定
11、機(jī)器指定賬戶指定路徑下的指定文件nmpirun machinefile mf executive_file 指定配置文件,使用缺省路徑n幫助命令 mpiman基于Linux系統(tǒng)的MPICH(續(xù))n例子cd mpich/examples/basicmake cpimpirun -np 4 cpi使用mpich/util/machines/machine.LINUX作為配置文件或者mpirun -p4pg confile cpi基于Linux系統(tǒng)的MPICH(續(xù))n配置文件confile為myhost 0 mpich/examples/basic/cpimyhost 1 mpich/example
12、s/basic/cpimyhost 1 mpich/examples/basic/cpimyhost 1 mpich/examples/basic/cpi用一臺(tái)機(jī)器模擬四臺(tái)機(jī)器運(yùn)行基于WINDOWS系統(tǒng)的MPICHn下載/pub/mpi/nt/mpich.nt.1.X.X.X.all.zip/pub/mpi/nt/mpich.nt.1.X.X.zipn解壓并安裝(WIN2000)解壓zip文件setupc:Program FilesMPICHn編譯MPI程序頭文件:mpi.h/mpif.h庫(kù) : ws2_32.li
13、b mpich.lib pmpich.lib romio.lib基于WINDOWS系統(tǒng)的MPICH(續(xù))n配置與運(yùn)行缺省配置MPIRun -np N executive_fileC:Program FilesMPICHmpdbin用MPIConfig進(jìn)行配置,選取參加計(jì)算的機(jī)器 C:Program FilesMPICHmpdbin 指定配置MPIRun configfile配置文件的寫法用MPIRegister進(jìn)行注冊(cè)(類似于Linux環(huán)境下的放權(quán))基于NT系統(tǒng)的MPICH(續(xù))n例子MPIRun -np 4 cpiMPIRun -localonly 4 cpi使用配置文件MPIRun con
14、file exe c:mpintcpi.exe hosts NT01 4基于Windows系統(tǒng)的MPICHn下載/mpi/mpich/download.html/pub/mpi/nt/mpich.nt.1.X.X.X.all.zip/pub/mpi/nt/mpich.nt.1.X.X.zipn解壓并安裝(WIN2000,XP)解壓zip文件setupc:Program FilesMPICHn編譯MPI程序頭文件:mpi.h/mpif.h庫(kù) : ws2_32.lib mpich.lib
15、pmpich.lib romio.libcreating a new MPICH project with MS Developer Studio 61.Open MS Developer Studio - Visual C+ 2.Create a new project with whatever name you want in whatever directory you want. The easiest one is a Win32 console application with no files in it.creating a new MPICH project with MS
16、 Developer Studio 63.Finish the new project wizard. 4.Go to Project-Settings or hit Alt F7 to bring up the project settings dialog box. 5.Change the settings to use the multithreaded libraries. Change the settings for both Debug and Release targets.creating a new MPICH project with MS Developer Stud
17、io 66.Set the include path for all target configurations: This should be MPICHSDKincludecreating a new MPICH project with MS Developer Studio 67.Set the lib path for all target configurations: This should be MPICHSDKlibcreating a new MPICH project with MS Developer Studio 68.Add the ws2_32.lib libra
18、ry to all configurations (This is the Microsoft Winsock2 library. Its in your default library path).Add mpich.lib to the release target and mpichd.lib to the debug target.creating a new MPICH project with MS Developer Studio 69.Close the project settings dialog box. 10.Add your source files to the p
19、roject11.Build LAM-MPI/a high-performance, freely available, open source implementation of the MPI standard that is researched, developed, and maintained at the Open Systems Lab at Indiana University.LAM 7.1.1 Release nPlatform:nAIX nIRIX nLinux nMac OS X nOpenBSD nSolaris nMicr
20、osoft Windows (Cygwin) LAM的安裝nshell$ gunzip -c lam-7.1.tar.gz | tar xf nshell$ cd lam-7.1# Set the desired C, C+, and Fortran compilers, unless using the GNU compilers is sufficient# (this example assumes a Bourne-like shell)nshell$ CC=ccnshell$ CXX=CCnshell$ FC=f77nshell$ export CC CXX FCnshell$ ./
21、configure -prefix=/directory/to/install/innshell$ makenshell$ make installn# The following step is optional. Ensure that $prefix/bin is in in your $path so that LAMs newly-created mpicc can be found before running this step.nshell$ make examplesLAM/MPIn啟動(dòng)LAM環(huán)境n執(zhí)行LAM的結(jié)點(diǎn)配置文件列表 “boot schema”, “hostfile
22、”, or “machinefile.”shell$ cat lamhosts cpu=4 the number of CPUs specified here has no correlation to the physicial number of CPUs in the machinenThe recon tool verifies that the cluster is bootable: shell$ recon -v lamhostsnThe lamboot tool actually starts LAM on the specified cluster. % lamboot -v
23、 lamhosts 檢查問題nWhich mpirunMpirun 命令nshell$ mpirun C hello在所有可得的CPU上運(yùn)行hello(SMP)nshell$ mpirun N hello每個(gè)結(jié)點(diǎn)運(yùn)行一個(gè)hellonshell$ mpirun -np 4 hello順序選擇的4個(gè)CPU上運(yùn)行helloLAM MPIn用配置文件運(yùn)行shell$ mpirun -v appfile c0 manager C worker starts a manager process on c0, and also starts a worker process on all CPUs that LAM was booted on c0 manager c1-8 worker 查看與終止n查看MPI應(yīng)用shell$ m
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物業(yè)管理改善協(xié)議3篇
- 小班音樂教案錦集10篇
- 雙十一營(yíng)銷活動(dòng)方案大全10篇
- 醫(yī)院護(hù)士演講稿(合集15篇)
- 軍訓(xùn)心得高一范文5篇
- 邀請(qǐng)活動(dòng)的邀請(qǐng)函八篇
- 感恩中學(xué)生演講稿三篇
- 會(huì)計(jì)的實(shí)習(xí)報(bào)告三篇
- 乒乓球比賽的作文400字合集7篇
- 保護(hù)水資源倡議書15篇
- 七年級(jí)上冊(cè)數(shù)學(xué)壓軸題幾何試卷(帶答案)
- 網(wǎng)絡(luò)安全保密教育知識(shí)普及培訓(xùn)課件
- 小學(xué)語(yǔ)文-部編版四年級(jí)語(yǔ)文上冊(cè)第六單元習(xí)作:記一次游戲教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 裝飾公司與項(xiàng)目經(jīng)理合作協(xié)議
- 接待上級(jí)領(lǐng)導(dǎo)工作總結(jié)
- 《新時(shí)代高校勞動(dòng)教育理論與實(shí)踐教程》教案 第9課 強(qiáng)化勞動(dòng)安全意識(shí)
- 小學(xué)數(shù)學(xué)項(xiàng)目化教學(xué)這:基于教學(xué)評(píng)一體化的大單元整體設(shè)計(jì)《測(cè)量》
- ACC-AHA-HRSICD治療適應(yīng)證指南
- 共享單車電動(dòng)車加盟城市代理協(xié)議模板
- 2024年上海市交大附中嘉定高二物理第一學(xué)期期末達(dá)標(biāo)檢測(cè)試題含解析
- 新版《電力設(shè)備典型消防規(guī)程》
評(píng)論
0/150
提交評(píng)論