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:
“Some hours seem not to be occasion for any deed, but for resolves to draw breath in. We do not directly go about the execution of the purpose that thrills us, but shut our doors behind us and ramble with prepared mind, as if the half were already done. Our resolution is taking root or hold on the earth then, as seeds first send a shoot downward which is fed by their own albumen, ere they send one upward to the light.”
—Henry David Thoreau (18171862)