Re: generalized requests changes

Koichi Konishi (konishi@research.nj.nec.com)
Wed, 10 Jul 1996 13:49:34 EDT

> Date: Wed, 10 Jul 1996 10:47:34 -0500
> From: Steve Huss-Lederman <lederman@cs.wisc.edu>

> - remove the alternative proposal

OK. My assumption was that communication handlers had gone entirely,
which is not the case now.

> - The progress/semantics are defined by the handlers that Marc has
> written up. I think what we would like is:

> 1) If your implementation has threads then your request progresses
> without any MPI calls on that process.
>
> 2) If you are emulating threads, then your request may only progress
> if you call an MPI function. Also, issuing a blocking call in your
> handler is likely to hang your code.

I agree. This automatically requires an inquiry function/attribute for
telling which case is true for an implementation.

> - Koichi indicated in mail that he felt that the complete_fn can be
> dropped. I'm afraid I don't see why. If you call lots of concurrent
> handlers within one generalized request, then how does MPI know when
> the request is done? We previously tried to keep lists of requests
> but decided against this. I'm afraid I may be missing something.

In my view of the current main proposal, any progress for a
generalized request is made by handlers posted on subrequests on the
GR. The handlers checks the completion of the entire GR, then one of
them calls MPI_Request_mark_complete.

I see, however, that it may be better for the status to be set in
complete_fn than in a handler for one of the subrequests of a GR.

I do not understand what is the problem with calling lots of concurrent
handlers and keeping lists of requests.

-Koichi