[Mpi3-hybridpm] Ref-counted MPI_INIT/MPI_FINALIZE proposal

Jeff Squyres (jsquyres) jsquyres at cisco.com
Tue Mar 26 07:34:21 CDT 2013

Originally proposed here:


The main idea was simple: MPI_INIT[_THREAD] can be called as many times as you want.  MPI won't be finalized until MPI_FINALIZE is called (num_times_MPI_INIT_was_called + num_times_MPI_INIT_THREAD_was_called) times.

Keep in mind that any MPI_INIT_THREAD can still return something less than THREAD_MULTIPLE.

Random points of feedback from the Forum on this proposal (before it was dropped in favor of Marc Snir's INIT/FINALIZE revamp, which eventually got rejected):

- Do we still need to have the first INIT and the last FINALIZE be on the same thread?  Indeed, is the concept of "main thread" relevant any more?

- Should we separate the concepts of thread level from initialization?  I.e., have MPI_INIT and MPI_SET_THREAD_LEVEL?

- Should we introduce the concept of re-initialization?  (i.e., initialize a process again after it has been finalized?)  IMHO: This seems like a can of worms (e.g., what happens if one process in MPI_COMM_WORLD finalizes and then re-initializes, but the others do not re-initialize?).  Let's leave it closed.

I've since lost the latex source for the PDF on that ticket, but it should be fairly simple to recreate, if necessary.

Jeff Squyres
jsquyres at cisco.com
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/

More information about the mpiwg-hybridpm mailing list