1 int a[10], b[10], myrank; 2 MPI_Status status; 3 ... 4 MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 5 if (myrank == 0) { 6 MPI_Send(a, 10, MPI_INT, 1, 1, MPI_COMM_WORLD); 7 MPI_Send(b, 10, MPI_INT, 1, 2, MPI_COMM_WORLD); 8 } 9 else if (myrank == 1) { 10 MPI_Recv(b, 10, MPI_INT, 0, 2, MPI_COMM_WORLD); 11 MPI_Recv(a, 10, MPI_INT, 0, 1, MPI_COMM_WORLD); 12 } 13 ... |
1 int a[10], b[10], npes, myrank; 2 MPI_Status status; 3 ... 4 MPI_Comm_size(MPI_COMM_WORLD, &npes); 5 MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 6 MPI_Send(a, 10, MPI_INT,(myrank+1)%npes,1, MPI_COMM_WORLD); 7 MPI_Recv(b, 10, MPI_INT,(myrank-1+npes)%npes,1, MPI_COMM_WORLD); 8 ... |
1 int a[10], b[10], np, myrank; 2 MPI_Status status; 3 ... 4 MPI_Comm_size(MPI_COMM_WORLD, &np); 5 MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 6 if (myrank%2 == 1) { 7 MPI_Send(a,10,MPI_INT,(myrank+1)%np,1,MPI_COMM_WORLD); 8 MPI_Recv(b,10,MPI_INT,(myrank-1+np)%np,1,MPI_COMM_WORLD); 9 } 10 else { 11 MPI_Recv(b,10,MPI_INT,(myrank-1+np)%np,1,MPI_COMM_WORLD); 12 MPI_Send(a,10,MPI_INT,(myrank+1)%np,1,MPI_COMM_WORLD); 13 } 14 ... |