On Thu, Dec 7, 2017 at 10:26 AM, Vaclav Hapla <[email protected]> wrote:
> > > > 9. 11. 2017 v 12:53, Matthew Knepley <[email protected]>: > > > > 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. > > > > Or what about implementing a special temporary PetscPartitioner > implementation wrapping MatPartitioning? > > PETSCPARTITIONERMATPARTITIONING sounds crazy, though :) But could be a > good starting point. > > > > This is probably easier, and allows nice regression testing, namely run > all tests using EXTRA_OPTIONS="-petscparitioner_type matpartitioning". I > think > > that should be alright for correctness. There are some parallel > redistribution tests in Plex. > > > > We will need at least one performance regression. Look at how I do it > here: > > > > https://bitbucket.org/petsc/petsc/src/312beb00c9b3e1e8ec8fac64a948a1 > af779da02f/src/dm/impls/plex/examples/tests/ex9.c?at= > master&fileviewer=file-view-default > > > > You can make custom events, directly access the times, and compare. You > could run the two versions > > and check for degradation for a sequence of meshes in parallel. > > > > Thanks, > > > > Matt > > I have made some progress in this, see https://bitbucket.org/haplav/ > petsc/branch/haplav/feature-petscpartitionermatpartitioning > There's a new test ex23 which shows basically that > -petscparitioner_type parmetis > and > -petscparitioner_type matpartitioning -mat_partitioning_type parmetis > give exactly the same results. > > I have not created a PR yet since the regression testing you propose fails > in some cases. When running > make -f gmakefile.test test EXTRA_OPTIONS="-petscpartitioner_type > matpartitioning -options_left 0" search='dm_impls_plex_tests%' > 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? > 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 and confirm that both ways give the same results? Thanks, Matt > As can be seen in my PetscPartitionerPartition_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 bitbucket.org/haplav/petsc/src/ab7d5f43fd87d1d57b51b6e7ff8de0 > ef3e904673/src/dm/impls/plex/petscpartmatpart.c?at=haplav%2Ffeature- > petscpartitionermatpartitioning#petscpartmatpart.c-92 > > Vaclav -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
