Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <mpi.h>
  3. #define N 4
  4.  
  5. int main(int argc, char **argv)
  6. {
  7.     int ierr, id, num, a[N], i, flag;
  8.  
  9.     MPI_Request request;
  10.     MPI_Status status;
  11.  
  12.     ierr = MPI_Init(&argc, &argv);
  13.     ierr = MPI_Comm_rank(MPI_COMM_WORLD, &id);
  14.     ierr = MPI_Comm_size(MPI_COMM_WORLD, &num);
  15.  
  16.     if(id == 0) {
  17.         for(i=0;i<N;i++) {
  18.             a[i] = i + 10;
  19.         }
  20.         MPI_Isend(&a, N, MPI_INT, 1, 123, MPI_COMM_WORLD, &request);
  21.         MPI_Test(&request, &flag, &status);
  22.         printf("FLAG: %d\n", flag);
  23.     }
  24.  
  25.     if(id == 1) {
  26.         MPI_Recv(&a, N, MPI_INT, 0, 123, MPI_COMM_WORLD, &status);
  27.         for(i=0;i<N;i++) {
  28.             printf("%d\n", a[i]);
  29.         }
  30.     }
  31.     else if(id == num-1)
  32.     {
  33.         printf("Rank: %d, all: %d\n", id, num);
  34.     }
  35.      
  36.     ierr = MPI_Finalize();
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement