CPU-bound

In computer science, a task, job or process is said to be CPU-bound (or compute-bound) when the time it takes for it to complete is determined principally by the speed of the central processor.

The term can also refer to the condition a computer running such a workload is in, in which its processor utilization is high, perhaps at 100% usage for many seconds or minutes, and interrupts generated by peripherals may be processed slowly or be indefinitely delayed.

[citation needed] CPU-bound jobs will spend most of their execution time on actual computation ("number crunching"[1]) as opposed to e.g. communicating with and waiting for peripherals such as network or storage devices (which would make them I/O bound instead).

Such jobs can often benefit from parallelization techniques such as multithreading if the underlying algorithm is amenable to it, allowing them to distribute their workload among multiple CPU cores and be limited by its multi-core rather than single-core performance.

With the advent of multiple buses, parallel processing, multiprogramming, preemptive scheduling, advanced graphics cards, advanced sound cards and generally, more decentralized loads, it became less likely to identify one particular component as always being a bottleneck.