This article is about a parallel computing term. For uncompensated taking of labor, see wage theft.
In parallel computing, work stealing is a scheduling strategy for multithreaded computer programs. It solves the problem of executing a dynamically multithreaded computation, one that can "spawn" new threads of execution, on a statically multithreaded computer, with a fixed number of processors (or cores). It does so efficiently in terms of execution time, memory usage, and inter-processor communication.
In a work stealing scheduler, each processor in a computer system has a queue of work items (computational tasks, threads) to perform. Each work item consists of a series of instructions, to be executed sequentially, but in the course of its execution, a work item may also spawn new work items that can feasibly be executed in parallel with its other work. These new items are initially put on the queue of the processor executing the work item. When a processor runs out of work, it looks at the queues of the other processors and "steals" their work items. In effect, work stealing distributes the scheduling work over idle processors, and as long as all processors have work to do, no scheduling overhead occurs.[1]
Work stealing contrasts with work sharing, another popular scheduling approach for dynamic multithreading, where each work item is scheduled onto a processor when it is spawned. Compared to this approach, work stealing reduces the amount of process migration between processors, because no such migration occurs when all processors have work to do.[2]
The idea of work stealing goes back to the implementation of the Multilisp programming language and work on parallel functional programming languages in the 1980s.[2] It is employed in the scheduler for the Cilk programming language,[3] the Java fork/join framework,[4] the .NET Task Parallel Library,[5] and the Rust Tokio runtime.[6][7]
^Cite error: The named reference dfs was invoked but never defined (see the help page).
^ abBlumofe, Robert D.; Leiserson, Charles E. (1999). "Scheduling multithreaded computations by work stealing" (PDF). J ACM. 46 (5): 720–748. doi:10.1145/324133.324234. S2CID 5428476.
^Blumofe, Robert D.; Joerg, Christopher F.; Kuszmaul, Bradley C.; Leiserson, Charles E.; Randall, Keith H.; Zhou, Yuli (1996). "Cilk: An efficient multithreaded runtime system". Journal of Parallel and Distributed Computing. 37 (1): 55–69. doi:10.1006/jpdc.1996.0107.
^Doug Lea (2000). A Java fork/join framework(PDF). ACM Conf. on Java.
^Leijen, Daan; Schulte, Wolfram; Burckhardt, Sebastian (2009). "The Design of a Task Parallel Library". ACM SIGPLAN Notices. 44 (10): 227. CiteSeerX 10.1.1.146.4197. doi:10.1145/1639949.1640106.
^"What is Tokio? · Tokio". tokio.rs. Retrieved 2020-05-27.
workstealing; the alternative strategy is called "child stealing" and is easier to implement as a library, without compiler support. Child stealing is...
off work to other processors, it is actually the scheduler which assigns procedures to processors for execution, using a policy called work-stealing, described...
antagonists appear to reduce the urge to steal and mute the "rush" typically experienced immediately after stealing by some subjects with kleptomania. This...
programming from the particulars of the underlying machine. oneTBB implements workstealing to balance a parallel workload across available processing cores in...
stealing was "something of an art form in baseball" which "is tolerated, even admired". Many players and coaches are considered masters at stealing signs...
several seconds) between the focus stealing event and the newly focused window displaying on the screen. Focus stealing can cause damage, as users may, while...
have found themselves, knowingly or unknowingly, stealing material. Bill Cosby admitted to stealing a joke by George Carlin involving an uneducated football...
Stealing thunder is to use someone else's idea for one's own advantage, or to pre-empt them. The idiom comes from the peevish dramatist John Dennis early...
"Steal Away" ("Steal Away to Jesus") is an American spiritual. The song is well known by variations of the chorus: Steal away, steal away, steal away...
Tegar Satrya as Gito The idea of Stealing Raden Saleh was conceived by Sasongko after his interest in paintings and the work of Indonesian painter Raden Saleh...
Post-Reformation scholars. "Steal" in this commandment has traditionally been interpreted by Jewish commentaries to refer to the stealing of an actual human being...
"Steal My Sunshine" is a song by Canadian alternative rock band Len from their third studio album, You Can't Stop the Bum Rush (1999). The song was initially...
most anthologized work of fiction. It is not just a tale about an Ifugao stealing a religious idol, but also about the friendship that developed between...
catalog Bill Hartel (August 26, 1996). "Steal This Book-Abbie's Magnum Opus". Bates, Stephe (Summer 2011). "Stealing the Revolution". Wilson Quarterly. 35...
derivative work is an expressive creation that includes major copyrightable elements of a first, previously created original work (the underlying work). The...
task queueing: a work queue per core, distribution of work into queues, load balancing by workstealing any core can schedule work for any other, including...
Monsters at Work is an American animated sitcom developed by Bobs Gannaway that premiered on Disney+ on July 7, 2021, as part of Pixar's Monsters, Inc...
drama films Stealing Heaven at answers.com Stealing Heaven, the Story at derekdelintfansite.com Michael Wilmington, "Movie Reviews: ‘Stealing Heaven’ Updates...
Refusal of work is behavior in which a person refuses regular employment. As actual behavior, with or without a political or philosophical program, it...
Lehman Charles E. Leiserson – cache-oblivious algorithms, provably good work-stealing, coauthor of Introduction to Algorithms Douglas Lenat – artificial intelligence...
Steal This is an EP by The Explosion. It was released in 2000 on Revelation Records. Its title is a sarcastic jab at the legal troubles resulting in the...