Date: Wed, 24 Oct 2001 22:05:48 +0200 From: Jesper Larsson Traeff To: mpi-21@XXXXXXXXXXXXX Subject: Re: next ballot References: <200110072007.PAA45502@XXXXXXXXXXX> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.93i In-Reply-To: <5.1.0.14.2.20011024133556.0440b548@XXXXXXXXX> Sender: owner-mpi-21@XXXXXXXXXXXXX Precedence: bulk Reply-To: mpi-21@XXXXXXXXXXXXX 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