X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.2 Date: Thu, 10 May 2001 13:21:38 -0500 To: mpi-21@XXXXXXXXXXXXX From: William Gropp Subject: Re: MPI_FINALIZE Cc: ,"Jeff Squyres" ,In-Reply-To: <001e01c0d97c$12fa9cc0$6163a8c0@XXXXX> References: <200105100849.f4A8npK08386@XXXXXXXXXXXXXXXXXXXXXXXXXX> 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 01:07 PM 5/10/2001 -0500, Andrew Lumsdaine wrote: Hum. If I understand the idea of "collective" properly, then I don't see how this can be accomplished without something like a barrier occurring. Does not the requirement that all the processes have to call the MPI routine also imply that it is an error if they do not all do so? Does not that also imply that each process needs to wait until all processes have made the collective call in order to know whether the collective call has been properly made or not? Otherwise, I don't think MPI_Finalize would be truly collective. I.e., if one can call it and receive indication of success regardless of whether anyone else ever calls it or not, then it seems like a local procedure. The behavior of erroneous programs is not defined. You're right; a user-friendly implementation may want to *add* barrier semantics to help catch this error, but MPI makes no requirement that all (or even any) errors be detected (neither do most standards). Note that MPI_Bcast( (void *)0, 0, MPI_INT, 0, MPI_COMM_WORLD ) is also a valid usage of collective routine but there is no requirement that prevents an implementation by turning this into a purely local no-op. Bill