正在加载图片...
e(z)-sl+ emp1[0=0.0 empl[1=0.0 e(zilFziz] templ[2]}=0.0, 1/ if myid =current * tempI[3]=0.0, 1/ forv * MPI Allgather(temp1, 4, i / for ij*/ MPI FLOAT, temp2, 4 MPI FLOAT MPI COMM WORLD) *第2p-1次数据交换 for(v=l; v<=p v++) MPI Send(&(a(m/, 0), m/2N, cl=tmp2[(v-1)”4+1 MPI FLOAT, myid+ l, myid+I il=temp2[(v-1)*4+2] MPI COMM WORLD) jl=temp2[(v-1)*4+3 if((sl!=0.0)‖cl=00) MPI Send( &(e(m/2, 0)), m/2N, I(1=OGI=o)) MPI FLOAT,myid+ 1, myid+I MPI COMM WORLD) if(midl=current MPI COMM WORLD); zi[zFa(zil) MPI COMM WORLD a(zdF a zjl)- MPI Recv(&(e(m/2, 0),m/2 1, myid MPI COMM WORLD &status) af(z, ilFziz I Recv(&b(m/2), m/2,,MPI INT, MPI COMM WORLD e(zjlFcl* if(myid=p-l)&&(myid%21=o))else { temp1[0]=0.0; temp1[1]=0.0; temp1[2]=0.0; temp1[3]=0.0; } MPI_Allgather(temp1,4, MPI_FLOAT,temp2,4, MPI_FLOAT, MPI_COMM_WORLD); current=0; for(v=1;v<=p;v++) { s1=temp2[(v-1)*4+0]; c1=temp2[(v-1)*4+1]; i1=temp2[(v-1)*4+2]; j1=temp2[(v-1)*4+3]; if ((s1!=0.0)||(c1!=0.0) ||(i1!=0)||(j1!=0)) { if (myid!=current) { for(z=0;z<m;z++) { zi[z]=a(z,i1) *c1 + a(z, j1) *s1; a(z,j1)= c1* a(z,j1)- s1 * a(z,i1); } for(z=0;z<m;z++) a(z,i1)=zi[z]; for(z=0;z<m;z++) zi[z]=e(z,i1) *c1+ e(z,j1) *s1; for(z=0;z<m;z++) e(z,j1)= c1* e(z,j1)- s1* e(z,i1); for(z=0;z<m;z++) e(z,i1)=zi[z]; } /* if myid!=current */ } /* if */ current=current+1; } /* for v */ } /* for i,j */ } /* counter */ /*第 2p-1 次数据交换*/ if (myid==0) { MPI_Send(&(a(m/2,0)),m/2*N, MPI_FLOAT,myid+1,myid+1, MPI_COMM_WORLD); MPI_Send(&(e(m/2,0)),m/2*N, MPI_FLOAT,myid+1,myid+1, MPI_COMM_WORLD); MPI_Send(&b(m/2),m/2,MPI_INT, myid+1,myid+1, MPI_COMM_WORLD); MPI_Recv(&(a(m/2,0)),m/2*N, MPI_FLOAT,myid+1,myid, MPI_COMM_WORLD, &status); MPI_Recv(&(e(m/2,0)),m/2*N, MPI_FLOAT,myid+1,myid, MPI_COMM_WORLD, &status); MPI_Recv(&b(m/2),m/2,MPI_INT, myid+1,myid, MPI_COMM_WORLD, &status); } if ((myid==p-1)&&(myid%2!=0))
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有