Comunicação Sem Bloqueio em MPI (cont.)
MPI_Request send_request, recv_request;
send_offset = my_rank*blocksize;
recv_offset = ((my_rank - 1 + p) % p)*blocksize;
for (i = 0; i < p - 1; i++) {
MPI_Isend(y + send_offset, blocksize, MPI_FLOAT,
successor, 0, ring_comm, &send_request);
MPI_Irecv(y + recv_offset, blocksize, MPI_FLOAT,
predecessor, 0, ring_comm, &recv_request );
send_offset = ((my_rank - i - 1 + p) % p)*blocksize;
recv_offset = ((my_rank - i - 2 + p) % p)*blocksize;
MPI_Wait(&send_request, &status);
MPI_Wait(&recv_request, &status); }