[petsc-dev] meaning of VecScale() if not a collective

Matthew Knepley knepley at gmail.com
Tue Jul 6 02:07:11 CDT 2010

This is a different definition of collective I think. I thought we were
defining collective in the
operational sense, meaning requires synchronization. That is what users need
to know, since
they will not check the implementation. I believe users know the semantics
up front (why would
semantics change from serial to parallel?)


On Tue, Jul 6, 2010 at 6:38 AM, Barry Smith <bsmith at mcs.anl.gov> wrote:

>  I consider that VecScale() has to be considered a collective that requires
> all processors to pass the same value for the scalar in the same way that
> VecAXPY() is a collective operation that requires the same value for alpha.
> The reason is that though you can pass in different values on different
> processes or not call it on some processes it has no well defined
> mathematical meaning in that case since there result depends on the vector
> layout across processors. In fact I'd like to put a error check that does a
> global collective and make sure that the value pass in on all processes is
> the same in debug mode.
>   Barry

What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20100706/bdd15620/attachment.html>

More information about the petsc-dev mailing list