i7 8 threads show as 8 cores

JTsyo

Lifer
Nov 18, 2007
11,737
890
126
Both in the task manager and the Intel board utility, the i7 920 shows up as 8 processors instead of 4 cores. Guessing it's going by threads. This though makes the graph in task manger very small. Also can I assume the threads are paired? ie thread 1&2 are core 1.
 

masteryoda34

Golden Member
Dec 17, 2007
1,399
3
81
Ok yes, I meant HyperThreading in reference to i7.

Nobody actually uses NetBurst anymore, do they? (rhetorical question)
 

Cogman

Lifer
Sep 19, 2000
10,277
125
106
Um, hyperthreading is good for multithreading capabilities, not for general purpose computing. There is a performance hit you take by enabling it in single threaded applications. Unless you are doing some highly parallel task, I would suggest leaving it off (especially since you have a quad core processor anyways)

Also, you are using the term thread incorrectly. It is referred to as a logical core (as opposed to a physical core, So you have 4 physical cores and 8 logical cores with HT enabled). Thread refers to a fork of a program.
 

dguy6789

Diamond Member
Dec 9, 2002
8,558
3
76
Originally posted by: Cogman
Um, hyperthreading is good for multithreading capabilities, not for general purpose computing. There is a performance hit you take by enabling it in single threaded applications. Unless you are doing some highly parallel task, I would suggest leaving it off (especially since you have a quad core processor anyways)

Also, you are using the term thread incorrectly. It is referred to as a logical core (as opposed to a physical core, So you have 4 physical cores and 8 logical cores with HT enabled). Thread refers to a fork of a program.

This is incorrect. Hyper Threading improves system responsiveness and makes the system feel more "snappy" in general. Very few programs receive a performance penalty from having it enabled, and those that do usually have a very tiny hit that wouldn't be noticeable. HT is arguably the most important difference between Core 2 Quad and Core i7.
 

palladium

Senior member
Dec 24, 2007
538
2
81
Originally posted by: eelw
Originally posted by: JTsyo
Also can I assume the threads are paired? ie thread 1&2 are core 1.

1 and 5, 2 and 6, etc.

I think OP is right, the threads are paired ( thread 1 and 2= core 1, 3&4 = core 2, etc). I did some performance testing when I just got my rig, all apps work faster when affinity is assigned to 'core' 1&3 compared to 'core' 1&2.
 

taltamir

Lifer
Mar 21, 2004
13,576
6
76
Originally posted by: dguy6789
Originally posted by: Cogman
Um, hyperthreading is good for multithreading capabilities, not for general purpose computing. There is a performance hit you take by enabling it in single threaded applications. Unless you are doing some highly parallel task, I would suggest leaving it off (especially since you have a quad core processor anyways)

Also, you are using the term thread incorrectly. It is referred to as a logical core (as opposed to a physical core, So you have 4 physical cores and 8 logical cores with HT enabled). Thread refers to a fork of a program.

This is incorrect. Hyper Threading improves system responsiveness and makes the system feel more "snappy" in general. Very few programs receive a performance penalty from having it enabled, and those that do usually have a very tiny hit that wouldn't be noticeable. HT is arguably the most important difference between Core 2 Quad and Core i7.

yes!

Even in the atom, it has HUGE performance benefits when it works, and almost no penalty when it doesn't.

That is because the penalty occurs from slightly more overhead, while the benefits include using unused resources on a core (if a thread only uses 50% of sa,y the arithmatic units due to the nature of the calculation, another thread might make use of some of the the unused ones which would have otherwise gone to waste).
 

Cogman

Lifer
Sep 19, 2000
10,277
125
106
Originally posted by: taltamir
Originally posted by: dguy6789
Originally posted by: Cogman
Um, hyperthreading is good for multithreading capabilities, not for general purpose computing. There is a performance hit you take by enabling it in single threaded applications. Unless you are doing some highly parallel task, I would suggest leaving it off (especially since you have a quad core processor anyways)

Also, you are using the term thread incorrectly. It is referred to as a logical core (as opposed to a physical core, So you have 4 physical cores and 8 logical cores with HT enabled). Thread refers to a fork of a program.

This is incorrect. Hyper Threading improves system responsiveness and makes the system feel more "snappy" in general. Very few programs receive a performance penalty from having it enabled, and those that do usually have a very tiny hit that wouldn't be noticeable. HT is arguably the most important difference between Core 2 Quad and Core i7.

yes!

Even in the atom, it has HUGE performance benefits when it works, and almost no penalty when it doesn't.

