資源描述:
《關(guān)于vc++60安裝配置MPI.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、關(guān)于在vc++6.0中安裝配置MPI1、下載安裝MPICH,安裝過程中最好把密碼設(shè)置為自己的開機(jī)密碼關(guān)于安裝完成后設(shè)置對(duì)MPICH2的wmpiregister.exe設(shè)置用戶名密碼,是計(jì)算機(jī)名和開機(jī)密碼可以來個(gè)簡單的測試,打開wmpirexec.exe在application中添加ProgramFiles(x86)MPICH2examples中例子,選中“runinanseparatewindow”然后點(diǎn)擊execute…(如果有問題,有可能是wmpiregister.exe用戶名設(shè)置的問題)現(xiàn)在設(shè)置vc++6.0-------------------------------
2、-----------------------------------2、打開vc++6.0在(工具-選項(xiàng)-目錄)把mpich相對(duì)應(yīng)的include和lib添加到includefiles3、新建一個(gè)工程,可以寫mpitest.cpp,為了避免宏定義沖突,在#include”mpi.h”之前要加入#includeMPICH_SKIP_MPICXX(這樣就可以通過編譯)4、編譯通過了,但是鏈接仍然會(huì)出錯(cuò)繼續(xù)設(shè)置(在工程—>設(shè)置->鏈接中的對(duì)象/庫模板塊后加入mpi.lib)上圖這樣就可以通過鏈接了(每次建工程都要加入mpi.lib的操作)再貼一個(gè)簡單的例子吧#defineMPICH_
3、SKIP_MPICXX#include"mpi.h"#include#includedoublef(double);doublef(doublea){return(4.0/(1.0+a*a));}intmain(intargc,char*argv[]){intdone=0,n,myid,numprocs,i;doublePI25DT=3.1493238462643;doublemypi,pi,h,sum,x;doublestartwtime=0.0,endwtime;intnamelen;charprocessor_name[MPI_MAX_PR
4、OCESSOR_NAME];MPI_Init(&argc,&argv);MPI_Comm_size(MPI_COMM_WORLD,&numprocs);MPI_Comm_rank(MPI_COMM_WORLD,&myid);MPI_Get_processor_name(processor_name,&namelen);/*fprintf(stdout,"Process%dof%dison%s",myid,numprocs,processor_name);fflush(stdout);*/while(!done){if(myid==0){fprintf(stdout,"Ente
5、rthenumberofintervals:(0quits)");fflush(stdout);if(scanf("%d",&n)!=1){fprintf(stdout,"Nonumberentered;quitting");n=0;}startwtime=MPI_Wtime();}MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD);if(n==0)done=1;else{h=1.0/(double)n;sum=0.0;for(i=myid+1;i<=n;i+=numprocs){x=h*((double)i-0.5);sum+=f(x);}my
6、pi=h*sum;MPI_Reduce(&mypi,&pi,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);if(myid==0){printf("piisapproximately%.16f,Erroris%.16f",pi,fabs(pi-PI25DT));endwtime=MPI_Wtime();printf("wallclocktime=%f",endwtime-startwtime);fflush(stdout);}}}MPI_Finalize();return0;}