Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <mpi.h>
  3.  
  4. using namespace std;
  5.  
  6. int main (int argc, char* argv[]) {
  7.  
  8.   int mojrang,velicina,i,j;
  9.   MPI::Status status;
  10.   int a[100],b[100],c[100];
  11.  
  12.   MPI::Init(argc, argv);
  13.   mojrang = MPI::COMM_WORLD.Get_rank();
  14.   velicina = MPI::COMM_WORLD.Get_size();
  15.  
  16.   if( mojrang == 0 ) {
  17.     for (i=0; i<100 ;++i) {
  18.         a[i]=i;
  19.     }
  20.     for (i=1; i < velicina; i++) {
  21.         MPI::COMM_WORLD.Send(a, 100, MPI::INT, i, 100);
  22.     }
  23.     for (i=1; i < velicina; i++) {
  24.         MPI::COMM_WORLD.Recv(c, 100, MPI::INT, i, 200, status);
  25.         printf("Izvor: %d\n", status.Get_source());
  26.         for(j=0; j<100; j++) {
  27.             printf("%d\n", c[j]);
  28.         }
  29.     }
  30.  
  31.   } else {
  32.     MPI::COMM_WORLD.Recv(b, 100, MPI::INT, 0, 100, status);
  33.     for (i=0; i < 100; i++) {
  34.         b[i] = b[i] + mojrang;
  35.     }
  36.     MPI::COMM_WORLD.Send(b, 100, MPI::INT, 0, 200);
  37.   }
  38.  
  39.   MPI::Finalize();          /* Završi MPI */
  40.   return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement