-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recast partition_mesh
in terms of generic part identifiers
#308
Conversation
@inducer Is there a way I can get the CI to run on this? (Not sure why it isn't; maybe because the target branch isn't main?) |
Looks like it was just taking a while...? |
Github is having some issues today: https://www.githubstatus.com/ |
d3a8d25
to
094c5e3
Compare
I think this is ready for a look, apart from the doc failures (which I'm not sure how to fix). |
You need to add
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not familiar with the MPI parts of meshmode, but was looking a bit through this and left some nitpicks!
40f7690
to
882a1bf
Compare
Sorry about the conflicts! Turns out I had some uncommitted work lying around that was needed to get inducer/grudge#236 to go. |
16581c5
to
0ade9cc
Compare
One question I have about this is to what extent this is at odds with the current approach in inducer/grudge#236, specifically when you say
I feel like this is headed for |
I was picturing that |
The issue I see is that, on many occasions, grudge (at least as currently done in inducer/grudge#236, though I don't see how to avoid it) needs to pick apart the boundary tag to understand its components (to see which ranks/volumes are being connected), so making the parition IDs entirely opaque won't do. |
Right, that sounds fine to me. The idea here was to make it opaque to meshmode (and thus avoid the need to postprocess the partitioned mesh in order to relabel the tags). The grudge code can still use the partition identifier data however it wants. |
103f3ae
to
6340cf1
Compare
That's no fun! :P |
That's sort of my question though. Unless we make grudge live with |
That's kind of what I was thinking. I assume we will need a function in grudge that does the mesh partitioning anyway (using |
Hmm. That's what I figured. The one fly in that ointment is that, currently, |
Would it possibly help if the facial adjacency groups had volumes associated with them? We'll need to read in the volume tags in |
That might be convenient for easier partitioning, but for the above problem, that's neither here nor there IMO. That's because by the time we get to grudge, each different volume is a separate |
The initial sense I'm getting is that this is a good direction. I should have that pushed in a bit. |
0ade9cc
to
697c371
Compare
Urgh. So, in order to support the changes in inducer/grudge#236 that we discussed (which I still like), I ended up making some changes to #307 that I think duplicate some of what you did here. IOW, I made another mess of conflicts. Sorry! |
Co-authored-by: Andreas Klöckner <[email protected]>
1dbee5c
to
d145b59
Compare
2d78953
to
772a3d4
Compare
Ready to look at? Or would you like me to wait? (I ask because it's not draft, but there also isn't an explicit review request.) |
Grrr, again. Sorry. :) |
772a3d4
to
1829309
Compare
If the CI passes, this should be ready for review now. Couple of notes:
|
partition_mesh
in terms of generic partition identifierspartition_mesh
in terms of generic part identifiers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Just a few minor things, then this is good to go. (Feel free to squash+merge when done.)
* simplify partition_mesh interface * add get_connected_partitions back to docs * use opaque partition ID instead of number in partition_mesh * use self/other instead of local/nonlocal * fix compatibility * remove unnecessary import Co-authored-by: Alex Fikl <[email protected]> * eliminate fun Co-authored-by: Alex Fikl <[email protected]> * stamp out remaining traces of fun * rename membership_list_to_sets -> membership_list_to_map and store index sets as numpy arrays instead of python sets * remove return_sets option from get_partition_by_pymetis * fix bugs in MPIBoundaryCommSetupHelper * flake8 * fix bug * add a couple of fixmes * handle groupless mesh case in dim/ambient_dim * Revert "handle groupless mesh case in dim/ambient_dim" not a good solution * disable removal of empty mesh groups in partitioning * fix some issues with partitioning docs * remove empty-group filtering * clarify part vs. partition terminology * change some asserts to exceptions * add a couple of FIXMEs * cosmetic change Co-authored-by: Andreas Klöckner <[email protected]> * detect elements that belong to multiple parts * add return_parts argument to partition_mesh * add type hints to mesh partitioning * Fix some annotations in mesh.processing * add explicit part_id attribute to InterPartAdjacencyGroup * cosmetic change * fix some type annotations * Dict -> Mapping * fix outdated argument reference in docstring * try using just dtype dtype[Any] requires python 3.9 Co-authored-by: Alex Fikl <[email protected]> Co-authored-by: Andreas Klöckner <[email protected]>
* simplify partition_mesh interface * add get_connected_partitions back to docs * use opaque partition ID instead of number in partition_mesh * use self/other instead of local/nonlocal * fix compatibility * remove unnecessary import Co-authored-by: Alex Fikl <[email protected]> * eliminate fun Co-authored-by: Alex Fikl <[email protected]> * stamp out remaining traces of fun * rename membership_list_to_sets -> membership_list_to_map and store index sets as numpy arrays instead of python sets * remove return_sets option from get_partition_by_pymetis * fix bugs in MPIBoundaryCommSetupHelper * flake8 * fix bug * add a couple of fixmes * handle groupless mesh case in dim/ambient_dim * Revert "handle groupless mesh case in dim/ambient_dim" not a good solution * disable removal of empty mesh groups in partitioning * fix some issues with partitioning docs * remove empty-group filtering * clarify part vs. partition terminology * change some asserts to exceptions * add a couple of FIXMEs * cosmetic change Co-authored-by: Andreas Klöckner <[email protected]> * detect elements that belong to multiple parts * add return_parts argument to partition_mesh * add type hints to mesh partitioning * Fix some annotations in mesh.processing * add explicit part_id attribute to InterPartAdjacencyGroup * cosmetic change * fix some type annotations * Dict -> Mapping * fix outdated argument reference in docstring * try using just dtype dtype[Any] requires python 3.9 Co-authored-by: Alex Fikl <[email protected]> Co-authored-by: Andreas Klöckner <[email protected]>
Should remove the need for a custom partition boundary tag in grudge.
Targets #307.