Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MPI_Send(messages.data(), size-1, MPI_INT, (rank+1)%size, 0, MPI_COMM_WORLD);
- for (int i = 0; i < size-1; i++) {
- int sender = (rank == 0 ? size-1 : rank-1);
- if (sender-i < 0) {
- real_sender = size - reverse_index;
- reverse_index++;
- } else {
- real_sender = (rank == 0 ? sender - i : sender - i);
- }
- MPI_Recv(messages_to_pass.data(), size-1, MPI_INT, sender, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
- received_messages[real_sender] = messages_to_pass[0];
- messages_to_pass.erase(messages_to_pass.begin());
- MPI_Send(messages_to_pass.data(), size-1-i, MPI_INT, (rank+1)%size, 0, MPI_COMM_WORLD);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement