<div dir="ltr"><div>Eek, ok..  I guess there are a few options.  We could restrict what you can do in a callback, but that would break backward compatibility.  We could add a caveat that MPI_Comm_free needs to be called concurrently on all ranks if there are any attribute callbacks that might want to use a collective.  Worst case, we could remove the concurrency exception for MPI_Comm_free on an endpoints communicator.<br>
</div><div><br></div><div> ~Jim.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Mar 6, 2014 at 10:59 AM, Jeff Squyres (jsquyres) <span dir="ltr"><<a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There are (currently) no restrictions on what can happen in attribute callback functions.<br>
<br>
See Fab's presentation from several months ago (I don't remember when, exactly, but the meeting was in San Jose/Cisco) about all the problems w/ attributes -- this is one of them (unrestricted access in callback functions).<br>

<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Mar 6, 2014, at 7:51 AM, "Balaji, Pavan" <<a href="mailto:balaji@anl.gov">balaji@anl.gov</a>> wrote:<br>
<br>
><br>
> I’m pretty sure that’s not correct.  You can have large collective ops and other operations in the callbacks.  HDF5 and PETSc do all sorts of stuff in these callbacks.<br>
><br>
>  — Pavan<br>
><br>
> On Mar 6, 2014, at 9:39 AM, Jim Dinan <<a href="mailto:james.dinan@gmail.com">james.dinan@gmail.com</a>> wrote:<br>
><br>
>> I believe that the copy and free attribute callbacks are intended to be local functions that deal with objects the user has attached as attributes, that might need to be copied or freed.  Can't find text that confirms this explicitly, though..<br>

>><br>
>><br>
>> On Wed, Mar 5, 2014 at 6:31 PM, Balaji, Pavan <<a href="mailto:balaji@anl.gov">balaji@anl.gov</a>> wrote:<br>
>><br>
>> The endpoints proposal says that Comm_free is not fully synchronizing.  What happens if I have an attribute callback on that communicator which does a Bcast?  How will that work?<br>
>><br>
>>  — Pavan<br>
>><br>
>> _______________________________________________<br>
>> mpiwg-hybridpm mailing list<br>
>> <a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org">mpiwg-hybridpm@lists.mpi-forum.org</a><br>
>> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm</a><br>
>><br>
>> _______________________________________________<br>
>> mpiwg-hybridpm mailing list<br>
>> <a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org">mpiwg-hybridpm@lists.mpi-forum.org</a><br>
>> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm</a><br>
><br>
> _______________________________________________<br>
> mpiwg-hybridpm mailing list<br>
> <a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org">mpiwg-hybridpm@lists.mpi-forum.org</a><br>
> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm</a><br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Jeff Squyres<br>
<a href="mailto:jsquyres@cisco.com">jsquyres@cisco.com</a><br>
For corporate legal information go to: <a href="http://www.cisco.com/web/about/doing_business/legal/cri/" target="_blank">http://www.cisco.com/web/about/doing_business/legal/cri/</a><br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
mpiwg-hybridpm mailing list<br>
<a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org">mpiwg-hybridpm@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm</a><br>
</div></div></blockquote></div><br></div>