[Mpi-22] MPI_INIT assertions
treumann at [hidden]
Thu May 15 16:44:19 CDT 2008
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 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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mpi-22