On Apr 14 2011, Ralph Castain wrote:
>>> ... It's hopeless, and whatever you do will be wrong for many
>>> people. ...
>> I think that sums it up pretty well. :-)
>> It does seem a little strange that the scenario you describe somewhat
>> implies that one process is calling MPI_Finalize loooong before the
>> others do. Specifically, the user is concerned with tying up resources
>> after one process has called Finalize -- which implies that the others
>> may continue on for a while. It's not invalid, of course, but it is a
>> little unusual.
> I'm finding it more common than we thought. Note that I didn't say that
> one process called MPI_Finalize before the others. In this case, they
> call it fairly close together, but the individual processes continue
> running for quite some time, or until they determine that something is
> wrong and exit with non-zero status.
Nobody is denying that it is common. Now, what happens when you encounter
a language or compiler that uses return codes for mere warnings (e.g.
ignored IEEE 754 flags, as stated to be desirable by LIA-1)? Bang!
Remember that C is not the universe and many languages use MPI via the
C interface, but do not let C control their model.