> This algorithm does not work for any stratum Shouldn’t it? The IS generated are local to global conversions. Here is my current approach.
Each Iocal IS will have local indices [0, 4) but the value of the index will be the global ID of the vertex, e.g. for 2 quads in a line (assuming as usual lowest rank owns points): 0——1——2 | P0 | P1 | |. |. | 3——4——5 VERTICES: IS Object: 2 MPI processes type: general [0] Number of indices in set 4 [0] 0 0 [0] 1 1 [0] 2 3 [0] 3 4 [1] Number of indices in set 4 [1] 0 -1 [1] 1 2 [1] 2 -4 [1] 3 5 So for total number of vertices the algorithm is: 1. Find max local IS value 2. Add 1 to it 3. All_reduce to proc 0 4. Find max of all_reduced values Best regards, Jacob Faibussowitsch (Jacob Fai - booss - oh - vitch) Cell: (312) 694-3391 > On Apr 16, 2020, at 8:37 PM, Matthew Knepley <[email protected]> wrote: > > On Thu, Apr 16, 2020 at 9:28 PM Jacob Faibussowitsch <[email protected] > <mailto:[email protected]>> wrote: >> 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. > > I do not understand this at all. This algorithm does not work for any > stratum. For example, suppose that we have a straight line of quad cells, > 1 per process. The vertices would be [1, 5) on all processes but there would > be 2*(P + 1) vertices. > > Thanks, > > Matt > >> 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] >> <mailto:[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/> > > > -- > 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/>
