I'm sure this has been answered before, but is it better to have more physical cores, or can I get the same performance with half the cores but enable hyper-threading? This is of course an AMD vs Intel type discussion...
Thanks!
Hi Friend,
Visualize this:
You are in a supermarket and some bonehead pulls out a checkbook to write a check.
You have a gallon of milk and a $5 bill in your hand.
The cashier puts the first transaction on hold while the old lady writes the check, and processes your transaction. You walk out, she finishes with the check writer.
That is the theory behind HT. If one thread stalls it can run a second thread on the same core. But the problem is it can only handle one thread on any cycle, so it depends on inefficiencies in the execution to "slip in that second instruction."
Now, imagine that the grocery store stops taking checks. Efficiency is increased, the main thread has more efficiency, but there is less likelihood for that second transaction to happen. So you wait longer with your milk.
Would you rather have a multitasking cashier or more open lanes? If business is light in the store and transactions are small, the multitasking cashier might be ok.
But if it is saturday afternoon you want more lanes open because of the heavy traffic.
HT works ok in light workloads where traffic is "bursty" and inefficient. But if workloads get heavy (and I believe we all have more work to do on our systems than ever before) then the benefits of HT start to slip and the benefits of dedicated cores really shines.
Refer: really liked above explanation that I got from this thread: 4 Cores With Hyperthreading vs. 8 Physical Cores? - Performance - CPUs
Hello
I would architect your systems without hyper threading in mind as hyper threading takes a fire and splits it which helps processing but that's core it just split is sharing the same core/ CPU cache. This could run you into issue in situations like terminal servers ect.
How this has helped
Hi Friend,
Visualize this:
You are in a supermarket and some bonehead pulls out a checkbook to write a check.
You have a gallon of milk and a $5 bill in your hand.
The cashier puts the first transaction on hold while the old lady writes the check, and processes your transaction. You walk out, she finishes with the check writer.
That is the theory behind HT. If one thread stalls it can run a second thread on the same core. But the problem is it can only handle one thread on any cycle, so it depends on inefficiencies in the execution to "slip in that second instruction."
Now, imagine that the grocery store stops taking checks. Efficiency is increased, the main thread has more efficiency, but there is less likelihood for that second transaction to happen. So you wait longer with your milk.
Would you rather have a multitasking cashier or more open lanes? If business is light in the store and transactions are small, the multitasking cashier might be ok.
But if it is saturday afternoon you want more lanes open because of the heavy traffic.
HT works ok in light workloads where traffic is "bursty" and inefficient. But if workloads get heavy (and I believe we all have more work to do on our systems than ever before) then the benefits of HT start to slip and the benefits of dedicated cores really shines.
Refer: really liked above explanation that I got from this thread: 4 Cores With Hyperthreading vs. 8 Physical Cores? - Performance - CPUs
