> 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 <[email protected]> wrote: > > On Thu, Apr 16, 2020 at 9:04 PM Jacob Faibussowitsch <[email protected] > <mailto:[email protected]>> 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/>
