RMA operations exist since MPI 2.0. There are some new functions in MPI 3.0,
but I don't think you will need them.
I'm currently working on a library that provides access to large grids. It
uses RMA and it works quite well with MPI 2.0.
> Thank You all for your replies.
> I'll certainly look into the MPI 3.0 RMA link (out of pure interest)
> but i am afraid i can't go bleeding edge, because my application
> will also have to run on an other machine.
> As to OpenMP: i already make use of OpenMP in some places (for
> instance for the creation of the large data block),
> but unfortunately my main application is not well suited for OpenMP
> I guess i'll have to take more detailed look at my problem to see if i
> can restructure it in a good way...
> Thank You
> On Mon, Apr 16, 2012 at 11:16 PM, Brian Austin <brianmaustin_at_[hidden]>
> > Maybe you meant to search for OpenMP instead of Open-MPI.
> > You can achieve something close to what you want by using OpenMP for
> > on-node parallelism and MPI for inter-node communication.
> > -Brian
> > On Mon, Apr 16, 2012 at 11:02 AM, George Bosilca <bosilca_at_[hidden]>
> > wrote:
> >> 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/.
> >> george.
> >> On Apr 16, 2012, at 09:52 , jody wrote:
> >> > Hi
> >> >
> >> > In my application i have to generate a large block of data (several
> >> > gigs) which subsequently has to be accessed by all processes (read
> >> > only),
> >> > 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
> >> > Jody
> >> > _______________________________________________
> >> > users mailing list
> >> > users_at_[hidden]
> >> > http://www.open-mpi.org/mailman/listinfo.cgi/users
> >> _______________________________________________
> >> users mailing list
> >> users_at_[hidden]
> >> http://www.open-mpi.org/mailman/listinfo.cgi/users
> > _______________________________________________
> > users mailing list
> > users_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
> users mailing list