top | item 42106451

(no title)

peauc | 1 year ago

I don't understand the thread mobility. I only see the overhead but surely there must be massive gains in performance by spreading the thermal load.

discuss

order

Kon-Peki|1 year ago

If a thread is blocked waiting for something, then at some point in the future it will be ready to continue execution. But what if some other thread is still running on that specific core? If there is some other core available and you can restart execution there with low overhead, that's a performance win.

I think that as asynchronous code becomes more and more common, this kind of capability becomes more and more beneficial.

kevincox|1 year ago

Yes, I assume that it is better to spread the generated heat across the die. Migrating threads between clusters probably does have some cost (mostly cache misses, minimal cost to pausing and moving) but if done less than every second that is likely miniscule.