Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. if (myid == server) {   /* I am the rand server */
  2.         do {
  3.             MPI_Recv(&request, 1, MPI_INT, MPI_ANY_SOURCE, REQUEST, world, &status);
  4.             if (request) {
  5.                     int even = (status.MPI_SOURCE % 2) == 0;
  6.  
  7.                     int size_to_send = even ? CHUNKSIZE2 : CHUNKSIZE;
  8.                     for (i = 0; i < size_to_send; i++) {
  9.                         rands[i] = random() % INT_MAX;
  10.                     }
  11.  
  12. //                  fprintf(stderr, "Send to %d with size %d\n", status.MPI_SOURCE, size_to_send);
  13.                     if(even)
  14.                         MPI_Send(rands, size_to_send, MPI_INT, status.MPI_SOURCE, REPLY, workers_even);
  15.                     else
  16.                         MPI_Send(rands, size_to_send, MPI_INT, status.MPI_SOURCE, REPLY, workers_odd);
  17.  
  18.             }
  19.         } while(request > 0);
  20.     } else {            /* I am a worker process */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement