How does Open MPI use shared memory for communication between two processes on the same host meaning who creates the shared memory?
Both the processes running on the host have their own private buffers. So buf1 sent by Process 1 should reach buf2 of Process 2. How is this handled? Is it that buf1 is first copied into Shared Memory allocated by Open MPI and then from shared memory into buf2 OR is it that application (process) creates a Shared Memory and indicates to Open MPI to use this for communication with the other process on the same host OR is it that we have to use "allocation" routines provided by Open MPI and Open MPI internally makes all the memory as Shared so that processes on the same host can simply use it.