Using nonblocking operations
Shifting data around
Exchanging data with MPI_Sendrecv