X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.2 Date: Wed, 31 Jan 2001 16:56:55 -0600 To: Karl Feind From: William Gropp Subject: Re: MPI_Abort nit Cc: mpi-core@XXXXXXXXXXX In-Reply-To: <200101311806.MAA02617@XXXXXXXXXXXXXXXXXXXXXXXXX> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-mpi-core@XXXXXXXXXXXXX Precedence: bulk At 12:06 PM 1/31/2001 -0600, Karl Feind wrote: In the MPI-1 standard, we have this description of MPI_Abort(): MPI_ABORT(COMM, ERRORCODE, IERROR) INTEGER COMM, ERRORCODE, IERROR This routine makes a ``best attempt'' to abort all tasks in the group of comm. 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 or an abort(errorcode). This is a minor nit, but POSIX and ANSI C specify that the abort() function does not take an argument. Hence the meaning of "abort(errorcode)" above is unclear. I think we should queue up a clarification/fix to the standard unless there's a meaning here that I'm misunderstanding. Thanks; I've added it to the clarification list. My interpretation followed the "handle this as a return errorcode from the main program" branch; but either interpretation is ok. However, note that the "should" here was not intended to be mandatory; it merely suggests what a user-friendly implementation might do. As a *user*, I'd like the specified error code returned by mpirun to the invoking environment. However, any clarification should make clear that there is no required return value (this is a quality of implementation issue). I can see environments where the return status indicates not only the code but the processes that caused the abort ... Bill