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

Reply via email to