Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Algorithm

Work stealing

Parallel and Distributed Algorithm

Work stealing is a scheduling strategy for multithreaded programs in parallel computing. It lets a dynamically multithreaded computation, one that can spawn new threads of execution, run efficiently on a machine with a fixed number of processors or cores, in terms of execution time, memory use and communication between processors. Each processor keeps a queue of work items; new items spawned by a running item go on that processor's own queue, and a processor that runs out of work looks at the queues of other processors and steals items from them. This spreads the scheduling work over idle processors, so no scheduling overhead occurs while all processors are busy. It contrasts with work sharing, where each item is assigned to a processor when it is spawned, and it reduces process migration compared with that approach. The idea goes back to the Multilisp implementation and parallel functional programming work in the 1980s, and it is used in the scheduler of the Cilk language, the Java fork/join framework, the .NET Task Parallel Library and the Rust Tokio runtime.

Connections

In Field

Source Work stealing (Wikipedia)
Sources
Work stealing (Wikipedia)
  • In Field: Parallel Computing, Lead sentence
    In parallel computing, work stealing is a scheduling strategy for multithreaded computer programs.
  • In Group: Concurrency and Distributed Systems Techniques, Lead sentence
    In parallel computing, work stealing is a scheduling strategy for multithreaded computer programs.
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.