Brushing the Locks out of the Fur: A Lock-Free Work Stealing Library
Paper i proceeding, 2009

We present a lock-free version of the light-weight userlevel task management library called Wool, in an aim to show that even extremely well tuned, in terms of synchronization, applications can benefit from lock-free programming. Explicit multi-threading is an efficient way to exploit the offered parallelism of multi-core and multi-processor based systems. However, it can sometimes be hard to express the inherited parallelism in programs using a limited number of long lived threads. Often it can be more straightforward to dynamically create a large number of small tasks that in turn automatically execute on the available threads. Wool is a promising and efficient library and framework that allows the programmer to create user tasks in C with a very low overhead. The library automatically executes tasks and balances the load evenly on a given number of threads by utilizing work stealing techniques. However, the synchronization for stealing tasks is based on mutual exclusion which is known to limit parallelism and efficiency. We have designed and implemented a new lock-free algorithm for synchronization of stealing tasks in Wool. Experiments show similar or significantly improved performance on a set of benchmarks executed on a multi-core platform.


work stealing



Philippas Tsigas

Chalmers, Data- och informationsteknik, Nätverk och system

econd Swedish Workshop on Multi-Core Computing, (MCC '09)



Datavetenskap (datalogi)