<div dir="ltr">Yes, I'm working on it.<div>Hong</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 31, 2013 at 4:45 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<a href="https://bitbucket.org/petsc/petsc/issue/46/replace-petscsubcomm-with-the-information" target="_blank">https://bitbucket.org/petsc/petsc/issue/46/replace-petscsubcomm-with-the-information</a><br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Jul 31, 2013, at 10:59 AM, Jed Brown <<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>> wrote:<br>
<br>
> Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> writes:<br>
><br>
>>  Jed,<br>
>><br>
>>    Hong and I were discussing MatGetRedundantMatrix() etc and she<br>
>>    mention that you don't like PetscSubcomm. I suggested removing the<br>
>>    PetscSubcomm object from PETSc but retaining the functionality of<br>
>>    PetscSubcomm by putting the subcomm information into an MPI<br>
>>    attribute inside an MPI_Comm (so this new comm behaves like a<br>
>>    MPI_Comm subclass with extra data over a regular MPI_Comm) and<br>
>>    having something like PetscCommSublimate(comm, …., &subcomm with<br>
>>    attribute). Then in all the places in PETSc that take PetscSubcomm<br>
>>    they would instead take a MPI_Comm and check for the attribute and<br>
>>    use the additional information if it is there.<br>
><br>
> I would be inclined to remove dependence on this extra information<br>
> whenever possible.  For example, I think it is counter-productive in<br>
> MatGetRedundantMatrix because it imposes a distribution that has poor<br>
> locality.  But if we need that extra information, or can do something<br>
> better if it is there, I prefer attaching it as an attribute to having a<br>
> wrapper (PetscSubcomm).<br>
><br>
>>    Managing destruction will be tricky due to possible reference<br>
>>    loops but presumably we can figure out a way to do it.<br>
><br>
> What is missing in the MPI attribute callbacks to implement reference<br>
> counting?  (We already use it for this purpose.)<br>
<br>
</div></div></blockquote></div><br></div>