CPU bound
|
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.