Wait/Test(some/any/all) for events ?
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 598
- Forks
- 118
- Avg merge
- 21h 29m
- Merged PRs (30d)
- 1
Description
Individual events provided by async kernel launches have mechanisms to test/wait already, but if someone dispatches multiple kernels via forall and has multiple events related to those kernels, it doesn't seem like there is a mechanism provided (that I've located at least) to (a)synchronously poll a set of events for completion ( think MPI_Wait/Test(some/any/all) ).
For instance, launching multiple kernels to pack (workgroups might be preferable but there is an intermediate fix that needs to be made in our code to use those) information for halo exchange requires multiple events complete prior to initiating MPI sends.
I have implementations of the above that are analogous to the MPI async polling in our codebase for the above issue, porting these back into either RAJA (or CAMP, since the events returned from RAJA async foralls are camp objects) shouldn't be too difficult if people think they would be useful constructs to add.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing RAJA's async forall event APIs and the CAMP event objects returned by them, then compare the requested poll/wait-some/any/all behavior with the MPI analogy. The payload names no files or tests; the work is done when a scoped API location is agreed and the event-set completion behavior is implemented and verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- hpc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100