On Jul 13 2012, Jeff Hammond wrote:
There is no known workaround that addresses all of the problems with MPI Probe and MPI Iprobe in multi-threaded MPI applications.
Are there nuances regarding the use of MPI that I have missed? Do the real-world use cases have too much to do in the "/* ? */" to make this viable?
Quite a lot do. Anything with lazy execution may handle any outstanding operations, and anything with eager execution may do the transfer in the Irecv. Not all I/O transports support asynchronicity. But, realistically, anyone who goes beyond MPI_THREAD_FUNNELED is writing non-portable code, because MPI specifies more than can be implemented using what POSIX actually defines. Inter alia, POSIX does not define any mechanism for synchronising signals between threads, and I have exposed inconsistencies. Just like passive one-sided communication. But I agree that it should be viable on at least some systems, some MPIs and some transports. Regards, Nick Maclaren.
participants (1)
-
N.M. Maclaren