> Sounds like it should be the reverse(?): any process can call mexit(6,1), but
> everyone should call mexit(6,0). Someone would have to do a code audit to see
> how consistent we are in Amber on doing this.
...however, as Bob pointed out, it is probably mute and highly
implementation dependent as to what is actually done by the parent MPI
process. I think there is no guarantee that either call will actually
exit appropriately (in all implementations) and certainly
implementations are not good enough to detect hardware timeouts, etc...
Since MPI has no ability to create new threads or processes, the
language/implementation does not have to be clear about graceful exit and
likely the implementations are all over the place. In fact, this is a
huge current problem on "bigred" at IU as you cannot chain MPI jobs in a
run since they do not end properly (when your job exits the queue
a special job goes around killing processes) although I haven't checked as
to whether the culprit is the mpi_finalize vs. mpi_abort; maybe I'll try
this and see if I can get sander chained on that machine...
--tom
Received on Sun Nov 18 2007 - 06:07:54 PST