From: Richard Treumann Date: January 31, 2008 1:16:20 PM CST To: "Mailing list for discussion of MPI 2.1" Subject: Re: [mpi-21] Ballot 4 - Re: Request for interpretation Reply-To: "Mailing list for discussion of MPI 2.1" Jim ( ( The sense I get from the phrase "the behavior is undefined" is that defining the behavior is beyond the scope of the standard. ( ( The MPI standard does have some predefined keys and requires an implementation that supports any predefined key to support it as described by the standard. That can lead to one place in the standard saying "the behavior is undefined" and another saying "here is the definition of the behavior".( ( Maybe I am reading more than others into the phrase "the behavior is undefined" but it does have this strong implication in my mind.( ( How is this ?( ( An implementation must support info objects as caches for arbitrary ( key, value) pairs, regardless of whether it recognizes the key. ( Each function that takes hints in the form of an MPI_Info must( be prepared to ignore any key it does not recognize. This description ( of info objects does not attempt to define how a particular function ( should react if it recognizes a key but not the associated value.( ( note:( I also changed MPI function to simply function because with this free form approach to the info object, it seems to me a third party library that is intended to work as part of an MPI program may want to use MPI_Info objects too. If someone authors a parallel math library and wants the initialization routine to look like:( init_pmath( MPI_Info info) ( why not? They should understand that init_pmath must ignore keys it does not recognize even if i is not an MPI_ routine.( ( ( Dick ( ( Dick Treumann - MPI Team/TCEM ( IBM Systems & Technology Group( Dept 0lva / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601( Tele (845) 433-7846 Fax (845) 433-8363( ( ( mpi-21-bounces@cs.uiuc.edu wrote on 01/31/2008 09:39:52 AM:( ( > As you are saying, there are two different classes of errors here.( > ( > 1) Keys which are not understood and need to be ignored by functions( > which don't grok them ( JIMS_SECRET_TAG , 99 )( > 2) Keys which are understood by a function, but with a value which ( > is not ( buffer_size ,  Hello )( > ( > I think allowing the second type to have undefined behavior is the ( > right thing to do, since it's the most general.( > If your implementation wants to define the behavior of some out-of-( > range values, that's fine and doesn't make you non-conforming, it ( > just means you defined the previously undefined behavior for some ( > set of values.( > ( > Having that undefined-ness explicit here (in one central place) ( > seems to make sense (if only because it may be omitted in one of the( > other places where it should appear).( > ( > My addition does not alter the existing change which guarantees case( > 1, it's only concerned with case 2.( > -- Jim( > ( > James Cownie ( > SSG/DPD/PAT( > Tel: +44 117 9071438( > ( > From: mpi-21-bounces@cs.uiuc.edu [mailto:mpi-21-bounces@cs.uiuc.edu] ( > On Behalf Of Richard Treumann( > Sent: 31 January 2008 14:20( > To: Mailing list for discussion of MPI 2.1( > Subject: Re: [mpi-21] Ballot 4 - Re: Request for interpretation( > ( > Jim -( > ( > I was taking the view that the description of what to do for a ( > recognized key but dubious value belongs to the function that ( > recognizes the specific key. For example if MPI_File_open accepts a ( > "buffer_size" hint with range "32K" to "16M" we may want to define ( > the behavior of hints that are out of range.( > ( > Once we say an info can have arbitrary keys we need to state that ( > every info consumer must be prepared to ignore keys it does not ( > recognize because we have made unrecognizable keys legitimate.( > ( > Dick ( > Dick Treumann - MPI Team/TCEM ( > IBM Systems & Technology Group( > Dept 0lva / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601( > Tele (845) 433-7846 Fax (845) 433-8363( > ( > ( > mpi-21-bounces@cs.uiuc.edu wrote on 01/31/2008 08:43:04 AM:( > ( > > However, you have apparently lost the liberty to have undefined ( > > behavior which was there in the previous version.( > > ( > > Maybe you should keep that, something like ( > > An implementation must support info objects as caches for arbitrary ( > > (key, value) pairs, regardless of whether it recognizes the keys. ( > > Each MPI function which takes hints in the form of an MPI_Info must( > > be prepared to ignore any key it does not recognize. However if a ( > > function recognizes a key but not the associated value, then the ( > > behavior is undefined.( > > (Modifications in italics)( > > -- Jim( > > ( > > James Cownie _______________________________________________ mpi-21 mailing list mpi-21@XXXXXXXXXXX http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21