Lazy
TDP
Lazy | TDP | |
---|---|---|
5 | 1 | |
110 | 87 | |
- | - | |
2.6 | 0.0 | |
4 months ago | almost 3 years ago | |
C++ | C++ | |
The Unlicense | Boost Software License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Lazy
-
A fast, single queue thread pool created with C++20
Benchmarks is indeed a good question. Here is a C++17-style library for parallel function calls which avoids std::{function, future, promise} and uses disposable threads for running the functions. I have run a few benchmarks against a typical thread pool which uses a mutex and a condition variable and a vector of threads.
-
for_each with plain integers
You might consider using this header-only library.
-
Does Execution Policy in std::transform in gcc have any effect?
Using Lazy the simple header-only parallel library found here in Github.
-
Therads in Cpp
Unless you really want to play with "raw" C++ threads, you may be able to completely avoid them by using a library like this one. See the simple examples on the main page and check if they would suit your application.
-
How to force your code to use all CPU cores? In an efficient manner.
This header-only library might come in handy when experimenting with parallel functions. You can run any number of functions in parallel and gather the results conveniently. Take a look at the examples on the main page in Github and see if you find them useful.
TDP
-
C++ looks pretty good
That's because I showed implementation, not usage. For instance, my pipelines library (threaded, not for embedded), if I had shown the implementation in a blog post as an advertisement for C++, people would call me insane. It includes this cursed line of code:
What are some alternatives?
oneTBB - oneAPI Threading Building Blocks (oneTBB)
thread-pool - BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library
sobjectizer - An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. With performance, quality, and stability proved by years in the production.
thread-pool - A modern, fast, lightweight thread pool library based on C++20
Taskflow - A General-purpose Parallel and Heterogeneous Task Programming System
not-enough-standards - A modern header-only C++ library that provides platform-independent utilities.
concurrencpp - Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all
ultimatepp - U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).
parallel-cellular-automata - Framework for building parallel cellular automata in C++. In it you can also find a work-stealing threadpool and a reusable barrier that you can use in other projects.
dynamap - Thread-safe and dynamically resized hash map for C++ (header-only)