Libfork introduces a lock-free parallelism library combining coroutines with segmented stacks, outperforming openMP and Intel's TBB. It addresses challenges in shared-memory programming and NUMA optimizations for busy-waiting schedulers.
The content discusses the importance of parallelism in modern computing, focusing on shared-memory systems. It highlights the complexities of low-level SMP programming and the need for higher-level abstractions like structured concurrency. Libfork's approach to continuation-stealing with stackless coroutines is detailed, showcasing its theoretical and empirical performance across various benchmarks.
The paper delves into the background of coroutines, fork-join model of parallelism, work-stealing schedulers, and cactus stacks. It explains how libfork utilizes segmented stacks for efficient memory usage and scalability in parallel computing tasks. The experimental evaluation compares libfork with other libraries in classic benchmarks and UTS benchmarks, demonstrating its superior performance and memory efficiency.
Vers une autre langue
à partir du contenu source
arxiv.org
Questions plus approfondies