-
Notifications
You must be signed in to change notification settings - Fork 7
MPI shared memory #14
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
Conversation
92e2e2b to
1738e29
Compare
hmenke
left a comment
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.
Can we make this non-MPI compatible?
7a4661b to
9b51e65
Compare
hmenke
left a comment
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.
@Wentzell LGTM, only minor nitpick.
Wentzell
left a comment
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.
|
Thank you also @Thoemi09 for your improvements |
hmenke
left a comment
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, but could you please not squash on merge? This makes it much easier to bisect later if something is wrong. You can clean up the history and rebase on unstable if you want.
I would have been ok with a full squash, but if you want group things into a few commits along the way, feel free to create a suggested a grouping. |
All tests were run with multiple nodes and different number of slots on each node:
Some ideas:
MPI allocatorSimilar to
std::allocatorimplement ashared_allocatorand adistributed_shared_allocator, such that one can use e.g.std::vector<double, mpi::shared_allocator<double>>Questions:
split_shared()on the default communicator, but for distributed shared memory there needs to be internode communication and that is not easily guessed from the default communicator. Maybe a global hash table with allocation information is needed?On top of that, for distributed shared memory access must be fenced and broadcasted between nodes. That's not so easy to abstract away.