[EPIC] Fork/Join Parallel Ranges
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 487
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 296
Description
Looking towards the future of C++ parallel algorithms, `` are becoming the canonical model for expressing and composing algorithms with arbitrary transformations. As such, we want the next generation of Thrust/CUB-like parallel algorithms to be based on ranges.
Thus far, `` has been designed primarily with sequential execution in mind. In order for us to build a next generation set of parallel algorithms and utilities, we will need to investigate to what extent the existing `` design supports parallel execution.
The high-level goal is that we should be able to use a ranges-based interface to express anything we are able to express today with Thrust + fancy iterators with equal or better expressiveness and performance.
- [ ] https://github.com/NVIDIA/cccl/issues/45
- [ ] https://github.com/NVIDIA/cccl/issues/48
- [ ] https://github.com/NVIDIA/cccl/issues/1213
- [ ] https://github.com/NVIDIA/cccl/issues/1183
- [ ] https://github.com/NVIDIA/cccl/issues/1184
Contributor guide
Research direction
This is an epic with no files, tests, or entry points identified. Start by reviewing the linked issues #45, #48, #1213, #1183, and #1184 to understand the parallel ranges work already scoped. Done requires a ranges-based interface that can express the existing Thrust and CUB use cases with comparable or better expressiveness and performance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design, hpc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100