[mpich-discuss] return() or exit() from int main() (NOT MPICH SPECIFIC)

Jeff Hammond jeff.science at gmail.com
Thu Apr 9 15:05:47 CDT 2015


For what it's worth, I've built MPICH 3 from source on SGI ICE and it works
pretty well. Great for RMA. Collectives have issues for obvious reasons.

Jeff

On Thursday, April 9, 2015, Michael L. Stokes <Michael.Stokes at uah.edu>
wrote:

> Jeff,
>
> It is true that "mpirun" is not part of the MPI standard, but that
> "really" had nothing to do with the question regarding the exit status.
>
> For anyone interested, I found what I was looking for in the MPI 3.0
> report.  On p. 362 the MPI_Abort() call is discussed where it is stated
>
> ... "This function does not require that the invoking environment take any
> action with the error code. However, a Unix or POSIX environment should
> handle this as a return errorcode from the main program."
>
> It goes on say ...
>
> Advice to users. Whether the errorcode is returned from the executable or
> from the MPI process startup mechanism (e.g., mpiexec), is an aspect of
> quality of the MPI library but not mandatory. (End of advice to users.)
>
> Advice to implementors. Where possible, a high-quality implementation will
> try to return the errorcode from the MPI process startup mechanism (e.g.
> mpiexec or singleton init). (End of advice to implementors.)
>
> So the MPI standard is clear that returning the errorcode is not required.
> However not providing it in a "high-quality implementation" for a POSIX
> environment (Linux is considered POSIX.1 compliant) should be expected.  So
> I guess I'll have to find out if SGI considers MPT a high-quality
> implementation.
>
> I think this also raises another point.  While the MPI spec seems to
> distance itself (for portability reasons) how an MPI process starts, it
> does seem to care, at least partially, how it ends (see arguments to
> MPI_Abort()).
>
> I recommend that the spec include some way that the exit status be made
> available to the user environment regardless of whether MPI fails or not.
> Maybe the standard should have an MPI_Exit() call ???  or maybe a argument
> to MPI_Finalize() ???
>
>
>
> On 04/09/2015 12:26 PM, Jeff Hammond wrote:
>
>> mpirun is not part of the MPI standard.  This is something that you'll
>> have to discuss with your MPI implementer at SGI.
>>
>> Best,
>>
>> Jeff
>>
>> On Thu, Apr 9, 2015 at 9:36 AM, Michael L. Stokes
>> <Michael.Stokes at uah.edu> wrote:
>>
>>> This question is not MPICH specific, but I'm sure the expertise is here
>>> to
>>> answer this question.
>>>
>>> While running tests on spirit.afrl.hpc.mil (SGI ICE X) using the
>>> MPT/2.11
>>> stack, I noticed that mpirun returns 0 to the shell regardless of the
>>> exit
>>> value ( <stdlib.h> exit(int) ), or the return value (return(int)) from
>>> the
>>> main.
>>>
>>> Would this behavior be regarded as an error?  What are the issues?
>>>
>>> --Mike
>>> _______________________________________________
>>> discuss mailing list     discuss at mpich.org
>>> To manage subscription options or unsubscribe:
>>> https://lists.mpich.org/mailman/listinfo/discuss
>>>
>>
>>
>>
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
>


-- 
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20150409/846b3234/attachment.html>
-------------- next part --------------
_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list