Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <mpi.h>
  4.  
  5. int main(int argc, char **argv)
  6. {
  7.   int NoProc, ID, Num;
  8.   MPI_Status Status;
  9.  
  10.   MPI_Init(&argc,&argv);
  11.  
  12.   MPI_Comm_size(MPI_COMM_WORLD,&NoProc);
  13.   MPI_Comm_rank(MPI_COMM_WORLD,&ID);
  14.  
  15.   Num = ID;
  16.   if(ID == 0)
  17.         {
  18.             MPI_Send(&Num, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
  19.             MPI_Recv(&Num, 1, MPI_INT, 19, MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
  20.             printf("I am %d/%d And the total is = %d\n", ID, NoProc, Num);
  21.         }
  22.  
  23.   if((ID >= 1)&& (ID < (NoProc - 1)))
  24.         {
  25.             MPI_Recv(&Num, 1, MPI_INT, (ID - 1), MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
  26.             Num = Num + ID;
  27.             printf("I am %d/%d And the total is = %d\n", ID, NoProc, Num);
  28.             MPI_Send(&Num, 1, MPI_INT, (ID + 1), 0, MPI_COMM_WORLD);
  29.         }
  30.  
  31.   if(ID == (NoProc - 1))
  32.         {
  33.             MPI_Recv(&Num, 1, MPI_INT, (ID - 1), MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
  34.             Num = Num + ID;
  35.             MPI_Send(&Num, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
  36.         }
  37.  
  38.   MPI_Finalize();
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement