Skip to content

Conversation

@majosm
Copy link
Collaborator

@majosm majosm commented Mar 16, 2022

We'll need something more general than the existing MPIMeshDistributor for multi-volume, because it currently does the partitioning on the inside and assumes a one-to-one relationship between ranks and partitions. This PR adds an mpi_distribute function which could be used to distribute mesh partitions without such assumptions. (It's more or less just an MPI_Scatter on a dict.)

Depends on #308.

@inducer inducer force-pushed the generic-part-bdry branch 3 times, most recently from 16581c5 to 0ade9cc Compare March 17, 2022 05:45
@inducer
Copy link
Owner

inducer commented Mar 17, 2022

assumes a one-to-one relationship between ranks and partitions.

I'm a little confused. As of #307, I believe this is no longer true. (see below)

@majosm
Copy link
Collaborator Author

majosm commented Mar 17, 2022

I'm a little confused. As of #307, I believe this is no longer true.

I don't see any changes to MPIMeshDistributor in #307, only MPIBoundaryCommSetupHelper. As far as I can tell the mesh distributor still interprets partitions as 1 per rank.

@inducer
Copy link
Owner

inducer commented Mar 17, 2022

I don't see any changes to MPIMeshDistributor in #307, only MPIBoundaryCommSetupHelper. As far as I can tell the mesh distributor still interprets partitions as 1 per rank.

Argh, you're completely right. I got the two mixed up in my head. 🤦 Sorry!

@inducer inducer force-pushed the generic-part-bdry branch from 0ade9cc to 697c371 Compare March 17, 2022 21:15
@majosm majosm force-pushed the mpi-distribute branch 2 times, most recently from 6befd1f to 040b06b Compare March 21, 2022 18:44
@majosm majosm force-pushed the mpi-distribute branch 2 times, most recently from 35ff48f to 7ba1c03 Compare April 21, 2022 20:30
majosm and others added 3 commits June 30, 2022 15:00
…#308)

* 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 <alexfikl@gmail.com>

* eliminate fun

Co-authored-by: Alex Fikl <alexfikl@gmail.com>

* 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 <inform@tiker.net>

* 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 <alexfikl@gmail.com>
Co-authored-by: Andreas Klöckner <inform@tiker.net>
@inducer inducer force-pushed the generic-part-bdry branch from 4f7bc42 to 28d2f34 Compare July 1, 2022 18:39
@inducer inducer deleted the branch inducer:generic-part-bdry July 1, 2022 19:39
@inducer inducer closed this Jul 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants