Hello,<br>
<br>
I have the following:<br>
A cluster with n nodes. <br>
Each node can speak with the left and right neigbour. (k can speak with k-1 and (k+1)%n).<br>
They form a ring.<br>
There is a lot of synchronisation-information flowing through the ring,<br>
Some of the synchronisation is done using IRecv's I posted at the beginning of the program<br>
(because I never know in advance if there will be a synchronisation type A msg or a type B msg, or no msg at all...)<br>
I made a communicator comm_all which is (when no nodes joined) in the beginning equal to MPI_COMM_WORLD,<br>
but the new nodes (which join after I started up,see below) should allso become a "member" of this communicator<br>
<br>
Now I want to add nodes. <br>
With adding a node I mean the following:<br>
connecting a computer which is unknown at the time of startup (one I
just bought, for example) to the ring, and allowing him (the new node)
to speak<br>
with his neighbour-nodes.<br>
<br>
(1)How should I implement that (see below...)? <br>
(2)when I use MPI_Spawn, I can't "say" that it has to be spawned on the
new node, because MPI decides itself where to spawn,is this correct?<br>
(3)So I should use MPI_Open_port on a "master-node" and connect the new node with the master-node, correct?<br>
And, MPI_comm_accept is blocking, so if I want the new node to be able to connect on every moment, <br>
(4)I should use a thread solemny for the MPI_Comm_accept, is this correct?<br>
(5) when I use MPI_Intercomm_merge, is there a way to say that I want
the nodes 0-n to keep their rank, and that I want the new node to have
rank n+1 ?<br>
because (see above) I posted a lot of IRecv's at the startup-phase (and, the IRecv's are reposted once they are filled), <br>
so I prefer only having to change the IRecv's from node 0 and n instead of all the IRecv's<br>
(and, this gives less problems for messages which are between sender and receiver)<br>
(6) When a nodenumber changes, and a message is between sender and receiver, I can consider the message as lost, correct?<br>
When finished I want it to be totally decentralised, so that the new node can connect with a node of his choise. <br>
(7)This means I should open a port on every node from the "start-group", correct?<br>
<br>
Jim Lascov.<br>