suspended execution, and put that state on the stack. It will not take a suspended state off the stack and resume execution until the procedure call that caused the suspension, and any procedures called in turn by that procedure, have all been fully executed. With multiple processors, things of course change. Each processor still has a stack for storing frames whose execution has been suspended; however, these stacks are more like deques, in that suspended states can be removed from either end. A processor can still only remove states from its own stack from the same end that it puts them on; however, any processor which is not currently working (having finished its own work, or not yet having been assigned any) will pick another processor at random, through the scheduler, and try to "steal" work from the opposite end of their stack suspended states, which the stealing processor can then begin to execute. The states which get stolen are the states that the processor stolen from would get around to executing last. See also Grand Central Dispatch Intel Concurrent Collections (CnC) Intel Parallel Building Blocks (PBB) Intel Array Building Blocks (ArBB) Intel Parallel Studio NESL OpenMP Parallel computing Sieve C++ Parallel Programming System Threading Building Blocks (TBB) Unified Parallel C References External links for OpenCilk Intel's Cilk Plus website Cilk Project website at MIT Arch D. Robison, "Cilk Plus: Language Support for Thread and Vector Parallelism" and "Parallel Programming with Cilk Plus", July 16, 2012. Articles with example code Concurrent programming languages C programming language family Massachusetts Institute of Technology software Intel software Programming languages created in 1994