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

make reduce return PendingSend #702

Closed
nmm0 opened this issue Feb 19, 2020 · 1 comment · Fixed by #714
Closed

make reduce return PendingSend #702

nmm0 opened this issue Feb 19, 2020 · 1 comment · Fixed by #714
Assignees

Comments

@nmm0
Copy link
Collaborator

nmm0 commented Feb 19, 2020

What Needs to be Done?
Currently theCollective()->reduce returns the sequence for the reduce rather than a PendingSend. This should be refactored to return a PendingSend to enable chaining.

Is your feature request related to a problem? Please describe.
Currently chaining does not support reduces

Describe potential solution outcome
Ideally, a reduces should be chainable. If there is a need for getting the epoch from the reduce there should be another way of getting it.

@nmm0
Copy link
Collaborator Author

nmm0 commented Feb 20, 2020

Make SequentialIDType id parameter to an in/out pointer defaulting to null:
SequentialIDType *id = nullptr

If it's nullptr, the user doesn't care about getting the sequential id back (and internally the seq id is seq_none)

If it's non-null and seq_none, then the user will get back the generated sequence id. If it's non-null and not seq_none, then that sequence id is used for the reduce operation

nmm0 added a commit that referenced this issue Feb 28, 2020
…w constructor that allows construction with the new EpochActionType. Additionally move some messages that are not used externally to private to preserve class invariant. Move the definitions of some non-templated functions to the source file. Make the move constructor noexcept.
nmm0 added a commit that referenced this issue Feb 28, 2020
… collective reduce, collections, and objgroups

This makes returning a sequentialID impossible. In order for collections to order properly, add a reduceImmediate public overload set that takes the same parameters as reduce but returns the sequential id instead of a PendingSend. This is used internally by the new reduce and collection reduceMsgExprImpl, but can be called by the user.
nmm0 added a commit that referenced this issue Mar 2, 2020
nmm0 added a commit that referenced this issue Mar 2, 2020
nmm0 added a commit that referenced this issue Mar 2, 2020
… reduce PendingSend

getEpochContextMsg mimicks the behavior of how the epoch is determined with send, but since a send may not happen this has to be done up front
nmm0 added a commit that referenced this issue Apr 29, 2020
…w constructor that allows construction with the new EpochActionType. Additionally move some messages that are not used externally to private to preserve class invariant. Move the definitions of some non-templated functions to the source file. Make the move constructor noexcept.
nmm0 added a commit that referenced this issue Apr 29, 2020
… collective reduce, collections, and objgroups

This makes returning a sequentialID impossible. In order for collections to order properly, add a reduceImmediate public overload set that takes the same parameters as reduce but returns the sequential id instead of a PendingSend. This is used internally by the new reduce and collection reduceMsgExprImpl, but can be called by the user.
nmm0 added a commit that referenced this issue Apr 29, 2020
nmm0 added a commit that referenced this issue Apr 29, 2020
nmm0 added a commit that referenced this issue Apr 29, 2020
… reduce PendingSend

getEpochContextMsg mimicks the behavior of how the epoch is determined with send, but since a send may not happen this has to be done up front
nmm0 added a commit that referenced this issue Apr 29, 2020
nmm0 added a commit that referenced this issue Apr 29, 2020
…s to have a PendingSend be dependent on two chain sets
nmm0 added a commit that referenced this issue Jul 15, 2020
…w constructor that allows construction with the new EpochActionType. Additionally move some messages that are not used externally to private to preserve class invariant. Move the definitions of some non-templated functions to the source file. Make the move constructor noexcept.
nmm0 added a commit that referenced this issue Jul 15, 2020
… collective reduce, collections, and objgroups

This makes returning a sequentialID impossible. In order for collections to order properly, add a reduceImmediate public overload set that takes the same parameters as reduce but returns the sequential id instead of a PendingSend. This is used internally by the new reduce and collection reduceMsgExprImpl, but can be called by the user.
nmm0 added a commit that referenced this issue Jul 15, 2020
nmm0 added a commit that referenced this issue Jul 15, 2020
nmm0 added a commit that referenced this issue Jul 15, 2020
…s to have a PendingSend be dependent on two chain sets
nmm0 added a commit that referenced this issue Aug 25, 2020
…w constructor that allows construction with the new EpochActionType. Additionally move some messages that are not used externally to private to preserve class invariant. Move the definitions of some non-templated functions to the source file. Make the move constructor noexcept.
nmm0 added a commit that referenced this issue Aug 25, 2020
… collective reduce, collections, and objgroups

This makes returning a sequentialID impossible. In order for collections to order properly, add a reduceImmediate public overload set that takes the same parameters as reduce but returns the sequential id instead of a PendingSend. This is used internally by the new reduce and collection reduceMsgExprImpl, but can be called by the user.
nmm0 added a commit that referenced this issue Aug 25, 2020
nmm0 added a commit that referenced this issue Aug 25, 2020
nmm0 added a commit that referenced this issue Aug 25, 2020
…s to have a PendingSend be dependent on two chain sets
nmm0 added a commit that referenced this issue Aug 25, 2020
nmm0 added a commit that referenced this issue Aug 25, 2020
…epCollective that the index exists in both chain sets
nmm0 added a commit that referenced this issue Aug 25, 2020
…orm bcast/send is added add extra checks for combining those in the chainset.
nmm0 added a commit that referenced this issue Aug 25, 2020
…o reflect that the chain sets deal with indices, not necessarily all resident elements from the collection
nmm0 added a commit that referenced this issue Aug 25, 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.

1 participant