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

Rework prif_co_reduce implementation #69

Open
ktras opened this issue Feb 28, 2024 · 3 comments
Open

Rework prif_co_reduce implementation #69

ktras opened this issue Feb 28, 2024 · 3 comments

Comments

@ktras
Copy link
Collaborator

ktras commented Feb 28, 2024

Rework the prif_co_reduce implementation to stop using the current strategy involving the abstract interfaces for the various C interoperable types. This may be a prerequisite to supporting non-blocking co_reduce.

@everythingfunctional
Copy link
Collaborator

We should also allow it to support reduction on derived types. See #72

@bonachea
Copy link
Member

Tangential note: Motivated by this use case, we've opened two relevant GASNet-EX enhancement requests that would each eventually help enable Caffeine to provide non-blocking co_reduce for all allowed types:

  • Bug 4696 - RFE: user_cdata cleanup for reduction operations
  • Bug 4697 - RFE: provide more data to user-defined reduction operators

Hopefully at least one of these will be deployed by the time we reach that stage.

This is orthogonal to the cleanups needed for the current blocking co_reduce implementation.

@bonachea
Copy link
Member

Another related task for cleaning up co_reduce implementation:

Stop repeatedly calling caf_same_cfi_type() in co_reduce (each of which entails a cross-language call) and instead use select type to make this faster for at least the built-in types.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants