<div dir="ltr">On Mon, Sep 23, 2013 at 12:25 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> writes:<br>
>    So we then freely change the thread offsets in the layout based on<br>
>    the matrix entries?<br>
<br>
</div>I would prefer to only allow it before PetscLayoutSetUp.<br>
<div class="im"><br>
>    This means the Vec and Mat Layouts have to be same? This is true if<br>
>    the Vecs are obtained with MatGetVecs() after the matrix is created<br>
>    but not if the Vecs are created independently. Of for the MatMult<br>
>    do you just use the thread offsets from the Mat layout and ignore<br>
>    the Vec layout if it is different?<br>
<br>
</div>If they are different, I would ignore the Vec layout.  (Favor load<br>
balance and NUMA distribution of the matrix over NUMA distribution of<br>
the Vec.)<br>
</blockquote></div><div><br></div><div>I am not sold on this interface. The weight really belongs in the partitioning engine, or whatever</div><div>gets fed to it. PetscLayout is the structure that is produced after the fact. I don't think the weight</div>
<div>goes there.</div><div><br></div><div>   Matt</div><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>