Skip to content
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

Add a collective broadcast call for collections #1024

Closed
lifflander opened this issue Sep 3, 2020 · 3 comments · Fixed by #1065
Closed

Add a collective broadcast call for collections #1024

lifflander opened this issue Sep 3, 2020 · 3 comments · Fixed by #1065
Assignees

Comments

@lifflander
Copy link
Collaborator

What Needs to be Done?

Currently, if a user does proxy.broadcast<MyMsg, &MyCol::handler>() it is a rooted call that only one rank should invoke if a single broadcast is the intention. However, for more SPMD programs, often every node might know and want to participate in the broadcast, which can make it significantly cheaper (a simple local traversal). This also might make sense in the context of chainsets with more SPMD-like style.

Maybe we can call it proxy.broadcastCollective although that seems a little long. @PhilMiller ideas on a good name of this?

@PhilMiller
Copy link
Member

I think that's probably the right name, given naming conventions in the rest of the system.

It may be somewhat unfortunate, in that in the long run, we maybe expect the collective versions of many things to be the default; they're potentially more efficient if the control flow allows for their use, and they don't require a surrounding if (node == 0) { } block.

Should we start moving toward explicitly naming both fooRooted and fooCollective, and plan to assess which one gets more use over time?

@lifflander
Copy link
Collaborator Author

Yes, I think that's a good idea to start explicitly naming them like that.

@lifflander
Copy link
Collaborator Author

@JacobDomagala Phil and I discussed this and we want to continue with the local delivery without any coordination.

JacobDomagala added a commit that referenced this issue Sep 20, 2020
JacobDomagala added a commit that referenced this issue Sep 22, 2020
JacobDomagala added a commit that referenced this issue Sep 22, 2020
JacobDomagala added a commit that referenced this issue Sep 22, 2020
bradybray pushed a commit that referenced this issue Oct 15, 2020
bradybray pushed a commit that referenced this issue Oct 15, 2020
…or of broadcastMsg/sendMsg (with MsgPtrThief<Msg>) for Objgroup proxy
bradybray pushed a commit that referenced this issue Oct 15, 2020
…oes the action instead of passing the message to these functions
bradybray pushed a commit that referenced this issue Oct 15, 2020
bradybray pushed a commit that referenced this issue Oct 15, 2020
bradybray pushed a commit that referenced this issue Oct 15, 2020
bradybray pushed a commit that referenced this issue Oct 15, 2020
bradybray pushed a commit that referenced this issue Oct 15, 2020
…f sendMsg(which takes MsgPtrThief) for collection proxy
bradybray pushed a commit that referenced this issue Oct 15, 2020
bradybray pushed a commit that referenced this issue Oct 15, 2020
…or of broadcastMsg/sendMsg (with MsgPtrThief<Msg>) for Objgroup proxy
bradybray pushed a commit that referenced this issue Oct 15, 2020
…oes the action instead of passing the message to these functions
bradybray pushed a commit that referenced this issue Oct 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants