}t1 = MPI_Wtime();for(k=1;k<=8;k++){switch(k){case 1: MPI_Send(a1,4,MPI_INT,1,101,MPI_COMM_WORLD);MPI_Send(b1,4,MPI_INT,1,102,MPI_COMM_WORLD);break;case 2: MPI_Send(a2,4,MPI_INT,2,101,MPI_COMM_WORLD);MPI_Send(b2,4,MPI_INT,2,102,MPI_COMM_WORLD);break;case 3: MPI_Send(a1,4,MPI_INT,3,101,MPI_COMM_WORLD);MPI_Send(b3,4,MPI_INT,3,102,MPI_COMM_WORLD);break;case 4: MPI_Send(a2,4,MPI_INT,4,101,MPI_COMM_WORLD);MPI_Send(b4,4,MPI_INT,4,102,MPI_COMM_WORLD);break;case 5: MPI_Send(a3,4,MPI_INT,5,101,MPI_COMM_WORLD);MPI_Send(b1,4,MPI_INT,5,102,MPI_COMM_WORLD);break;case 6: MPI_Send(a4,4,MPI_INT,6,101,MPI_COMM_WORLD);MPI_Send(b2,4,MPI_INT,6,102,MPI_COMM_WORLD);break;case 7: MPI_Send(a3,4,MPI_INT,7,101,MPI_COMM_WORLD);MPI_Send(b3,4,MPI_INT,7,102,MPI_COMM_WORLD);break;case 8: MPI_Send(a4,4,MPI_INT,8,101,MPI_COMM_WORLD);MPI_Send(b4,4,MPI_INT,8,102,MPI_COMM_WORLD);break;}}for(k=1;k<=7;k+=2){l=k+1;MPI_Recv(d1,4,MPI_INT,k,201,MPI_COMM_WORLD,&stat);MPI_Recv(d2,4,MPI_INT,l,201,MPI_COMM_WORLD,&stat);add(d1,d2,ans[inc],2);printf("\nProcessor %d and %d:\n",k,l);for(i=0;i<2;i++){for(j=0;j<2;j++)printf("\t%d",ans[inc][i][j]);printf("\n");
Leave a Comment