| CPU bound refers to a condition where the time to complete a computation is determined principally by the speed of the
central processor and
main memory. More literally, it means that the computation is keeping the
processor utilization high, and that the processor is not spending much time waiting for external events, such as the arrival of
more data from a peripheral. Insofar as a program is CPU bound, it has the potential to run faster if a better algorithm can be found to accomplish the computation, or if a faster processor/memory can
be used. In general, there is a great deal more difficulty and cost involved in speeding up I/O operations, although, again, better algorithms can have a dramatic effect.
The usefulness of the distinction between IO bound and compute bound is based on
the empirical observation that many of the uses of computers involve doing a small amount of work to each element of a large set
of data, which led to the conclusion that such problems are inherently IO bound. Raising processor utilization has economic
consequences, therefore this observation resulted in a search for techniques to raise processor utilization by minimizing the
effect of IO delays. The results include techniques as simple as IO buffering and as complex as virtual machine operating
systems.
|