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

2010-07-08 Thread Jed Brown
On Thu, 8 Jul 2010 13:12:03 -0700, Barry Smith wrote: > > I will use Not Collective, Logically Collective, Neighbor-wise Collective > and Collective There are many places now where "Collective on X" appears in the documentation, but there are actually further constraints about communicators m

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

2010-07-08 Thread Barry Smith
I have added #define PetscValidLogicalCollectiveScalar(a,b), PetscValidLogicalCollectiveReal(a,b), PetscValidLogicalCollectiveInt(a,b) More can be added and then they could be used where ever appropriate. Meant to do this for years but never got around to it. Barry On Jul 8, 2010, a

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

2010-07-08 Thread Barry Smith
I will use Not Collective, Logically Collective, Neighbor-wise Collective and Collective Barry On Jul 8, 2010, at 1:12 AM, Matthew Knepley wrote: > On Thu, Jul 8, 2010 at 2:11 AM, Barry Smith wrote: > > Ok, we need a clear well-defined set of terms for type of function call > then. >

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

2010-07-08 Thread Matthew Knepley
On Thu, Jul 8, 2010 at 2:11 AM, Barry Smith wrote: > > Ok, we need a clear well-defined set of terms for type of function call > then. > > 1) Any process can call it, without regard to other processes calling it, > with any legal value. MatGetLocalSize() > Yep, Not Collective here. > 2)

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

2010-07-07 Thread Barry Smith
Ok, we need a clear well-defined set of terms for type of function call then. 1) Any process can call it, without regard to other processes calling it, with any legal value. MatGetLocalSize() 2) All processes must call it with the same legal value for the operation to make mathematical s

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

2010-07-06 Thread Matthew Knepley
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 cha

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

2010-07-05 Thread Barry Smith
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 differ