[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?)

    Matt

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
lead.
-- 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