[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