C++ Concurrency

Open-source C++ projects categorized as Concurrency

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

    Latest mention: Functional programming in C++ (2012) | news.ycombinator.com | 2020-12-28

    > 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

    Latest mention: latest c++ theory vs reality | reddit.com/r/cpp | 2021-01-11
  • 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-11

    Yes, 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.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

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