Is doing blocking communication in a separate thread better then
asynchronous progress?
(At least as a workaround until the proper implementation gets improved)



At the moment, yes.  OMPI's asynchronous progress is "loosely tested" (at best).

OMPI's threading support is somewhat stable for some devices (e.g., not OpenFabrics-based networks), but it's still somewhat new, so feedback would be welcome here.

I quickly modified my asynchronous code (Isend - Recv) to have a pthread doing Irecv - Rsend for point to point collective communication (which normally works fine for me). But still - on my wee laptop - the thread / blocking comm. combination is quite slow. I will play around with it to see whether it can be improved. Of course, laptop is not a good device for a very conclusive testing, but if things are too slow here, I wouldn't expect them to work great elsewhere.

I wonder whether the OMPI 1.3 on OS X Leopard will have MPI threads enabled (the 1.2.8 version on Darwin doesn't)...