Sending Lower Triangular Portion of a Matrix
MPI_Type_indexed(n, block_lengths, displacements, MPI_DOUBLE, &index_t);
MPI_Type_commit(&index_t);
{MPI_Send(A, 1, index_t, 1, 0, MPI_COMM_WORLD);}
{MPI_Recv(L, 1, index_t, 0, 0, MPI_COMM_WORLD, &status);}
Note that even though the blocks are uniformly spaced in memory we couldn’t
use MPI_Type_vector because the block lengths are different for each row