Actually, in a not-too-distant future release, there will be an option
to mpirun called "--connect" that will allow you to specify that this
job is to be connected to a specified earlier job. The run-time
environment will then spawn the new job and exchange all required
communication information between the two jobs for you. You could
therefore accomplish your desired operation by:
> nohup mpirun --np xx app1
(system returns job number to you)
> mpirun --np yy --connect job1 app2
(system starts app2 and connects it to job1)
Should be a little more transparent. No specific coding for making the
connection would be required in your application itself.
Jean Latour wrote:
It seems to me there is only one way to create a communication between
two MPI_COMM_WORLD : use MPI_Open_Port with a specific
IP + port address, and then MPI_comm_connect / MPI_comm_accept.
In order to ease the port number communication, the use of
/ MPI_lookup_name is also possible with the constraint that the
must be done before the "lookup", and this involves some
between the processes anyway.
Simple examples can be found in the handbook on MPI : "Using MPI-2"
by William Gropp et al.
Ali Eghlima wrote:
I have read MPI-2 documents as well as FAQ. I am confused as the best
way to establish communication
between two MPI_COMM_WORLD which has been created by two mpiexec calls
on the same node.
mpiexec -conf config1
This start 20 processes on 7 nodes
mpiexec -conf config2
This start 18 processes on 5 nodes
I do appreciate any comments or pointer to a document or example.