X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.2 Date: Fri, 09 Feb 2001 10:38:56 -0600 To: Nicholas Nevin - Sun HPC High Performance Computing From: William Gropp Subject: Re: MPI-2 standard issues Cc: Nicholas Nevin - Sun HPC High Performance Computing ,In-Reply-To: <20010209111839.F20056@XXXX> References: <4.2.2.20010209090721.034ea2c0@XXXXXXXXX> <20010209095646.C20056@caja> <4.2.2.20010209090721.034ea2c0@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-mpi-core@XXXXXXXXXXXXX Precedence: bulk At 11:18 AM 2/9/2001 -0500, Nicholas Nevin - Sun HPC High Performance Computing wrote: On Fri, Feb 09, 2001 at 09:19:17AM -0600, William Gropp wrote: > At 09:56 AM 2/9/2001 -0500, Nicholas Nevin - Sun HPC High Performance > Computing wrote: > >A have a couple of questions regarding the MPI-2 standard. > > > >1. In section 8.5 is the following > > > > "Instead, a predefined attribute key MPI_LASTUSEDCODE is > >associated with MPI_COMM_WORLD. The attribute value corresponding to > >this key is the current maximum error class including the user-defined > >ones." > > > >Shouldn't "maximum error class" read "maximum error code"? > > This reflects the statement from the MPI-1 standard that MPI_ERR_LASTCODE > is greater or equal to the value of every error *class*. The text of the > description says "last standard error code", not "last error code". One > reading of this is that MPI_ERR_LASTCODE (and the MPI-2 attribute > MPI_LASTUSEDCODE) defines the maximum defined error class. Error codes can > be much larger; we encode information about the specific error case into > the code. Our maximum error code is effectively MAX_INT. But our maximum > error class is much smaller. > > Yes but I think it is also quite reasonable to interpret the following "The error classes are a subset of the error codes: an MPI function may return an error class number; and the function MPI_ERROR_STRING can be used to compute the error string associated with an error class. The error codes satisfy, 0 = MPI_SUCCESS < MPI_ERR... <= MPI_ERR_LASTCODE". to mean that MPI_ERR_LASTCODE is greater than or equal to all error codes. Indeed the name suggests this. Otherwise why not MPI_ERR_LASTCLASS? I can't find the text "last standard error code" in the 1.1 standard. Did I miss it? This is mysterious. Page 194 of 1.0 says "last standard error code" but page 196 of 1.1 says "last error code". I couldn't find anything in the 1.0 errata to explain this change. The advice to users in MPI-2 8.5, "The value returned by the key MPI_LASTUSEDCODE will not change unless the user calls a function to explicitly add an error class/code." implies that adding an error code might change the value associated with MPI_LASTUSEDCODE which appears to contradict its definition as the "maximum error class". In the case where codes and classes are very different, it might make more sense to propose that there be an attribute for the last class as well as one for the last code. For example, an MPI_LASTUSEDCLASS. For implementations that don't distinguish between codes and classes, these would both return the same value. But for those that do, or for users that have added more codes than classes, they could separate. Similarly, there should be a constant MPI_ERR_LASTCLASS that specified the value of the last predefined class. Bill