[petsc-dev] proposed minor PetscPartitioner changes

Fande Kong fdkong.jd at gmail.com
Tue Nov 20 15:42:08 CST 2018


Thanks, Vaclav and Barry,

I will be keeping using MatPartitioning interface.

Fande,

On Tue, Nov 20, 2018 at 2:29 PM Hapla Vaclav <vaclav.hapla at erdw.ethz.ch>
wrote:

> Yes, MatPartitioning is a much more general thing and should stay in PETSc
> in long term. PetscPartitioner works just with DMPlex. My
> PETSCPARTITIONERMATPARTITIONING is a wrapper of MatPartitioner into
> PetscPartitioner so any MatPartitioning can already be used also for
> DMPlex. Hence, it also shows that this class is really redundant.
>
> It was my first contribution in this direction and then I had to switch to
> other topics for several months. However, I'm still interested in it
> although it's not a thing I could do full time. I will look at it and think
> about a next achievable step.
>
> Fande, if you build on MatPartitioning, you do it right and keep going
> this way.
>
> Vaclav
>
> > 20. 11. 2018 v 18:26, Smith, Barry F. via petsc-dev <
> petsc-dev at mcs.anl.gov>:
> >
> >
> >   MatPartitioning is the future. It is just a question of stripping out
> the PetscPartitioner and replacing it with the MatPartitioner.   Yes, once
> this was determined we lost interest in actually doing the work of
> stripping it out.
> >
> >
> >     Barry
> >
> >
> >> On Nov 20, 2018, at 11:12 AM, Fande Kong via petsc-dev <
> petsc-dev at mcs.anl.gov> wrote:
> >>
> >> I was wondering what is the conclusion on this?
> >>
> >> PetscPartitioner and MatPartitioning, which one will be kept? There is
> the code duplication. I am asking because I an working on a hierarchical
> partitioning based MatPartitioning Interface and we also use
> MatPartitioning Interface in MOOSE to access all external partitioners.
> >>
> >> Just want to make sure I am using the right partitioning interface.
> >>
> >> Thanks,
> >>
> >> Fande,
> >>
> >>
> >>
> >> On Thu, Dec 7, 2017 at 8:33 AM Matthew Knepley <knepley at gmail.com>
> wrote:
> >> On Thu, Dec 7, 2017 at 10:26 AM, Vaclav Hapla <
> vaclav.hapla at erdw.ethz.ch> wrote:
> >>
> >>
> >>> 9. 11. 2017 v 12:53, Matthew Knepley <knepley at gmail.com>:
> >>>
> >>> 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/312beb00c9b3e1e8ec8fac64a948a1af779da02f/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/ab7d5f43fd87d1d57b51b6e7ff8de0ef3e904673/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/
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20181120/9911eabf/attachment.html>


More information about the petsc-dev mailing list