Skip to content

Conversation

@majosm
Copy link
Collaborator

@majosm majosm commented Aug 29, 2022

Adds the subset of changes from #236, #239, #243, and #246 needed to support multiple non-interacting volume discretizations in a discretization collection. Notably, this PR includes all of the interface changes needed to make illinois-ceesd/mirgecom#726 mergeable.

@majosm majosm force-pushed the multiple-independent-volumes branch 3 times, most recently from f328d36 to 51ea9ea Compare August 29, 2022 21:08
@majosm majosm marked this pull request as ready for review August 29, 2022 22:07
@majosm majosm requested a review from inducer August 29, 2022 22:07
@majosm majosm marked this pull request as draft August 30, 2022 19:10
@majosm
Copy link
Collaborator Author

majosm commented Aug 30, 2022

Back to draft for a bit (just noticed a spot in the MPI communication code where it's assuming single volume).

@majosm majosm force-pushed the multiple-independent-volumes branch from 51ea9ea to 12938f1 Compare September 1, 2022 17:08
@majosm majosm marked this pull request as ready for review September 1, 2022 19:33
@majosm
Copy link
Collaborator Author

majosm commented Sep 1, 2022

@inducer Fixed it (and added multi-volume MPI-enabled example in illinois-ceesd/mirgecom#726 to test it.)

@majosm
Copy link
Collaborator Author

majosm commented Sep 1, 2022

Also threw the untrace/with_boundary_tag helpers in here too.

@majosm majosm force-pushed the multiple-independent-volumes branch from 91deaa7 to 4cad825 Compare September 6, 2022 13:28
@inducer inducer force-pushed the multiple-independent-volumes branch from 4cad825 to 42fa3ad Compare September 12, 2022 03:53
e = dcoll.distributed_boundary_swap_connection(trace_dd)(i)
assert isinstance(trace_dd.domain_tag, BoundaryDomainTag)
if trace_dd.domain_tag.tag is FACE_RESTR_INTERIOR:
e = dcoll.opposite_face_connection(trace_dd.domain_tag)(i)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to have lost the ability to do distributed. How come?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was originally removed in #236, I guess in part because distributed_boundary_swap_connection was also removed. I didn't remove that method in this PR, so I restored the call here. I'm a little bit confused about what's actually going on in this code though... I thought the boundary swap connection was remote-to-local, not local-to-remote as it appears to be used here?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you think this is used as local-to-remote here? Not sure I follow this. At any rate, I've backed this out, we'll refit distributed support to this if/when needed.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I shouldn't have said local-to-remote -- that wouldn't make sense either. What I meant is that it's applying a connection that goes remote-to-local to something that's already on the local boundary discr (i). That seems at best redundant (if the discrs are the same) and at worst wrong (if they're different), right?

@majosm majosm mentioned this pull request Sep 13, 2022
11 tasks
@majosm majosm requested a review from inducer September 13, 2022 21:10
@majosm majosm mentioned this pull request Sep 23, 2022
2 tasks
@inducer inducer force-pushed the multiple-independent-volumes branch from 7e0380b to 0dc755e Compare September 26, 2022 02:52
Copy link
Owner

@inducer inducer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks! And sorry about the epic delay in getting this in.

e = dcoll.distributed_boundary_swap_connection(trace_dd)(i)
assert isinstance(trace_dd.domain_tag, BoundaryDomainTag)
if trace_dd.domain_tag.tag is FACE_RESTR_INTERIOR:
e = dcoll.opposite_face_connection(trace_dd.domain_tag)(i)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you think this is used as local-to-remote here? Not sure I follow this. At any rate, I've backed this out, we'll refit distributed support to this if/when needed.

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