I think I found the answer to my question on Jeff Squyres  blog:
http://blogs.cisco.com/performance/shared-memory-as-an-mpi-transport-part-2/

However now I have a new question, how do I know if my machine uses the copyin/copyout mechanism or the direct mapping?

Assuming that I am running on OpenMPI 1.5.x installed on top of a linux Kernel 2.6.32?

cheers, Simone

On 05/22/2012 05:29 PM, Simone Pellegrini wrote:
Dear all,
I would like to have a confirmation on the assumptions I have on how OpenMPI implements the rendezvous protocol for shared memory.

If process A sends a message to process B and the eager protocol is used then I assume that the message is written into a shared memory area and picked up by the receiver when the receive operation is posted.

When the rendezvous is utilized however the message still need to end up in the shared memory area somehow. I don't think any RDMA-like transfer exists for shared memory communications. Therefore you need to buffer this message somehow, however I assume that you don't buffer the whole thing but use some type of pipelined protocol so that you reduce the size of the buffer you need to keep in the shared memory.

Is it completely wrong? It would be nice if someone could point me somewhere I can find more details about this. In the OpenMPI tuning page there are several details regarding the protocol utilized for IB but very little for SM.

thanks in advance,
Simone P.