[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