tzcnt
tzcnt
performance: add attributes [[clang::coro_await_elidable]] / [[clang::coro_await_elidable_argument]]
[[[clang::coro_await_elidable]]](https://github.com/llvm/llvm-project/pull/99282) [[[clang::coro_await_elidable_argument]]](https://github.com/llvm/llvm-project/pull/108474) These attributes should allow the compiler to perform HALO, hopefully leading to a good performance win. Note that these attributes are only available in Clang 20, so detection...
Implement `and_then()` which allows a construct like ```cpp spawn(a.and_then(b).and_then(c)); ``` This would be syntactic sugar for something like this: ```cpp spawn([](){ auto a_result = a(); auto b_result = b(a_result); c(b_result);...
Currently, ex_cpu detects Non-Uniform Cache Architecture (NUCA) as well as NUMA and optimizes work-stealing to reduce cross-cache and cross-node sharing. However, this is only done by deprioritizing distant nodes; sharing...
Apple M-series and Intel Hybrid cores have both Performance and Efficiency CPU cores. hwloc exposes info about the core kinds: https://hwloc.readthedocs.io/en/stable/group__hwlocality__cpukinds.html Detect these and create groups for them. Expose a...
Explore if it's possible to detect if we are running under Docker or other containerization tools. Can we see how many CPUs are allocated / what cores they are on?...
OneAPI/Intel TBB has a type called `tbb::task_group` which can be used to create and wait for a group of tasks imperatively. ```cpp tbb::task_group tg; for (size_t i = 0; i...
Currently exception support in TMC is very limited - only throwing functions, or throwing awaitables that are awaited directly, can be caught. So, this is the only form of exception...
I am putting together a cross-cutting comparison of async runtimes. You can see the current benchmark results here: https://github.com/tzcnt/runtime-benchmarks The performance of concurrencpp is, at the moment, quite bad. I...
I maintain a set of benchmarks to compare the performance of executors. https://github.com/tzcnt/runtime-benchmarks currently it mostly tracks fork-join performance. I have recently added HPX to this benchmark suite in PR...
I maintain a set of benchmarks to compare the performance of executors. https://github.com/tzcnt/runtime-benchmarks currently it mostly tracks fork-join performance. Libcoro was added recently and has been underperforming. I want to...