[Mpi-forum] Question about the semantics of MPI_Comm_disconnect

Jeff Squyres (jsquyres) jsquyres at cisco.com
Tue Nov 12 13:08:49 CST 2013

On Nov 12, 2013, at 2:02 PM, Nathan Hjelm <hjelmn at lanl.gov> wrote:

> I am trying to understand the semantics of MPI_Comm_disconnect but there is a contradiction in the standard. On page 400, lines 29-31 the standard states:
> MPI_COMM_DISCONNECT may be called only if all communication is complete and
> matched, so that buffered data can be delivered to its destination. This requirement is the same as for MPI_FINALIZE.

I'm also curious about the phrase "complete and matched" -- does anyone know why it says "and matched"?  I would think that "complete" directly implies "matched".  ...or did it mean to say "...or matched" (vs. "...and matched")?

> Which suggests that all communication MUST be complete before MPI_Comm_disconnect is called. But if I look at lines 41-43 I see this:
> Rationale. It would be nice to be able to use MPI_COMM_FREE instead, but that
> function explicitly does not wait for pending communication to complete. (End of
> rationale.)

Also, some normative text on line 32 says:

    MPI_COMM_DISCONNECT has the same action as MPI_COMM_FREE, except that it waits for pending communication to finish internally...

Which seems to directly contradict the statement starting on line 28.

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 mpi-forum mailing list