Top 23 C++ Concurrency Projects
-
swoole-src
🚀 Coroutine-based concurrency library for PHP
-
libzmq
ZeroMQ core engine in C++, implements ZMTP/3.1
-
concurrentqueue
A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
> So the big win with functional programming is easier testibility and fewer hazards when trying to multi-thread your code.
To give you my experience: during my phd, I developed https://ossia.io in C++. For the manuscript redaction, I rewrote all the core algorithms in pure functional OCaml. When I did some tests, performance was slower than -O0 C++ (so it's not even a given that multithreaded OCaml would outperform single-thread C++), the tests weren't meaningfully simpler to write, and it would be pretty much impossible to have an average comp. sci. student contribute to the code.
My experience multi-threading C++ code is, "slap cpp-taskflow, TBB, RaftLib" or any kind of threaded task system and enjoy arbitrary scaling. Hardly the pain it is made to be unless you have a need to go down to std::thread level, but even then using something like https://github.com/cameron314/concurrentqueue to communicate between threads makes things extremely painless.
-
taskflow
A General-purpose Parallel and Heterogeneous Task Programming System
-
arrayfire
ArrayFire: a general purpose GPU library.
-
thrust
The C++ parallel algorithms library.
-
actor-framework
An Open Source Implementation of the Actor Model in C++
-
readerwriterqueue
A fast single-producer, single-consumer lock-free queue for C++
-
libcds
A C++ library of Concurrent Data Structures
-
hpx
The C++ Standard Library for Parallelism and Concurrency
-
nccl
Optimized primitives for collective multi-GPU communication
-
compute
A C++ GPU Computing Library for OpenCL
-
moderngpu
Patterns and behaviors for GPU computing
-
junction
Concurrent data structures in C++
-
cpp.react
C++React: A reactive programming library for C++11.
-
parallel-hashmap
A family of header-only, very fast and memory-friendly hashmap and btree containers.
Latest mention: A Debugging Tip: Write Custom Visualizers in Visual Studio | reddit.com/r/cpp | 2021-01-11Yes, these are nice, I wrote some for the phmap library. I wish that there was a standard (and portable across compilers) way to do this though, maybe by adding a specific function to our classes.
-
RaftLib
The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators
-
continuable
C++14 asynchronous allocation aware futures (supporting then, exception handling, coroutines and connections)
-
vexcl
VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
-
stdgpu
stdgpu: Efficient STL-like Data Structures on the GPU
-
MPMCQueue
A bounded multi-producer multi-consumer concurrent queue written in C++11
-
executors
C++ library for executors
-
Bolt
Bolt is a C++ template library optimized for GPUs. Bolt provides high-performance library implementations for common algorithms such as scan, reduce, transform, and sort.
Index
What are some of the best open-source Concurrency projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | swoole-src | 16,403 |
2 | libzmq | 6,662 |
3 | concurrentqueue | 5,189 |
4 | taskflow | 4,803 |
5 | arrayfire | 3,285 |
6 | thrust | 3,129 |
7 | actor-framework | 2,439 |
8 | readerwriterqueue | 1,982 |
9 | libcds | 1,761 |
10 | hpx | 1,610 |
11 | nccl | 1,429 |
12 | compute | 1,180 |
13 | moderngpu | 1,162 |
14 | junction | 1,114 |
15 | cpp.react | 889 |
16 | parallel-hashmap | 797 |
17 | RaftLib | 707 |
18 | continuable | 646 |
19 | vexcl | 621 |
20 | stdgpu | 510 |
21 | MPMCQueue | 435 |
22 | executors | 361 |
23 | Bolt | 343 |