[petsc-dev] Will DMPlexDistribute only ever distribute Cells?

Jacob Faibussowitsch jacob.fai at gmail.com
Thu Apr 16 20:28:23 CDT 2020


> What do you want to do? 
Count the global number of points per depth based on all_reduce’ing the maximum positive value returned from the IS’s listed below. This works as intended for anything but cells since global number of points = max(IS) + 1. For cells this breaks since 1 rank reports 3 as max, the next reports 6, etc.

>  The system should be flexible enough to distribute whatever you want
What is the best way to check that a non-standard distribute has been done? 

Best regards,

Jacob Faibussowitsch
(Jacob Fai - booss - oh - vitch)
Cell: (312) 694-3391

> On Apr 16, 2020, at 8:17 PM, Matthew Knepley <knepley at gmail.com> wrote:
> 
> On Thu, Apr 16, 2020 at 9:04 PM Jacob Faibussowitsch <jacob.fai at gmail.com <mailto:jacob.fai at gmail.com>> wrote:
> Hello All,
> 
> TL;DR: Is it possible now, or is it a planned feature, for plex to distribute over anything but points with height = 0? 
> 
> If I understand this correctly when plex currently partitions a graph, points with height 0 are only owned by a single process, but all other points can be co-owned by multiple procs.  For example for a 2D plex with 8 vertices, 12 edges, and 6 cells over 2 procs these are the global-local IS’s for all points on processes (negative values indicate ownership by another proc) the final IS corresponding to cells will always have positive values as each proc is the sole owner of its cells.
> 
> What do you want to do? The system should be flexible enough to distribute whatever you want, but the current guarantee
> is that the cone of any points is always available. So if you decide to distribute something else, like faces, then it ends up
> looking just like an overlapping mesh with some custom overlap. Moreover, the dual mesh only really makes sense for cells.
> For faces/edges you would need a hypergraph partitioner.
> 
>   Thanks,
> 
>      Matt
>  
> VERTICES
> IS Object: 2 MPI processes
>   type: general
> [0] Number of indices in set 7
> [0] 0 -2
> [0] 1 0
> [0] 2 -3
> [0] 3 -4
> [0] 4 -5
> [0] 5 -6
> [0] 6 -8
> [1] Number of indices in set 7
> [1] 0 1
> [1] 1 2
> [1] 2 3
> [1] 3 4
> [1] 4 5
> [1] 5 6
> [1] 6 7
> 
> EDGES
> IS Object: 2 MPI processes
>   type: general
> [0] Number of indices in set 9
> [0] 0 0
> [0] 1 1
> [0] 2 -4
> [0] 3 -5
> [0] 4 -6
> [0] 5 2
> [0] 6 -7
> [0] 7 -9
> [0] 8 -11
> [1] Number of indices in set 9
> [1] 0 3
> [1] 1 4
> [1] 2 5
> [1] 3 6
> [1] 4 7
> [1] 5 8
> [1] 6 9
> [1] 7 10
> [1] 8 11
> 
> CELLS
> IS Object: 2 MPI processes
>   type: general
> [0] Number of indices in set 3
> [0] 0 0
> [0] 1 1
> [0] 2 2
> [1] Number of indices in set 3
> [1] 0 3
> [1] 1 4
> [1] 2 5 
> 
> Best regards,
> 
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
> Cell: (312) 694-3391
> 
> 
> 
> -- 
> 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.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20200416/1c3548df/attachment.html>


More information about the petsc-dev mailing list