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.