generalized request

Parkson Wong (parkson@nas.nasa.gov)
Fri, 20 Sep 1996 11:35:50 -0700 (PDT)

In an effort of trying to use the new general request to layer I/O on top
of MPI-2, I have a couple of questions on generalized request.

1) Two more callback functions may be needed, wait_fn and test_fn.

wait_fn. This callback function is invoked when the MPI_Wait is callen on
the request.
test_fn. This callback function is invoked when the MPI_Test is called on
the request.

typedef MPI_Wait_function void()(MPI_Request meta_req,
MPI_Request request, MPI_Status *status)

typedef MPI_Test_function void()(MPI_Request meta_req,
MPI_Request request, MPI_Status *status)

This is useful for systems that supports asyn I/O but does not support
notification. That is I/O is done asynchronisely, but you have to poll
to find out whether the I/O is done. (And you don't want to spin a thread
to do the polling).

2) How to return error is not very well defined. Is there an error field in
MPI_Status that the user can get at?

3) May be it is close enough to the final draft that I can talk a little
about binding issues. There are these 6 calls in the draft

MPI_Set_request_tag(request, tag)
MPI_Set_request_source(request, soruce)
MPI_Set_request_error(request, error)
MPI_Set_request_count(request, count, datatype)

MPI_Set_status_count(status, count, datatype)

MPI_Request_mark_complete(request)

It is probably preferable to have just this 3 function

MPI_Set_status_error(status, error)
MPI_Set_status_count(status, count, datatype)

MPI_Request_mark_complete(request, status)

4) I also argue that you will need MPI_Status_create and MPI_Status_free
for layerability.

-- parkson

-- 
Parkson Wong			Address: Numerical Aerodynamic Simulation
MRJ, Inc.				 NASA Ames Research Center M/S 258-6
Supercomputer Applications Segment	 Moffett Field, CA  94035-1000
e-mail: parkson@nas.nasa.gov	Phone: (415)604-3988	Fax: (415)966-8669