On Dec 17, 2010, at 2:50 PM, Suraj Prabhakaran wrote:
> Yes, with MPI_Finalize() called before an abrupt exit() it is clean but talking generally about releasing connections, if Process A and Process B are connected through MPI_Comm_connect/accept and then made to MPI_Comm_disconnect at a later point of time, an abrupt exit of Process B (for example) *after* the disconnect does *NOT* affect Process A! I also tried a triangular connect/disconnect and it is quite clean!
> So the problem that I indicated occurs only between spawned child and parent (after they disconnect) and *does not* occur between two processes connected via port and then later disconnects. Perhaps then the problem is easier to corner?
It's not an unknown problem -- as George and Ralph were trying to say, it was a design decision on our part.
Sadly, flexible dynamic processing is not something that many people ask for. We have invested time in it over the year to get it working and have a baseline functionality level. Beyond that, we unfortunately simply haven't had enough requests to justify spending time to do stuff like you suggest (e.g., allow abnormal termination of MPI-disconnected processes to not also take down previously-connected processes). :-(
But as George said, we're an open source project and open to patches! :-)
> P.s: I also indicated in another mail that processes trying to connect through a port, *sometimes* blocks at the connect/accept call or sometimes one of the processes blocks indefinitely at the disconnect call. I underline *sometimes*. Any inputs for this one?
Can you come up with a small program / scenario that shows the problem?
For corporate legal information go to: