[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: next ballot



On Wed, Oct 24, 2001 at 01:40:45PM -0500, William Gropp wrote:
> >
> >Item 7:
> >
> >Drop rationale (or at least the last sentence, "Extentding it...")
> 
> I'd rather leave in the rationale (more information is better than less), 
> though I'm open to alternate wordings.
> 
Considering what you say below, I don't agree with the rationale.

MPI_REPLACE could be very useful with user-defined datatypes to
implement simultaneous put's by many processes to the same locations 
in target window. (this is also why I thought the last sentence should be
dropped)

> 
> >Drop the preceeding lines 6-10 on p. 120 (they are confusing, and seem
> >to say that with MPI_Accumulate the predefined op's can also be used with
> >certain user-defined datatypes. This is probably not intended!?)
> 
> It was intended that MPI_Accumulate be used with predefined ops on derived 
> datatypes.  For example, an indexed datatype with MPI_REPLACE allows 
> MPI_Accumulate to perform a scatter operation (with different atomicity 
> than MPI_PUT).  Dropping lines 6-10 would significantly change the standard 
> as written.
> 
I thought/feared that it was intended that MPI_Accumulate can be
used with special derived datatypes. But this is quite a significant 
extension of the predefined op's - and why should this then be limited 
only to MPI_Accumulate? 

I think this needs some clarification/discussion (or am I the only
one who's confused here?). There are at least the following possibilities

1. Predefined op's, including MPI_REPLACE, behaves uniformly (ie. for
   Reduce and Accumulate), and can only be used with predefined datatypes

2. Predefined op's, including MPI_REPLACE behaves uniformly, and can
   be used with predefined datatypes and certain user-defined
   datatypes as described on p.120

3. MPI_REPLACE behaves as all other predefined op's. For Reduce etc. the
   predefined op's can only be used with predefined datatypes, but
   for MPI_Accumulate they are extended to work on certain user-defined
   datatypes as described on p. 120

4. MPI_REPLACE is special. Other predefined op's are as in 3, but
   MPI_REPLACE is defined for all datatypes (predefined and user-defined)

4 seems to be what the standard says now (ie. before correction 7). 
Correction 7 clarifies in the direction of 3. I think the better choices
are either 1 or 2.

What do others think about this issue?
 
> Bill

Jesper