Re: GRs and request completion

Rolf Rabenseifner (Rabenseifner@RUS.Uni-Stuttgart.DE)
Tue, 6 May 1997 15:15:52 +0200 (DST)

To Dick's mail:
...
> the MPI_GREQUEST_COMPLETE is at least mis-named. What it is doing, is
> marking the request "completable". ...

I agree, MPI_GREQUEST_COMPLETABLE would be better.

> Also ---- there is discussion of allowing MPI_Request_free on a GR which
> indicates that if I create a GR "my_gr" then call
> MPI_Request_free(&my_gr) something will occur when I later call
> MPI_Grequest_complete. What is it that I call MPI_Grequest_complete
> with? After the MPI_Request_free my_gr==MPI_REQUEST_NULL. I think that
> the fate of a GR which has been the victim of MPI_Request_free must be
> considered undefined.

But here I disagree.
We and the user can differentiate between
- using a GR (i.e. calling MPI_GR_START, MPI_WAIT/TEST/CANCEL
or MPI_REQUEST_FREE), and
- providing a GR (i.e. also calling MPI_GR_START, and the work of
query_fn, free_fn, cancel_fn, and using MPI_GR_COMPLETABLE)

In the area of 'using' the handle is valid from MPI_GR_START
until MPI_WAIT, positive MPI_TEST, or MPI_REQUEST_FREE.

In the area of 'providing' the handle is valid (also) from MPI_GR_START,
but until MPI_GR_COMPLETABLE is called.

I think, the best would be a short advice to users:

Also MPI_REQUEST_FREE assigns MPI_REQUEST_NULL to the request
variable, the original request handle value stays valid as long
as the application has not called MPI_GREQUEST_COMPLETABLE
with this handle, i.e. its value must be saved by the application
if MPI_GREQUEST_COMPLETABLE is called after MPI_REQUEST_FREE.

Rolf


Rolf Rabenseifner (Computer Center )
Rechenzentrum Universitaet Stuttgart (University of Stuttgart)
Allmandring 30 Phone: ++49 711 6855530
D-70550 Stuttgart 80 FAX: ++49 711 6787626
Germany rabenseifner@rus.uni-stuttgart.de