Pages

Pages

Pages - Menu

Monday 15 August 2016

What is hyperthreading?

What is Hyper-threading?




Hyper-threading in the most simplest terms is an implementation of stocking up various commands for the processor and provide it with the next operation as soon as it is finished with the first one. 

For example : Let your mouth be processor and your hands be threads(which send the commands to the processor). Now if you are chewing(processing) something in your mouth, you will probably have to hold the other stuff in your hand before stuffing it in your mouth. Now lets assume that you complete chewing the food inside but you were unable to pick the next item and bring it to your mouth immediately. So now your mouth will have to wait until your hand gets the next round. All this time your mouth sits ideal and Wast a lot of time. Now suppose you use your both hands to bring the next process, now the chances that both your hands were unable to bring the next command on time decreases a lot. So what there were hundreds of hands, definitely your mouth will never sit ideal. This is what hyper-threading is, hundreds of wires/networks are connected to the processor each carrying there own command, and hence the processor never sits ideal and the computing speed goes up. And its an Intel Proprietary technology so we generally see its mention on Intel processors.


Wikipedia says:


Performance claims


According to Intel, the first hyper-threading implementation used only 5% more die area than the comparable non-hyperthreaded processor, but the performance was 15–30% better.[13][14] Intel claims up to a 30% performance improvement compared with an otherwise identical, non-simultaneous multithreading Pentium 4. Tom's Hardware states: "In some cases a P4 running at 3.0 GHz with HT on can even beat a P4 running at 3.6 GHz with HT turned off."[15] Intel also claims significant performance improvements with a hyper-threading-enabled Pentium 4 processor in some artificial-intelligence algorithms.
Overall, the performance history of hyper-threading was a mixed one in the beginning. As one commentary on high-performance computing from November 2002 notes:[16]
Hyper-Threading can improve the performance of some MPI applications, but not all. Depending on the cluster configuration and, most importantly, the nature of the application running on the cluster, performance gains can vary or even be negative. The next step is to use performance tools to understand what areas contribute to performance gains and what areas contribute to performance degradation.
As a result, performance improvements are very application-dependent;[17] however, when running two programs that require full attention of the processor, it can actually seem like one or both of the programs slows down slightly when Hyper-Threading Technology is turned on.[18] This is due to the replay system of the Pentium 4 tying up valuable execution resources, equalizing the processor resources between the two programs, which adds a varying amount of execution time. The Pentium 4 "Prescott" and the Xeon "Nocona" processors received a replay queue that reduces execution time needed for the replay system and completely overcomes the performance penalty.[19]
According to a November 2009 analysis by Intel, performance impacts of hyper-threading result in increased overall latency in case the execution of threads does not result in significant overall throughput gains, which vary[17] by the application. In other words, overall processing latency is significantly increased due to hyper-threading, with the negative effects becoming smaller as there are more simultaneous threads that can effectively use the additional hardware resource utilization provided by hyper-threading.[20] A similar performance analysis is available for the effects of hyper-threading when used to handle tasks related to managing network traffic, such as for processing interrupt requests generated by network interface controllers (NICs).[21] Another paper claims no performance improvements when hyper-threading is used for interrupt handling.[22]

Though these all sound quite intriguing, hyper-threaded single core can never actually outperform a dual core or so. It will be always quicker to chew with two mouths instead of having hundreds of hands just waiting for the task to be completed. 

No comments:

Post a Comment