That is because the penalty occurs from slightly more overhead, while the benefits include using unused resources on a core (if a thread only uses 50% of sa,y the arithmatic units due to the nature of the calculation, another thread might make use of some of the the unused ones which would have otherwise gone to waste).

Look, the atom is a single logical core. The P4 is a single logical core. The reason hyperthreading works well on these is because it effectively makes the system work as if it had two cores, its like going from a single core processor to a dual core processor, the difference is noticed because of the extra core.

Nehalem is a quad core cpu, whole "System is more responsive" argument goes out the window because the CPU has 4 real cores to use. There isn't going to be any noticeable responsiveness increase because of that.

There MAY be a speed increase in some highly threaded applications (As I said earlier) However, I know of VERY few consumer applications that will use 8 logical cores. If a program is threaded at all, it generally will only take advantage of 2 cores. For everything else, you will get a penalty.

On a P4-Atom, Yes, hyperthreading should be enabled. On a nehalem, It should only be enabled if you have some program running that is consuming 8 threads (Or 8 or more CPU intensive programs)

BTW, IIRC the single threaded penalty for enabling hyperthreading is something like 5-10%. That's not exactly a small penalty.
 

Idontcare

Elite Member
Oct 10, 1999
21,118
58
91
Originally posted by: Cogman
Nehalem is a quad core cpu, whole "System is more responsive" argument goes out the window because the CPU has 4 real cores to use. There isn't going to be any noticeable responsiveness increase because of that.

BTW, IIRC the single threaded penalty for enabling hyperthreading is something like 5-10%. That's not exactly a small penalty.

Load that Nehalem with 4 single-threaded apps using 100% CPU and try and use the computer for web-surfing or gaming at that point and you'll happily turn on hyperthreading.

The penalty for HT is a tradeoff, one of many that are made in building a rig whether or not you realize at the time. Take ram for example, you most surely are taking a latency penalty when you run ram in dual and tri channel modes. You are also taking a latency penalty when you run with more dimms populated and with larger capacity Dimms.

But usually people who want 8GB or more ram in their rigs have a reason for wanting the extra ram. One size never fits all. Super Pi guys want a single dimm and no larger than 512MB to really tighten down those latencies.

Same with nehalem and hyperthreading. If you DON'T need hyperthreading on Nehalem then I'd argue you don't need Nehalem in the first place as you probably are just as unlikely to challenge its 4 cores to the max as your are as likely to challenge its 8 threads to their max.

If you buy the lambo and then bitch about the fact it gets piss poor mpg while you cruise thru school zones at 20mph on the way to work every day then the fault lies not with the technology under the hood of the lambo, the dufus who bought it in the first place is the source of the issue.

Don't buy an i7 folks if you find the single-threaded performance penalty distasteful as you run your "one" instance of the program on the computer. You are only wasting your money in purchasing a computing experience you won't value.
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
20,853
3,211
126
Originally posted by: dguy6789
Originally posted by: Cogman
Um, hyperthreading is good for multithreading capabilities, not for general purpose computing. There is a performance hit you take by enabling it in single threaded applications. Unless you are doing some highly parallel task, I would suggest leaving it off (especially since you have a quad core processor anyways)

Also, you are using the term thread incorrectly. It is referred to as a logical core (as opposed to a physical core, So you have 4 physical cores and 8 logical cores with HT enabled). Thread refers to a fork of a program.

This is incorrect. Hyper Threading improves system responsiveness and makes the system feel more "snappy" in general. Very few programs receive a performance penalty from having it enabled, and those that do usually have a very tiny hit that wouldn't be noticeable. HT is arguably the most important difference between Core 2 Quad and Core i7.

not when your system isnt making use of them.

By accepting HT u also agree to a hotter load temp, and harder oc experience. HT overclocking and non HT overclocking is almost like night and day.

no cogman is correct, unless you have a program that can use more then 4 logical cores, having 4 physical cores and 4 logical cores is pointless. Your better off with 4 physical cores, unless your heavy on multi threaded applications which probably less then 20% of the i7 users use.

8 is better then 4 but not when your program can only use 2-3 cores. Makes sense?
 

aka1nas

Diamond Member
Aug 30, 2001
4,335
1
0
I think Cogman is basing his comments somewhat on Netburst HT and on OS's from that time that were not HT-aware and would sometimes run threads on 2 logical cores from the same physical core rather than spreading them out across physical cores first. The performance hit on current platforms should be minimal.

