Date: Wed, 9 Apr 2003 10:43:15 +0200 From: Jesper Larsson Traeff To: mpi-21@XXXXXXXXXXXXX Subject: Re: Correction to One-sided communications, Section 6.7: Semantics and Correctness References: <20030404114949.GB27057@XXXXXXXXXXXXXXXXXXXX> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i X-Virus-Scanned: by amavisd-milter (http://amavis.org/ X-Spam-Status: No, hits=-4.9 required=5.0 tests=IN_REP_TO,DEAR_SOMEBODY version=2.21 X-Spam-Level: Sender: owner-mpi-21@XXXXXXXXXXXXX Precedence: bulk Reply-To: mpi-21@XXXXXXXXXXXXX Dear Rajeev, I see you point - and you're correct, unless one insists (as the standard somewhat implies?) that all updates to a window should be done properly within an epoch. However, this is a very strict requirement, and will certainly confuse users - who're probably already confused, as Dick pointed out with his example, when they learn that an MPI_Barrier after a locking phase does not necessarily guarantee that updates are indeed visible in the private window copy. I think we agree(?) that some correction to the standard is needed. Is more explanation, "Rationale" or "Advice to users", also needed? What do others think about these issues?? best regards Jesper On Fri, Apr 04, 2003 at 11:11:49AM -0600, Rajeev Thakur wrote: > > As far as I remember, the standard does try to enforce that local > > load/store > > accesses within epochs behave sensibly; for instance on p.132 it says that > > an MPI_Win_lock used to lock the local window must block, "since > > the lock may > > protect local load/store accesses". > > > > I propose to make the correction to the standard I suggested, that > > is, swap POST and WAIT in rules 5 and 6 (as it is now, is just a > > mistake, I think) > > Jesper, > Swapping Post and Wait in rules 5 and 6 won't be sufficient. We would > have to allow both Post and Wait in both rules 5 and 6. For example, if Rule > 5 says Wait instead of Post, then the following example won't work: > > Process A Process B > > local update > Win_Post Win_start > > MPI_Get > Win_Wait Win_complete > > If Win_post doesn't make the local update visible, MPI_Get may not see it. > > Similarly for Rule 6, if it says Post instead of Wait, the following example > won't work > > Process A Process B > > Win_Post Win_start > > MPI_Put > Win_Wait Win_complete > local access > > If Win_wait doesn't make the result of MPI_Put locally visible, the local > access won't see it. > > Rajeev