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 ...
|