This variant uses shift up and shift down operations implemented with
MPI_Sendrecv