{"repo":"ConorWilliams/libfork","free":true,"listed":false,"github":"https://github.com/ConorWilliams/libfork","clone":"git clone https://github.com/ConorWilliams/libfork.git","description":"A bleeding-edge, lock-free, wait-free, continuation-stealing tasking library built on C++20's coroutines","language":"C++","stars":895,"topics":["cpp20","coroutines","wait-free","threadpool","scheduler","work-stealing","lock-free","task-graph","tasking","concurrency"],"license":"MPL-2.0","category":"workflow-automation","readme_excerpt":"Welcome to libfork 🍴 A bleeding edge, lock-free, wait-free, continuation-stealing coroutine-tasking library. Now supplying 🌵! Libfork is primarily an abstraction for fully-portable, strict, fork-join parallelism. This is made possible without the use of any macros/inline assembly using C++20's coroutines. Ultra-fine grained parallelism (the ability to spawn tasks with very low overhead) is enabled by an innovative implementation of an (almost) non-allocating cactus-stack utilizing segmented stacks . Libfork presents a cross-platform API that decouples scheduling tasks (a customization point) from writing tasks. Additionally, libfork provides performant NUMA-aware work-stealing schedulers for general use. If you'd like to learn more check out the tour of libfork then try it on compiler explorer or, just grok the TLDR : Performance Libfork is engineered for performance and has a comprehensive benchmark suit. For a detailed review of libfork on 1-112 cores see the paper, the headline results are linear time/memory scaling , this translates to: - Up to 7.5× faster and 19× less memory consumption than OneTBB. - Up to 24× faster and 24× less memory consumption than openMP (libomp). - Up to 100× faster and 100× less memory consumption than taskflow. Scheduler overhead For a quick comparison with other libraries, the average time to spawn/run a task during the recursive Fibonacci benchmark gives a good approximation to the tasking overhead and peak throughput: Memory consumption Li","default_branch":null,"files":null,"tree":[],"storefront":"/r/ConorWilliams","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ConorWilliams/libfork/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}