I'm sure aigomorla's observations are correct, too. However, you are trading off overclocking capability for increased resource utilization under heavy (multithreaded) load, so it probably balances out somewhat (who gives a crap how fast your CPU is when it's idle?). It would be interesting to see where the break-even point is.
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
20,853
3,211
126
well the true question is what do you do with the machine that would require 8 simultanious threads..

like the people who run 12gb on a non VMWARE machine on Vista 64 ultimate.

i dont understand that. Oh yeah.. its called greed... im full of it.
 

imported_wired247

Golden Member
Jan 18, 2008
1,184
0
0
So can we be crystal clear about something?

Suppose I am transcoding video with a non-parallelized app.

a) HT-enabled: The i7 CPU shows 1 of 8 threads maxxed out, and the other threads are more or less idle.
b) HT-disabled: The i7 CPU shows 1 of 4 cores maxxed out, and the other cores are more or less idle.

Which one will transcode the video faster? I think it's (b) unless someone convinces me otherwise...



(Note, I'm not talking about system responsiveness while transcoding, or anything like that. And yes, I know there are plenty of video transcoding apps that use multiple cores... this is just for the sake of argument)
 

dguy6789

Diamond Member
Dec 9, 2002
8,558
3
76
Originally posted by: aigomorla
well the true question is what do you do with the machine that would require 8 simultanious threads..

like the people who run 12gb on a non VMWARE machine on Vista 64 ultimate.

i dont understand that. Oh yeah.. its called greed... im full of it.


Running lots of ram on Vista 64 makes perfect sense to a lot of people. Photoshop CS4 64 bit is capable of using as much memory as you have no problem. Besides this, superfetch makes use of large amounts of memory as I am sure you're aware. The next reason is future proofing. You can get 8GB of ram for under $100, why wouldn't you? DDR3 prices will start to go down and DDR2 prices will start to go up eventually, now is a great time to buy a ton of DDR2.


Originally posted by: wired247
So can we be crystal clear about something?

Suppose I am transcoding video with a non-parallelized app.

a) HT-enabled: The i7 CPU shows 1 of 8 threads maxxed out, and the other threads are more or less idle.
b) HT-disabled: The i7 CPU shows 1 of 4 cores maxxed out, and the other cores are more or less idle.

Which one will transcode the video faster? I think it's (b) unless someone convinces me otherwise...



(Note, I'm not talking about system responsiveness while transcoding, or anything like that. And yes, I know there are plenty of video transcoding apps that use multiple cores... this is just for the sake of argument)


They could be completely equal or b could be faster but not noticeably such.

People are running more and more threads today than they used to. Lots of programs that people run today have two or four threads by themselves. Run multiple of these and it's not very hard to max out your four cores.
 

dmens

Platinum Member
Mar 18, 2005
2,271
917
136
BTW, IIRC the single threaded penalty for enabling hyperthreading is something like 5-10%. That's not exactly a small penalty.

eh? that might have been true for a P4 running worst-case code, but i7? i seriously doubt it. SMT on i7 is better than P4 in both algorithm and resource usage.
 

Idontcare

Elite Member
Oct 10, 1999
21,118
58
91
Originally posted by: wired247
So can we be crystal clear about something?

Suppose I am transcoding video with a non-parallelized app.

a) HT-enabled: The i7 CPU shows 1 of 8 threads maxxed out, and the other threads are more or less idle.
b) HT-disabled: The i7 CPU shows 1 of 4 cores maxxed out, and the other cores are more or less idle.

Which one will transcode the video faster? I think it's (b) unless someone convinces me otherwise...



(Note, I'm not talking about system responsiveness while transcoding, or anything like that. And yes, I know there are plenty of video transcoding apps that use multiple cores... this is just for the sake of argument)

(b) will be better than (a) in this scenario for simple fact that the performance degradation of thread migration is non-zero.

Now if you were to set the affinity of the application to just one logical processor (physical or virtual, doesn't matter when there is only one thread) the (b) would be performance equivalent to (a).
 

Idontcare

Elite Member
Oct 10, 1999
21,118
58
91
Originally posted by: dmens
BTW, IIRC the single threaded penalty for enabling hyperthreading is something like 5-10%. That's not exactly a small penalty.

eh? that might have been true for a P4 running worst-case code, but i7? i seriously doubt it. SMT on i7 is better than P4 in both algorithm and resource usage.

The performance penalties of enabling Nehalem's HT in the desktop environment are captured in The Tech Report's reviews:

See the results in the pages of these following two reviews:

http://techreport.com/articles.x/16044/5

http://techreport.com/articles.x/15818/5

On the flip-side, the same reviews show the case where there is basically no degradation in some apps when they are intentionally single-threaded:

http://techreport.com/articles.x/15818/13