X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Wed, 24 Oct 2001 16:57:18 -0500 To: mpi-21@XXXXXXXXXXXXX From: William Gropp Subject: Re: next ballot Cc: mpi-21@XXXXXXXXXXXXX In-Reply-To: <20011024220548.A479250@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX> References: <5.1.0.14.2.20011024133556.0440b548@XXXXXXXXX> <200110072007.PAA45502@XXXXXXXXXXX> <200110072007.PAA45502@XXXXXXXXXXX> <20011023202231.A453536@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX> <5.1.0.14.2.20011024133556.0440b548@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-mpi-21@XXXXXXXXXXXXX Precedence: bulk Reply-To: mpi-21@XXXXXXXXXXXXX At 10:05 PM 10/24/2001 +0200, Jesper Larsson Traeff wrote: 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? Because MPI_Accumulate allows only predefined ops. This already introduces an exception: not all MPI routines that accept MPI_Op accept user-defined MPI_Op. Saying the MPI_Accumulate accepts only predefined MPI_Op but allows conforming user-defined types is just a different restriction. The more that I think about it, the more that I want to vote against 7. MPI_REPLACE should behave like the other predefined operations (your option 3). For MPI-1 collective, it should apply only to predefined datatypes. For MPI_Accumulate, it should be allowed for derived datatypes whose basic elements are a single predefined type, just as for the other predefined ops. It is true that if we had thought about it, we might have chosen to extend predefined MPI_Op's to the same datatypes allowed for MPI_Accumulate in MPI_Reduce etc. I propose that we leave that for MPI-3 :) Bill