Mpi程序代码.docx
文本预览下载声明
曲边梯形#includestdio.h#includempi.hdouble f(double x){return(4*x*x+3*x+8);}void main(intargc,char*argv[]){inti,rank,size,m,n=1024;double a=0,b=3,x1,x2,h,local_sum=0,total_sum=0;MPI_Init(argc,argv);MPI_Comm_size(MPI_COMM_WORLD,size);MPI_Comm_rank(MPI_COMM_WORLD,rank);m=n/size;h=(b-a)/(double)n;for(i=rank;in;i+=size){x1=i*h+a;x2=(i+1)*h+a;local_sum+=h*(f(x1)+f(x2))/2;}MPI_Reduce(local_sum,total_sum,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);if(rank==0)printf(total_sum=%f\n,total_sum);MPI_Finalize();}Bcast#includestdio.h#includempi.hdouble f(double x){return(4*x*x+3*x+8);}void main(intargc,char*argv[]){inti,rank,size,n;double a=0,b=3,x1,x2,h,local_sum=0,total_sum=0;MPI_Init(argc,argv);MPI_Comm_rank(MPI_COMM_WORLD,rank);MPI_Comm_size(MPI_COMM_WORLD,size);if(rank==0){printf(please input n);scanf(%d,n);}MPI_Bcast(n,1,MPI_INT,0,MPI_COMM_WORLD);h=(b-a)/(double)n;for(i=rank;in;i+=size){x1=i*h+a;x2=(i+1)*h+a;local_sum=h*(f(x1)+f(x2))/2;}MPI_Reduce(local_sum,total_sum,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);if(rank==0)printf(total_sum=%f\n,total_sum);MPI_Finalize();}Pi#includestdio.h#includempi.hdouble f(double a){return(4/(1+(a*a)));}void main(intargc,char*argv[]){intsize,rank,i,n;double t1,t2,time;doublelocal_sum=0,total_sum=0,h,x;MPI_Init(argc,argv);MPI_Comm_size(MPI_COMM_WORLD,size);MPI_Comm_rank(MPI_COMM_WORLD,rank);if(rank==0){printf(please input a number\n);scanf(%d,n);t1=MPI_Wtime();}MPI_Bcast(n,1,MPI_INT,0,MPI_COMM_WORLD);h=1.0/(double)n;for(i=rank+1;i=n;i+=size){x=h*((double)i-0.5);local_sum+=h*f(x);}MPI_Reduce(local_sum,total_sum,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);t2=MPI_Wtime();if(rank==0)printf(pi=%f time:%f\n,total_sum,t2-t1);MPI_Finalize();}Introduce#includestdio.h#includempi.hvoid main(intargc,char*argv[]){doublestart_time,end_time,total_time;double tick;char name[50];intresult,version,subversion;int rank;MPI_Init(argc,argv);MPI_Comm_rank(MPI_COMM_WORLD,rank);start_time=MPI_Wtime();sleep(5);MPI_Get_processor_name(name,result);MPI_Get_version(version,subversion);end
显示全部