Date: Thu, 10 May 2001 10:54:21 -0400 From: Nicholas Nevin - Sun HPC High Performance Computing To: mpi-21@XXXXXXXXXXXXX Cc: Jeff Squyres Subject: Re: MPI_FINALIZE References: <200105100849.f4A8npK08386@XXXXXXXXXXXXXXXXXXXXXXXXXX>Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.15i In-Reply-To: <200105100849.f4A8npK08386@XXXXXXXXXXXXXXXXXXXXXXXXXX> Sender: owner-mpi-21@XXXXXXXXXXXXX Precedence: bulk Reply-To: mpi-21@XXXXXXXXXXXXX On Thu, May 10, 2001 at 10:49:50AM +0200, Rolf Rabenseifner wrote: > (This mail is a response to the Mail of Jeff and the replies from Hubert and Tony) > > As far as I know, an MPI routine is "collective" over a group of > processes means that all these processes have to call the > MPI routine in a way, that the collective MPI routine is allowed to > make a barrier synchronization internally, > but it does __NOT__ mean that the MPI routine must do such a barrier. > > I.e. it is always allowed to implement MPI_Finalize in a way, > that it delivers all pending messages to the destination processes > and then it exits the process in a way, that the other MPI processes > are not touched (or killed or...). > > Therefore, the sentence "MPI_FINALIZE is collective over "the > union of all processes that have been and continue to be connected" > has no impact on the implementation. > It has also no impact on the application, because it is trivial, that > all processes have to call MPI_Finalize exactly once. > > And I do not see any dfference between "are connected" and > "have been and continue to be connected". > > And each implementor should check, whether it makes sense > to do a barrier inside of MPI_Finalize or whether such a barrier is > mainly a performance drawback. > > Is my answer correct, or does I have overlooked some lines in > the standard that imply a barrier inside of MPI_Finalize? > > Rolf > Correct handling of my most disliked feature in MPI, the cancelling of sends, seems to require a barrier or something similar in MPI_Finalize. See example 3.4 in section 3.2.2 (Clarification of MPI_Finalize) of the MPI-2 standard. Pages 23-24. -nick