1

I am a newbie to MPI. I am in the process of reading through the tutorial on mpitutorial.com. Unfortunately the examples do not go into the kind of connection/communication I want to delve into. What I want to establish is the following:

I want to have one central MPI program, to which other programs that have been launched independently can connect. The central MPI program assumes a role similar to that of a 1960 switchboard and switchboard operator. This implies that the connected programs both receive and send data from and to the central MPI program. One exception to the analogy is that the central MPI program modifies data it has received before sending it away.

In the above, consider me as the developer of the central MPI program. Assume that all connected programs are developed independently and not by me. Lastly, all programs are open-source. So I can also modify those programs which I have not developed myself.

Could someone explain me how I can establish such a connection using MPI or point me in the right direction by telling me which MPI concepts I should study extensively?

Aeronaelius
  • 1,291
  • 3
  • 12
  • 31

1 Answers1

1

What you want is definitely doable with MPI and there is a whole chapter in the MPI standard dedicated to programs that follow the clien/server model.

Unfortunately, this is a relatively obscure and poorly documented corner of the MPI universe and the mechanism itself is quite rudimentary and with many shortcomings, the most obvious being the fact that no non-blocking accept operation is present in the standard and many MPI implementations are not fully thread-safe. One of the best sources of information in that case is the MPI standard itself. There are also some questions around like this one and this one that will give you an idea of how things could be done.

Community
  • 1
  • 1
Hristo Iliev
  • 72,659
  • 12
  • 135
  • 186