2
votes

I have a client server system using MPI (using ports) in C++. Its running good. Is doing what I intend it to do.

I recently read about remote memory access (RMA) in MPI using MPI_Win memory windows. I'm wondering if it is possible to create a system similar to client-server using RMA. (Lets say the synchronization between the clients to access same chunk of memory is handled somehow.)

I would like to create a window on the server and make the clients access memory through this window.

Does someone already have some experience with this model? Any comments are welcome.

1
I wrote this super simple example a while ago, which uses one-sided MPI communications. Although this uses an intra-communicator, this might give you a flavour of what can be done with these. - Gilles

1 Answers

1
votes

Creation of RMA windows is a collective operation that involves the process group of an intracommunicator. To make it work with an intercommunicator, you must first merge the two process groups via MPI_INTERCOMM_MERGE and then use the resultant intracommunicator for RMA operations. Note that doing so removes part of the insulation benefits that intercommunicators provide.