InsightSoftwareConsortium / InsightSoftwareConsortium/ITK

Add stdexec threading backend

Open
#4,433 1 comment 1 reaction 0 assignees View on GitHub
type:Performance
Dominant language
C++
Stars
1.7k
Forks
748
Avg merge
1d 1h
Merged PRs (30d)
64

Description

A new threading backend based on [stdexec](https://github.com/NVIDIA/stdexec), which is proposed as the prototype for the new `std::execution` parallelism model for the C++ standard.

It supports asynchronous execution with scheduler backends based on coroutine thread pools or GPU schedulers, and could be an alternative or basis for #2831.

### Description

A new MultiThreader class that that uses `stdexec/execution.hpp`

### Impact analysis

CPU-based parallism could be improved and this could provide GPU parallelism support throughout the toolkit.

### Expected behavior

If benchmarking succeeds and support is available across platforms and toolchains, use the new MultiThreader class as the default with the `exec/static_thread_pool.hpp`. Optionally provided support for NVIDIA GPUs if available.

### Versions

Target for ITK 6.

### Additional Information

Eventually the header-only library could be vendored in the ITK source tree in ThirdParty/.

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.