So I'm working on this program which has many ways it might possibly die
at runtime, but one of them that happens frequently is the user types a
wrong (non-existant) filename on the command prompt. As it is now, the
node looking for the file notices the file doesn't exist and tries to
terminate the program. It tries to call MPI_Finalize(), but the other
nodes are all waiting for a message from the node doing the file
reading, so MPI_Finalize waits forever until the user realizes the job
isn't doing anything and terminates it manually.
So, my question is: what's the "correct" graceful way to handle
situations like this? Is there some MPI function which can basically
throw an exception to all other nodes telling them bail out now? Or is
correct behaviour just to have the node that spotted the error die
quietly and wait for the others to notice?
Thanks for any suggestions!
[A dream that comes true can't really be called a dream.]