I think we are splitting hairs on wording here.  In one case the user is saying “I don’t care about
 the performance of cancel” and in the other “I promise not to call cancel”.  Neither is changing the
 semantics of MPI.

Rich


On 5/15/08 5:44 PM, "Richard Treumann" <treumann@us.ibm.com> wrote:

Hi Rich

The difference between a hint and an assertion is that an hint cannot change semantic in any way.  An assertion will allow libmpi to relax a specific semantic guarantee.   Lets take a simple case:

The application wants to say it will not try to cancel any MPI_ISEND so it passes MPI_NO_SEND_CANCEL to MPI_INIT

If  MPI_INIT were passed MPI_NO_SEND_CANCEL as a hint and then the application went ahead and called MPI_CANCEL anyway, it would be fine for the MPI implementation to use a much slower MPI_CANCEL algorithm than if the hint had not been given.  It would not be OK for the implementation to hang or raise an error or cancel the wrong message.

If  MPI_Init were passed MPI_NO_SEND_CANCEL as an assertion and then the application went ahead and called MPI_CANCEL anyway, it would be OK for the MPI implementation to raise an error for the MPI_CANCEL call.

Every MPI Implementation must still be prepared to do MPI_CANCEL of an ISEND correctly if MPI_CANCEL is called by an application that did not provide the assertion. Adding assertion support in MPI 2.2 cannot break a correct MPI 2.1 application.

The MPI_NO_SEND_CANCEL is only useful for cases where libmpi must devote extra memory, longer code paths or extra space in message headers across an entire run just to have the information it needs to do MPI_CANCEL correctly is somebody happens to call it. If a particular MPI implementation does not incur extra costs to be ready for a potential MPI_CANCEL then the implementation will ignore this assertion.

 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-22-bounces@lists.mpi-forum.org wrote on 05/15/2008 01:33:02 PM:

> Assertions should not change semantics – these are defined by the
> standard.   Assertions
>  may provide “help” to the implementation, what ever that means.  I
> may be missing some thing,
>  but I really don’t see a difference (aside  from name) between
> assertions an hints – both are
>  ways of the user conveying information to the library.
>
> Rich
>


_______________________________________________
mpi-22 mailing list
mpi-22@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22