[petsc-users] Time cost by Vec Assembly

Jed Brown jed at jedbrown.org
Fri Oct 7 22:44:16 CDT 2016


Barry Smith <bsmith at mcs.anl.gov> writes:
>     VecAssemblyBegin/End() does a couple of all reduces and then message passing (if values need to be moved) to get the values onto the correct processes. So these calls should take very little time. Something is wonky on your system with that many MPI processes, with these calls. I don't know why, if you look at the code you'll see it is pretty straightforward.

Those MPI calls can be pretty sucky on some networks.  Dave encountered
this years ago when they were using VecSetValues/VecAssembly rather
heavily.  I think that most performance-aware PETSc applications
typically never tried to use VecSetValues/VecAssembly or they did not
need to do it very often (e.g., as part of a matrix-free solver).  The
BTS implementation fixes the performance issue, but I'm still working on
solving the corner case that has been reported.  Fortunately, the
VecAssembly is totally superfluous to this user.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 800 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20161007/7357a1d6/attachment-0001.pgp>


More information about the petsc-users mailing list