• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Why do some applications seem to only use one CPU on a HyperThreaded CPU?

Status
Not open for further replies.

goodcow

Member
I got a P4 3.0C with HyperThreading enabled in the BIOS, and WinXP Pro.

There are some applications however, such as Grid.org, and DOSBox, which will only use 100% of "one CPU," effectively meaning it's only using 50% of the CPU. Why?
 

myzhi

Banned
goodcow said:
I got a P4 3.0C with HyperThreading enabled in the BIOS, and WinXP Pro.

There are some applications however, such as Grid.org, and DOSBox, which will only use 100% of "one CPU," effectively meaning it's only using 50% of the CPU. Why?



1) Hyper-Threading Technology enables multi-threaded software applications to execute threads in parallel. If a program is not design to run in multi-threads (most don't), HT does nothing for them. Thus, to take advantage of HT, you need to run 2 or more instances of same / different software.

2) Since processors with HT are really just one CPU, Windows does not show correct cpu usage. Thus, even though it may say 50+%, it could be the same as 90+% on a non HT system.
 

Phoenix

Member
myzhi said:
1) Hyper-Threading Technology enables multi-threaded software applications to execute threads in parallel. If a program is not design to run in multi-threads (most don't), HT does nothing for them. Thus, to take advantage of HT, you need to run 2 or more instances of same / different software.

Add to that - most programs are not constantly multi-threaded. Unless you're monitoring a webserver or similar that spawns a thread on request and would thusly have lots of threads open, many multithreaded applications spawn off threads that are not always active or are short-lived. The Windows CPU monitor is pretty crappy at effectively displaying that behavior, but if you put the application under a microscope (profiler) you would see the result.

MANY applications simply aren't multithreaded and by nature aren't problems that require multiple threads. Hyperthreading is a great thing for cheap servers - but is only of marginal benefit for the average user.
 

maharg

idspispopd
And it bears repeating that if what you're seeing is multiple heavy processes running and only using 100% of one cpu, it is likely that one of them is CPU bound and thus isn't actually allowing enough room in the pipeline for the virtual cpu to run. Hyperthreading is a hack, you don't really have two cpus.
 
It should speed up most video encoding programs a little. It doesn't usually give the performance to two cpu's, but it usually does help a little bit in threaded applications.
 
Status
Not open for further replies.
Top Bottom