Concepts inScheduling multithreaded computations by work stealing
Scheduling (computing)
In computer science, scheduling is the method by which threads, processes or data flows are given access to system resources (e.g. processor time, communications bandwidth). This is usually done to load balance a system effectively or achieve a target quality of service. The need for a scheduling algorithm arises from the requirement for most modern systems to perform multitasking (execute more than one process at a time) and multiplexing (transmit multiple flows simultaneously).
more from Wikipedia
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently ("in parallel"). There are several different forms of parallel computing: bit-level, instruction level, data, and task parallelism.
more from Wikipedia
Cilk
Cilk is a general-purpose programming language designed for multithreaded parallel computing. The commercial instantiation is Intel Cilk Plus.
more from Wikipedia
Computation
Computation is any type of calculation or the use of computer technology in Information processing. Computation is a process following a well-defined model understood and expressed in an algorithm, protocol, network topology, etc. Computation is also a major subject matter of computer science: it investigates what can or cannot be done in a computational manner. 40x40px Look up computation in Wiktionary, the free dictionary.
more from Wikipedia
Central processing unit
The central processing unit (CPU, occasionally central processor unit) is the hardware within a computer system which carries out the instructions of a computer program by performing the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in use in the computer industry at least since the early 1960s.
more from Wikipedia
Big O notation
In mathematics, big O notation is used to describe the limiting behavior of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions. It is a member of a larger family of notations that is called Landau notation, Bachmann–Landau notation, or asymptotic notation. In computer science, big O notation is used to classify algorithms by how they respond (e.g. , in their processing time or working space requirements) to changes in input size.
more from Wikipedia
In mathematics and computer science, an algorithm Listen/ˈælɡərɪðəm/ (originating from al-Khwārizmī, the famous mathematician Muḥammad ibn Mūsā al-Khwārizmī) is a step-by-step procedure for calculations. Algorithms are used for calculation, data processing, and automated reasoning. More precisely, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function.
more from Wikipedia