Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: George Bosilca (bosilca_at_[hidden])
Date: 2007-10-11 10:33:51

Sorry for the duplication in devel-core. As suggested, this RFC is
now posted on devel.

Deadline: October 19th 2007.

Short version: We need one additional field in the ompi_request_t
struct which contain a callback to be called when a request complete.
This callback is not intended for the PML layer, but for any other
component inside Open MPI. It will provide them a event based
progress (based on requests completion).

Long version: During the Open MPI meeting in Paris, we talked about
revamping the progress engine. It's not a complete rewrite, it's more
related to performance improvement and supporting a blocking mode. In
order to be able to reach our goal, we need to get rid of all
progress functions that are not related to the BTL/MTL. Therefore, we
propose another mechanism for progressing components inside Open MPI,
based on the completion event for requests. ROMIO and OSC can use it
without problems, instead of the progress function they use today (we
talked with Brian about this and he agreed).

This RFC is not about the progress engine, it's about the
modifications we need in order to allow any component to have a event
based progress. This affect only the ompi_request_t structure, and
add one if in the critical path (cost minimal). The base request will
have one more field, which contain a callback for completion. This
callback, if not NULL, will be called every time the PML complete a
request. However, the PML is not allowed to add it's own completion
callback (it should use instead the req_free callback as it does
today). As stated in the "short version", the new completion callback
is only intended for non-devices layers such as OSC and IO.


  • application/pkcs7-signature attachment: smime.p7s