Speculative Execution

Speculative execution in computer systems is doing work, the result of which may not be needed. This performance optimization technique is used in pipelined processors and other systems.

Speculative execution is a performance optimization. The main idea is to do work before it is known whether that work will be needed at all, so as to prevent a delay that would have to be incurred by doing the work after it is known whether it is needed. If it turns out the work wasn't needed after all, the results are simply ignored. The target is to provide more concurrency if extra resources are available.

The following technologies employ this idea:

  • Prefetching in memory and File system
  • Branch prediction
  • Optimistic concurrency control in database systems

Read more about Speculative Execution:  Processors, Compilers, Eager Execution, Lazy Evaluation

Famous quotes containing the word execution:

    My weakness has always been to prefer the large intention of an unskilful artist to the trivial intention of an accomplished one: in other words, I am more interested in the high ideas of a feeble executant than in the high execution of a feeble thinker.
    Thomas Hardy (1840–1928)