-
Notifications
You must be signed in to change notification settings - Fork 86
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
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
this also changes one constructor
ded4dd3
to
3ad5eee
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