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