This is a different definition of collective I think. I thought we were defining collective in the<div>operational sense, meaning requires synchronization. That is what users need to know, since</div><div>they will not check the implementation. I believe users know the semantics up front (why would</div>
<div>semantics change from serial to parallel?)</div><div><br></div><div> Matt<br><br><div class="gmail_quote">On Tue, Jul 6, 2010 at 6:38 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
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.<br>
<font color="#888888"><br>
Barry<br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>
</div>