Re: generalized request

Koichi Konishi (konishi@research.nj.nec.com)
Fri, 20 Sep 1996 19:22:14 EDT

Instead of 'wait_fn/test_fn', I think there should be a single
callback function 'poll_fn'.

A 'poll_fn' is not one of callback functions set when
MPI_META_REQUEST_CREATE is called. It is posted on a generalized
request just like a handler posted by MPI_POST_HANDLER.

A 'poll_fn' is invoked to DETERMINE if a request has been completed,
while a handler is invoked AFTER a request is completed.

Note that we are dealing with two different kind of requests at the
same time: a generalized request(GR) and an underlying low-level
native request, which may be a I/O request or one of basic MPI
request.

When a handler/notification can be attached to the low-level request,
there is no need for 'poll_fn'. This case includes when the low-level
request is a basic MPI request, on which we can post a handler.
Another case is when the low-level request is an asynchronous I/O
request to the operating system which supports notifications.

A 'poll_fn' is necessary only when the low-level request itself can
not be associated with a handler. Therefore, in this case, a 'poll_fn'
is attached to the GR, instead of the low-level one.

A 'poll_fn' posted on a GR is guaranteed to be called when a TEST/WAIT
is called on the GR. It may be called more often. The frequency is
implementation dependent. Users should be warned about possible
performance degradation caused by posting 'poll_fn'.

I will appreciate any comments.

Koichi Konishi konishi@research.nj.nec.com
NEC Research Institute Office: 609-951-2628
FAX: 609-951-2488