Take a look at the changes in
https://bitbucket.org/petsc/petsc/branch/knepley/fix-mat-zero-rows
I replace a bunch of messy MPI_ISend/IRecv() with a single PetscSF
operation. I think we can remove all internal non-collective MPI from
PETSc in favor of PetscSF.
This means it would be possible to optimize (since we can change
communication strategies), and much much simpler. I think our
goal should be elimination of all internal comm by the end of next year.
Comments?
Matt
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener