Advertisement
Guest User

Untitled

a guest
May 29th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1.  MPI_Send(messages.data(), size-1, MPI_INT, (rank+1)%size, 0, MPI_COMM_WORLD);
  2.  
  3.   for (int i = 0; i < size-1; i++) {
  4.     int sender = (rank == 0 ? size-1 : rank-1);
  5.     if (sender-i < 0) {
  6.       real_sender = size - reverse_index;
  7.       reverse_index++;
  8.     } else {
  9.       real_sender = (rank == 0 ? sender - i : sender - i);
  10.     }
  11.     MPI_Recv(messages_to_pass.data(), size-1, MPI_INT, sender, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
  12.     received_messages[real_sender] = messages_to_pass[0];
  13.     messages_to_pass.erase(messages_to_pass.begin());
  14.     MPI_Send(messages_to_pass.data(), size-1-i, MPI_INT, (rank+1)%size, 0, MPI_COMM_WORLD);
  15.   }
  16. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement