In
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, a
task,
job or
process
A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic.
Things called a process include:
Business and management
* Business process, activities that produce a specific s ...
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
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
running such a workload is in, in which its processor utilization is high, perhaps at 100% usage for many seconds or minutes, and
interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
s generated by
peripheral
A peripheral device, or simply peripheral, is an auxiliary hardware device that a computer uses to transfer information externally. A peripheral is a hardware component that is accessible to and controlled by a computer but is not a core compo ...
s may be processed slowly or be indefinitely delayed.
As applied to jobs
CPU-bound jobs will spend most of their
execution time on actual computation ("number crunching"
) 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
Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different for ...
techniques such as
multithreading if the underlying
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
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.
As applied to computers
The concept of CPU-bounding was developed during early computers, when data paths between computer components were simpler, and it was possible to visually see one component working while another was idle. Example components were CPU, tape drives, hard disks, card-readers, and printers. Computers that predominantly used peripherals were characterized as
I/O bound. Establishing that a computer is frequently CPU-bound implies that upgrading the CPU or optimizing code will improve the overall computer 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
Bottleneck may refer to:
* the narrowed portion (neck) of a bottle
Science and technology
* Bottleneck (engineering), where the performance of an entire system is limited by a single component
* Bottleneck (network), in a communication network
* ...
. It is likely that a computer's bottleneck shifts rapidly between components. Furthermore, in modern computers it is possible to have 100% CPU utilization with minimal impact to another component. Finally, tasks required of modern computers often emphasize quite different components, so that resolving a bottleneck for one task may not affect the performance of another. For these reasons, upgrading a CPU does not always have a dramatic effect. The concept of being CPU-bound is now one of many factors considered in modern computing performance.
See also
*
I/O-bound
*
Memory-bound
References
[{{cite book , last=Gill , first=P.S. , title=Operating Systems Concepts , publisher=Firewall Media , year=2006 , isbn=978-81-7008-913-1 , url=https://books.google.com/books?id=eQ0Z1JWI7AwC&pg=PA83 , access-date=2023-07-06 , page=83]
External links
CPU bound descriptionStackoverflow CPU bound terminology
Computer performance