[Mpi-22] MPI_INIT assertions

Richard Treumann treumann at [hidden]
Thu May 15 16:44:19 CDT 2008

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

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 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_at_[hidden] 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-22/attachments/20080515/eac4c674/attachment.html>

More information about the Mpi-22 mailing list