[THEME] Asynchronous Parallel Algorithms
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 487
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 296
Description
The Sender model in [P2300](www.wg21.link/p2300)/[stdexec](https://github.com/NVIDIA/stdexec) gives C++ a standard model for expressing pipelines of asynchronous work.
One of the major open questions is how parallel algorithms like `std::reduce` or `std::inclusive_scan` will interoperate with the Sender model. This boils down to two main questions:
1. How do we execute the _existing_ parallel algorithms on a P2300 scheduler?
- This is primarily an issue of bridging the gap such that existing parallel algorithms can minimally interoperate with P2300. As such, this question is not our primary concern. Furthermore, [P2500](www.wg21.link/p2500) attempts to address this issue already.
2. How do we design _new_ asynchronous, parallel algorithms interfaces that can be part of a Sender pipeline?
- This is what we are mainly interested in. We want to be able to express a pipeline of senders where you can natively insert algorithms like `sort`, `reduce`, `inclusive_scan` into the chain of asynchronous work, e.g., `bulk(...) | transform(...) | sort(...) | reduce(...)`.
- [ ] https://github.com/NVIDIA/cccl/issues/44
- [ ] https://github.com/NVIDIA/cccl/issues/45
Contributor guide
Assessment
This issue has not been assessed yet.