For message logging purpose, we need to interface with wait_any,
wait_some, test, test_any, test_some, test_all. It is not possible to
use PMPI for this purpose. During the face-to-face meeting in Paris
(5-12 october 2007) we discussed this issue and came to the
conclusion that the best way to achieve this is to replace direct
calls to ompi_request_wait* and test* by indirect calls (same way as
PML send, recv, etc).
Basic idea is to declare a static structure containing the 8 pointers
to all the functions. This structure is initialized at compilation
time with the current basic wait/test functions. Before end of
MPI_init, any component might replace the basics with specialized
functions.
Expected cost is less than .01us latency according to preliminary
test. The method is consistent with the way we call pml send/recv.
Mechanism could be used later for stripping out grequest from
critical path when they are not used.
--
Aurelien Bouteiller, PhD
Innovative Computing Laboratory - MPI group
+1 865 974 6321
1122 Volunteer Boulevard
Claxton Education Building Suite 350
Knoxville, TN 37996