[Mpi-forum] MPI_Abort - meaning

Jeff Squyres jsquyres at cisco.com
Tue Apr 6 16:37:42 CDT 2010

On Apr 6, 2010, at 4:51 PM, Richard Treumann wrote:

> This again brings me back to thinking perhaps the MPI standard cannot offer any decent semantic for a single task making a decision to terminate with success and the people who want this for their applications cannot have it.

It's almost the same semantic as:

   if (i_have_reached_a_good_state) {
        printf("Hey user -- we're good.  Hit ctrl-c, will ya?\n");
        while (1) sleep(100000);

Right?  I know that ctrl-c processing (or equivalent) is not mandated -- but it's supported by all MPI implementations.

I would assume that your initial assertions are useful: basically, no guarantees are given about the state of anything.  If you're calling MPI_QUIT, you're doing so because you don't want to implement a (perhaps complex) control protocol that can shut down all MPI processes in an orderly fashion.  You want a more-or-less immediate shutdown of all MPI processes with indication of a "successful" shutdown.

I'm sure there's some corner cases to figure out, though -- here's a few off the top of my head:

- what happens if MPI_QUIT and MPI_ABORT are invoked simultaneously in multiple MPI processes?  What about in the same process?

- what happens if an error occurs in MPI_QUIT processing?

Jeff Squyres
jsquyres at cisco.com
For corporate legal information go to:

More information about the mpi-forum mailing list