-
Notifications
You must be signed in to change notification settings - Fork 94
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
Use Index map in PGM #1639
base: develop
Are you sure you want to change the base?
Use Index map in PGM #1639
Conversation
56d235d
to
b0e5f6d
Compare
f594348
to
87d62d3
Compare
core/multigrid/pgm.cpp
Outdated
auto seng_global_agg = imap.map_to_global( | ||
send_agg, experimental::distributed::index_space::local); |
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.
If I guess it correctly, you map the local index back to the global index to avoid the collision.
this is what I want to avoid because it needs twice of memory transferring between nodes.
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 would guess that the actual volume of the data transfer is negligible compared to the latency cost. Also, this is significantly simpler to what was there before.
9e52a2c
to
ded4dd3
Compare
9e52a2c
to
ded4dd3
Compare
ded4dd3
to
3ad5eee
Compare
3ad5eee
to
6395054
Compare
c3b27c2
to
bc75a0b
Compare
5233e98
to
7863f01
Compare
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.
LGTM generally, minor changes
c4e0766
to
51ee9dc
Compare
a75e164
to
7e19ec3
Compare
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.
does the #1589 require this?
I think some of matrix function are deleted in another pr.
@yhmtsai Yes #1589 needs this, because it removes some data members from the dist matrix class which the PGM accessed. Getting this data is not possible anymore when the dist matrix uses the row gatherer, since the data is hidden by the collective communicator from #1780. The issue is solved in the dist row gatherer pr, by letting the collective communicator handle the communication in the PGM. |
7e19ec3
to
8db4eea
Compare
c432ffc
to
f8cb0e8
Compare
8db4eea
to
5b5ddac
Compare
5b5ddac
to
5be2c7f
Compare
f8cb0e8
to
decc510
Compare
285ff97
to
71ac6a4
Compare
decc510
to
f2e677c
Compare
this also changes one constructor Signed-off-by: Marcel Koch <[email protected]>
Signed-off-by: Marcel Koch <[email protected]>
- documentation - refactor Co-authored-by: Fritz Goebel <[email protected]> Co-authored-by: Yu-Hsiang M. Tsai <[email protected]>u
f2e677c
to
b734fec
Compare
This PR enables using an index map to create the coarse level using PGM for distributed matrices. IMO this simplifies the PGM implementation, since there is no 'manual' implementation needed anymore.
This also has some consequences for the
distributed::Matrix
class. Namely, when creating a matrix with from local and non-local parts, an index map has to be supplied, instead of the list of vectors. Again, I think this should simplify the interface. Note that currently there is no accessor to the index map, since it's not necessary. But it might be useful for consistency.I guess this is also an interface breaking change.
Todo:
gather_as_global_index