欢迎来到天天文库
浏览记录
ID:38496519
大小:44.50 KB
页数:7页
时间:2019-06-13
《矩阵求逆的并行算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.矩阵求逆的并行算法:#include"stdio.h"#include"stdlib.h"#include"mpi.h"#defineintsizesizeof(int)#definefloatsizesizeof(float)#defineA(x,y)A[x*N+y]#defineQ(x,y)Q[x*N+y]#definea(x,y)a[x*N+y]#definef(x)f[x]float*A,*Q;float*a,*f;intN,v,m;intp;intmyid;MPI_Statusstatus;FILE*dataFile;doublestarttime,endtime,t
2、ime1;voidreadData(){inti,j;starttime=MPI_Wtime();dataFile=fopen("dataIn.txt","r");fscanf(dataFile,"%d",&N);A=(float*)malloc(floatsize*N*N);for(i=0;i3、{for(j=0;j4、starttime);printf("Distributedatatime=%fseconds",time1-starttime);printf("Parallelcomputetime=%fseconds",endtime-time1);dataFile=fopen("dataOut.txt","w");fprintf(dataFile,"Inputoffile"dataIn.txt"");fprintf(dataFile,"%d",N);for(i=0;i5、i,j));}fprintf(dataFile,"");}fprintf(dataFile,"OutputofMatrixA'sinversion");for(i=0;i6、aFile,"Distributedatatime=%fseconds",time1-starttime);fprintf(dataFile,"Parallelcomputetime=%fseconds",endtime-time1);fprintf(dataFile,"ParallelProcessnumber=%d",p);fclose(dataFile);}voidbroadcast(inti,intj,intv){intk;if(myid==j){a(i,v)=(float)(1/a(i,v));for(k=0;k7、=a(i,k)*a(i,v);}}for(k=0;k
3、{for(j=0;j4、starttime);printf("Distributedatatime=%fseconds",time1-starttime);printf("Parallelcomputetime=%fseconds",endtime-time1);dataFile=fopen("dataOut.txt","w");fprintf(dataFile,"Inputoffile"dataIn.txt"");fprintf(dataFile,"%d",N);for(i=0;i5、i,j));}fprintf(dataFile,"");}fprintf(dataFile,"OutputofMatrixA'sinversion");for(i=0;i6、aFile,"Distributedatatime=%fseconds",time1-starttime);fprintf(dataFile,"Parallelcomputetime=%fseconds",endtime-time1);fprintf(dataFile,"ParallelProcessnumber=%d",p);fclose(dataFile);}voidbroadcast(inti,intj,intv){intk;if(myid==j){a(i,v)=(float)(1/a(i,v));for(k=0;k7、=a(i,k)*a(i,v);}}for(k=0;k
4、starttime);printf("Distributedatatime=%fseconds",time1-starttime);printf("Parallelcomputetime=%fseconds",endtime-time1);dataFile=fopen("dataOut.txt","w");fprintf(dataFile,"Inputoffile"dataIn.txt"");fprintf(dataFile,"%d",N);for(i=0;i5、i,j));}fprintf(dataFile,"");}fprintf(dataFile,"OutputofMatrixA'sinversion");for(i=0;i6、aFile,"Distributedatatime=%fseconds",time1-starttime);fprintf(dataFile,"Parallelcomputetime=%fseconds",endtime-time1);fprintf(dataFile,"ParallelProcessnumber=%d",p);fclose(dataFile);}voidbroadcast(inti,intj,intv){intk;if(myid==j){a(i,v)=(float)(1/a(i,v));for(k=0;k7、=a(i,k)*a(i,v);}}for(k=0;k
5、i,j));}fprintf(dataFile,"");}fprintf(dataFile,"OutputofMatrixA'sinversion");for(i=0;i6、aFile,"Distributedatatime=%fseconds",time1-starttime);fprintf(dataFile,"Parallelcomputetime=%fseconds",endtime-time1);fprintf(dataFile,"ParallelProcessnumber=%d",p);fclose(dataFile);}voidbroadcast(inti,intj,intv){intk;if(myid==j){a(i,v)=(float)(1/a(i,v));for(k=0;k7、=a(i,k)*a(i,v);}}for(k=0;k
6、aFile,"Distributedatatime=%fseconds",time1-starttime);fprintf(dataFile,"Parallelcomputetime=%fseconds",endtime-time1);fprintf(dataFile,"ParallelProcessnumber=%d",p);fclose(dataFile);}voidbroadcast(inti,intj,intv){intk;if(myid==j){a(i,v)=(float)(1/a(i,v));for(k=0;k7、=a(i,k)*a(i,v);}}for(k=0;k
7、=a(i,k)*a(i,v);}}for(k=0;k
此文档下载收益归作者所有