Skip to main content


You can't scale a single-threaded process by adding more logical CPUs.

Why is this something that confuses people?

There is out-of-order execution, but modern CPUs aleady do this anyway. I don't know that adding a logical CPU could really help.
@Jonathan Lamothe it doesn't matter if the execution is out of order - the problem is that when you've got a CPU pegged, the second idle CPU doesn't help.

out of order operation isn't just about changing the order of the operations. It lets you (sometimes) pre-compute the result of future instructions as long as they're not based on the output of the previous ones enabling you to parallelize what would otherwise be a single execution thread. I imagine there's a point of diminishing returns though.
https://www.youtube.com/watch?v=jNC9LPc3BI0

Perhaps I'm misunderstanding what you're saying?

@Jonathan Lamothe Yes, it's theoretically possible for there to be value. But it's not going to affect on the scale of "our system is constantly pegged"

all the out-of-order execution occurs inside a single CPU
adding more CPUs won't help speed up a single-threaded program

picture a call center
an attendant is like a CPU
the attendant can pay attention to one customer at a time. the customer may issue multiple requests/instructions, and an attendant with out-of-order operation may be able to look into and satisfy some of the requests before other earlier ones
however, adding more attendants wouldn't help this one customer get faster service, unless the customer started multiple calls (threads or processes), or the attendants could pass customer requests and context on to each other (that's not permitted by the call center design; they can only transfer entire calls)