[Mpi3-tools] Tools WG webex: tomorrow!

Jeff Squyres (jsquyres) jsquyres at cisco.com
Tue Jul 2 19:28:35 CDT 2013

On Jul 2, 2013, at 4:58 PM, Fab Tillier <ftillier at microsoft.com> wrote:

> Yes, and Dave highlighted the relevant section, specifically the paragraph starting on page 269 line 40:
> "This function is called by MPI_COMM_FREE ... to do whatever is needed to remove an attribute.  The function returns ... an error code on failure (in which case MPI_COMM_FREE will fail)."
> The second sentence defines behavior, and IMO eliminates any question as to the meaning "is called by".

FWIW, we have a comment in OMPI that we delete attributes at communicator "free" time (vs. communicator destruction time) for exactly this reason:

    /* Release attributes.  We do this now instead of during the
       communicator destructor for 2 reasons:

       1. The destructor will only NOT be called immediately during
       ompi_comm_free() if the reference count is still greater
       than zero at that point, meaning that there are ongoing
       communications.  However, pending communications will never
       need attributes, so it's safe to release them directly here.

       2. Releasing attributes in ompi_comm_free() enables us to check
       the return status of the attribute delete functions.  At
       least one interpretation of the MPI standard (i.e., the one
       of the Intel test suite) is that if any of the attribute
       deletion functions fail, then MPI_COMM_FREE /
       MPI_COMM_DISCONNECT should also fail.  We can't do that if
       we delay releasing the attributes -- we need to release the
       attributes right away so that we can report the error right
       away. */

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-tools mailing list