<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Dec 7, 2017 at 10:26 AM, Vaclav Hapla <span dir="ltr"><<a href="mailto:vaclav.hapla@erdw.ethz.ch" target="_blank">vaclav.hapla@erdw.ethz.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> 9. 11. 2017 v 12:53, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>>:<br>
<span class="">><br>
> I think I need to create a proof-of-concept. I would start by employing MatPartitioning in PetscPartitionerPartition with anything outside of this function untouched for now (as already suggested in #192), if you agree.<br>
><br>
> Or what about implementing a special temporary PetscPartitioner implementation wrapping MatPartitioning?<br>
> PETSCPARTITIONERMATPARTITIONIN<wbr>G sounds crazy, though :) But could be a good starting point.<br>
><br>
> This is probably easier, and allows nice regression testing, namely run all tests using EXTRA_OPTIONS="-<wbr>petscparitioner_type matpartitioning". I think<br>
> that should be alright for correctness. There are some parallel redistribution tests in Plex.<br>
><br>
> We will need at least one performance regression. Look at how I do it here:<br>
><br>
>   <a href="https://bitbucket.org/petsc/petsc/src/312beb00c9b3e1e8ec8fac64a948a1af779da02f/src/dm/impls/plex/examples/tests/ex9.c?at=master&fileviewer=file-view-default" rel="noreferrer" target="_blank">https://bitbucket.org/petsc/<wbr>petsc/src/<wbr>312beb00c9b3e1e8ec8fac64a948a1<wbr>af779da02f/src/dm/impls/plex/<wbr>examples/tests/ex9.c?at=<wbr>master&fileviewer=file-view-<wbr>default</a><br>
><br>
> You can make custom events, directly access the times, and compare. You could run the two versions<br>
> and check for degradation for a sequence of meshes in parallel.<br>
><br>
>   Thanks,<br>
><br>
>      Matt<br>
<br>
</span>I have made some progress in this, see <a href="https://bitbucket.org/haplav/petsc/branch/haplav/feature-petscpartitionermatpartitioning" rel="noreferrer" target="_blank">https://bitbucket.org/haplav/<wbr>petsc/branch/haplav/feature-<wbr>petscpartitionermatpartitionin<wbr>g</a><br>
There's a new test ex23 which shows basically that<br>
  -petscparitioner_type parmetis<br>
and<br>
  -petscparitioner_type matpartitioning -mat_partitioning_type parmetis<br>
give exactly the same results.<br>
<br>
I have not created a PR yet since the regression testing you propose fails in some cases. When running<br>
  make -f gmakefile.test test EXTRA_OPTIONS="-<wbr>petscpartitioner_type matpartitioning -options_left 0" search='dm_impls_plex_tests%'<br>
it seems majority of tests pass but e.g. dm_impls_plex_tests-ex7_7 fails since its reference output has been saved for -petscpartitioner_type simple. How to deal with that, please?<br></blockquote><div><br></div><div>Ignore the ones with simple. I think all the SNES tests are now simple, so for ex12, ex62, and ex77 can you just do a few runs</div><div>and confirm that both ways give the same results?</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
As can be seen in my PetscPartitionerPartition_<wbr>MatPartitioning, the needed manipulations with IS are slightly more complicated than what I inferred from the Jed's comments. But still just the existing IS methods suffice. See <a href="http://bitbucket.org/haplav/petsc/src/ab7d5f43fd87d1d57b51b6e7ff8de0ef3e904673/src/dm/impls/plex/petscpartmatpart.c?at=haplav%2Ffeature-petscpartitionermatpartitioning#petscpartmatpart.c-92" rel="noreferrer" target="_blank">bitbucket.org/haplav/petsc/<wbr>src/<wbr>ab7d5f43fd87d1d57b51b6e7ff8de0<wbr>ef3e904673/src/dm/impls/plex/<wbr>petscpartmatpart.c?at=haplav%<wbr>2Ffeature-<wbr>petscpartitionermatpartitionin<wbr>g#petscpartmatpart.c-92</a><br>
<span class="HOEnZb"><font color="#888888"><br>
Vaclav</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>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><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>