<html><body>
<p>H Quincy <br>
<br>
Only Jeff has made any statement about his preference and he did not make a strong one.  We will need to see what the Forum thinks next week.<br>
<br>
I added a comment to the ticket today.  I think that having a LIFO order for attribute detach function callbacks is reasonable and not a very big burden on implementors.  Bill Gropp mentioned that MPICH uses a hash table and would need to revise their code but he did not think it would be very difficult.<br>
<br>
It seems reasonable to me to say that all objects that cache attributes must record them in order so that attribute delete and attribute copy callback functions can be executed in a predictable order.  For delete callbacks the logical order is LIFO.  Since we previously said the order was arbitrary for both delete and copy, it cannot break any compliant MPI application if copy functions also are triggered in LIFO order.<br>
<br>
If somebody argues attribute copy functions should be triggered in FIFO order, things get a bit messy but still not too bad.<br>
<br>
<br>
Dick Treumann  -  MPI Team           <br>
IBM Systems & Technology Group<br>
Dept X2ZA / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601<br>
Tele (845) 433-7846         Fax (845) 433-8363<br>
<br>
<br>
<tt>mpi-22-bounces@lists.mpi-forum.org wrote on 04/03/2009 03:01:53 PM:<br>
<br>
> [image removed] </tt><br>
<tt>> <br>
> Re: [Mpi-22] mpi-22 Digest, Vol 12, Issue 28</tt><br>
<tt>> <br>
> Quincey Koziol </tt><br>
<tt>> <br>
> to:</tt><br>
<tt>> <br>
> mpi-22</tt><br>
<tt>> <br>
> 04/03/2009 03:04 PM</tt><br>
<tt>> <br>
> Sent by:</tt><br>
<tt>> <br>
> mpi-22-bounces@lists.mpi-forum.org</tt><br>
<tt>> <br>
> Please respond to "MPI 2.2"</tt><br>
<tt>> <br>
> Hi Dick,<br>
> <br>
> On Mar 30, 2009, at 11:00 AM, treumann@us.ibm.com wrote:<br>
> <br>
> > Message: 3<br>
> > Date: Mon, 30 Mar 2009 10:09:44 -0400<br>
> > From: Richard Treumann <treumann@us.ibm.com><br>
> > Subject: Re: [Mpi-22] Ticket #71: Add routine for registering callback<br>
> >    when      finalize occurs<br>
> > To: "MPI 2.2" <mpi-22@lists.mpi-forum.org><br>
> > Message-ID:<br>
> >    <OF78D7D349.90931954- <br>
> > ON85257589.004B887F-85257589.004DCBDF@us.ibm.com><br>
> > Content-Type: text/plain; charset="us-ascii"<br>
> ><br>
> ><br>
> > I understand that the immediate motive is associated with the use of<br>
> > attribute delete callbacks that occur when MPI_COMM_SELF is freed at<br>
> > MPI_FINALIZE.<br>
> ><br>
> > That does not alter the fact that when MPI-2 imposed an implicit  <br>
> > free of<br>
> > MPI_COMM_SELF in MPI_FINALIZE to allow the use of attribute delete<br>
> > functions for cleanup it  involved a narrow extension of a general MPI<br>
> > facility related to attributes and certain object types. To allow  <br>
> > attribute<br>
> > delete functions for all other communicators (etc) to occur in  <br>
> > arbitrary<br>
> > order while demanding that attribute delete for MPI_COMM_SELF have a<br>
> > standards defined order is an inelegant hack (in my opinion).  Freeing<br>
> > MPI_COMM_SELF within MPI_FINALIZE was a relatively elegant hack  <br>
> > because it<br>
> > did not introduce inconsistency.<br>
> ><br>
> > Add to that the probability that an MPI implementor is likely to use  <br>
> > the<br>
> > same algorithms for all attribute management rather than write  <br>
> > special case<br>
> > code for MPI_COMM_SELF leads me to argue that if a defined order for<br>
> > attribute delete callbacks is adopted it should be adopted broadly to<br>
> > maintain a consistent flavor across the standard.<br>
> ><br>
> > If an existing MPI implementation is currently deleting in some  <br>
> > other order<br>
> > and an application happens to work on that MPI only because of that  <br>
> > order,<br>
> > that application is at least non-portable and probably should be  <br>
> > considered<br>
> > buggy.  If (or when) the implementation adopts the fifo order for  <br>
> > attribute<br>
> > deletes on "user_comm" it would be clear that the implementation  <br>
> > change had<br>
> > not "broken the user".<br>
> ><br>
> > A general mandate that attribute deletion callbacks on all object  <br>
> > types<br>
> > must occur in fifo order for an implementation to be MPI 2.2 compliant<br>
> > should not break any "correct" MPI application and should not be  <br>
> > noticeably<br>
> > harder for implementors.<br>
> ><br>
> > It will require tracking down all places in the standard that  <br>
> > currently say<br>
> > the order is arbitrary so it is harder to get all ducks in a row for  <br>
> > the<br>
> > ticket.<br>
> <br>
>    I'm willing to do the work to find the places in the standard which  <br>
> need to change, but need some general feedback about whether this is  <br>
> desired.  Any opinions?  Personally, I think it would be easier for  <br>
> implementors and more understandable to users to make things  <br>
> consistent across all attributes also, rather than treating  <br>
> MPI_COMM_SELF in a special way for the order of the delete callbacks.<br>
> <br>
>    Quincey<br>
> <br>
> [attachment "smime.p7s" deleted by Richard Treumann/Poughkeepsie/<br>
> IBM] _______________________________________________<br>
> mpi-22 mailing list<br>
> mpi-22@lists.mpi-forum.org<br>
> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22</a><br>
</tt></body></html>