[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MPI_FINALIZE



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