No currently there is no way in MPI (and subsequently in Open MPI) to achieve this. However, in the next version of the MPI standard there will be a function allowing processes to shared a memory segment (https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/284).
If you like living on the bleeding edge, you can try Brian's branch implementing the MPI 3.0 RMA operations (including the shared memory segment) from http://svn.open-mpi.org/svn/ompi/tmp-public/mpi3-onesided/.
On Apr 16, 2012, at 09:52 , jody wrote:
> In my application i have to generate a large block of data (several
> gigs) which subsequently has to be accessed by all processes (read
> Because of its size, it would take quite some time to serialize and
> send the data to the different processes. Furthermore, i risk
> running out of memory if this data is instantiated more than once on
> one machine.
> Does OpenMPI offer some way of sharing data between processes (on the
> same machine) without needing to send (and therefore copy) it?
> Or would i have to do this by means of creating shared memory, writing
> to it, and then make it accessible for reading by the processes?
> Thank You
> users mailing list