Date: Fri, 9 Feb 2001 11:18:40 -0500 From: Nicholas Nevin - Sun HPC High Performance Computing To: William Gropp Cc: Nicholas Nevin - Sun HPC High Performance Computing ,Subject: Re: MPI-2 standard issues References: <20010209095646.C20056@caja> <4.2.2.20010209090721.034ea2c0@XXXXXXXXX> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.9i In-Reply-To: <4.2.2.20010209090721.034ea2c0@XXXXXXXXX> 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? 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". > > >2. Why the restriction that types obtained from calls to > >MPI_Type_create_f90_{real,complex,integer} cannot be freed? This > >restriction doesn't appear to serve any useful purpose and the > >requirement that MPI_Type_get_envelope return the precision/range used > >to create such a type seems to either require an implementation to > >maintain a potentially very large table or allocate dynamic storage > >(which cannot be freed) to store the precision/range. > > This looks like a mistake. A correction could say that the type returned > is effectively a dup of the predefined type, it can (and should be) freed > by the user, and implementer could use internal attributes to store the > info needed for MPI_Type_get_envelope. Note that for layered libraries on > heterogeneous system, it is necessary to provide the features specified for > MPI_Type_get_envelope. > I'm happy with such a correction. Thanks, Nick.