NVIDIA / NVIDIA/cccl

[EPIC] Fork/Join Parallel Ranges

Open
#44 0 comments 2 reactions 0 assignees View on GitHub
libcu++
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.