NVIDIA / NVIDIA/cccl

[THEME] Asynchronous Parallel Algorithms

Open
#46 0 comments 1 reaction 0 assignees View on GitHub
libcu++
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.