HI there,
I have a HP ProBook 6440b with an intel i3 processor.
In the task manager i notice it shows up as having 4 cores but it is only a dual core processor.
I have a feeling it is being divided into 4 threads.?
When i run a large application the most it seams to utilize the CPU is 25%
I dont think the process has been designed to handle muti threading...
My question is, Does this intel hyper threading restrict the performance in regards to single threaded processes?
Joe
-
-
Each physical core is approached as two virtual threads. Those threads can each run at the full speed your processor is rated for. For single-threaded processes running at 100%, this means each thread can use a max of 25% of your dual-core, quad-thread CPU. On my i7 which has 4 cores and 8 threads, the max I usually see is 12% (1/8 = 12.5%)
-
Is there any way of turning off this hyper threading?
So a single threaded process can utilise 100% of a core? -
-
-
But theres only 2 cores :s
Are you suggesting that i can utilize the processor at 400% in total ??
Having 4 running at only 25% each but using the "four" cores each to 100%
Even though theres only 2 cores! -
So, assuming that your computer is somehow running a single thread to maximum capacity on one of those "cores", it will show up as using up 25% of your total processor, since as far as the OS is concerned, you are using 1 "core" at 100% out of 4 "cores" total, so 1/4 = 25%. If you were using 2 "cores" at 50% of capacity each, the OS/task manager would see (.5 + .5) / 4 for, again, 25% total. Or if you were running 4 threads, one on each "core" that used up 50% of each "core's" power, then it would be (.5 + .5 + .5 + .5) / 4 = 50%.
So basically, even though there are only 2 actual, physical cores on the chip, as far as your OS and task manager are concerned, there are 4, due to the sleight of hand of hyper-threading (which is possible because of both super-scalar architecture and wait states, but let's not get into that unless you really want to get into detail). -
So if i had 4 processes running to the max. It would try and use all "four" cores to the full? Is it handled in the OS or the CPU (or somewhere in between), when it says there isnt actually 4 cores and and would run the 2 processes on 1 core?
Is it a first come first served basis or would it flit between the two processes? -
hyperthreading does add overhead. Intel says as much as 15% with the current Core i series. The original P4 hyperthreading had a huge overhead, some 25% so there has been some improvement. Hyperthreading was dropped for Core2 but was brought back for Core i.
Hardware hyperthreading will never be as efficient as having fast physical cores. -
It's partly first come, first serve, and switching. To explain, I'm going to have to get a little bit into the nuts and bolts of how hyper-threading actually works.
Now, the CPU is almost always by far the fastest item in your computer after RAM (whether notebook or desktop). This means that oftentimes, it's stuck waiting for everything else in your system, whether it's you the user providing input, or reading information from your hard drive (which is why people keep praising SSDs, which greatly shorten the wait for HDD access, which is usually the slowest item, but that's a completely separate topic). So what hyper-threading does is it adds in some extra hardware so that while one thread happens to be waiting for something else in the system (wait state), it can "store" that thread and run another thread on the currently unused processing unit. You can think of it as having a person (the core) sitting at a workbench at the end of a narrow hallway that can only pass one person at a time. He can only do things once someone gives him something after they arrive at his bench after traveling down that hallway. Now the problem is, since that hallway can only pass one person at a time, if he works faster than people can bring him stuff, a lot of the time he's going to be just sitting there waiting. You can thus think of hyper-threading as adding a second narrow hallway; now, you can have the possibility for 2 people to bring things to him, so he can get more done and not be waiting as often. You can also here see the downfall of hyper-threading; since you're not actually making any improvement to the person doing the work (the core), if you do happen to be passing him tasks (threads) faster than he can do the work, things will bog down.
Super-scalar is similar, except that it revolves around the ability to break down tasks and send them to the appropriate "sub" processor within the CPU, thus making full use of all the components of the CPU. Think of the single person (core) in the previous example instead being, oh, say, 3 people, one plumber, one electrician, and a carpenter. Now, not every task is going to require the talents of all 3, so for any one task, there's a good chance one or more of them might be unused. Super-scalar involves the ability to break down tasks into smaller units that can be dispatched among the 3, to keep all 3 of them usefully employed simultaneously.
i3 Processor - Threads :-s
Discussion in 'Hardware Components and Aftermarket Upgrades' started by JKsysADMIN, Jul 19, 2010.