0

I have Asus 1025c with dual-core atom with hyper-threading enabled. When I play games, processor load rate always less than 25% (1 core). Is that means, that game (running single thread) occupies only half power of one core? So, if I disable HT applications can and will occupy full power of one core?

And, if its right, how can I do it? BIOS in my laptop is very limited, there is line for hyper-threading (enabled), but its not active, so I can't turn it off.

2

In windows XP, (I think Vista, 7 and 8 too), a hyper-threaded single core CPU running a single thread at 100% utilization would show 50% CPU utilization in windows task manager. To extrapolate, this would say that your computer using a dual core with HT would show 25% when a single core is being utilized 100% by a single thread; that is if your game is single threaded, it would be use 100% of a core, which is 50% of the CPU, but only show 25% utilization.

If you disable HT, the single threaded game will still utilize a core 100%, which is still 50% of the CPU, but it will actually show 50% utilization.

Many articles have shown that having HT enabled on average increases performance even though there are circumstance that HT shows decreased performance. That being said, the biggest advantage of turning off HT would be so it feels better because it will look like you are using your CPU more. Psychology would say via the placebo effect that this might actually make it seem like there is a performance benefit because you feel like 2x as much of the CPU is being used. While many might disagree, how you perceive things can have more of an impact than how things actually are. If this is true with you, then turn HT off! The performance decrease would be minimal.

But if you want to stick with the facts, then disabling HT would decrease performance on average regardless of what the CPU meter says, there in you should leave it enabled.

As for whether you can enable and disable HT on that computer; it looks as though in the user manual for your laptop there is nothing about having options in the BIOS that you can modify. You might try a BIOS update to see if that allows you to toggle the option. Other than that, if you cannot modify the setting, you are pretty much out of luck.

1

Hyper-threading is simply a way that a processor (core) can pipeline instructions from multiple threads to execute at the same time in the same core when it detects that the operations are independent and using different parts of the pipeline. Think of it as creating a virtual core that can be used by applications that run using parallel threads. As far as an application is aware, there is no difference between a single core, non-HT processor and an 8-core HT processor.

In order for an application to make use of multiple cores or HT technology it must be multi-threaded to enable parallel execution of code. This is not a trivial task and there are many issues that must be taken into consideration when an application is designed in this way. For example, if one thread needs to wait for another thread to complete it's work the this must be manually coded for all such operations. Care must then be to ensure that threads to not both end up in a state where they are waiting for each other.

For things like games, it is often not worth doing this detailed design and a lot of the tasks suitable for parallel processing such as matrix operations are instead offloaded to the GPU which is much more appropriate for this type of operation, leaving you with only a single HT core used on the main processor.

Disabling multiple cores or HT is an option that is available in order to support legacy applications that do not run well (or indeed at all) under a true multithreaded environment. However, this simply has the effect of turning off the other cores or turning off the parts of the processor that deals with the HT capabilities. This will not result in any increase in performance at all. In fact it can basically be guaranteed to decrease performance because even in your case where the game is only using one core, other background tasks can still be performed on the other cores. If you were to disable this then your game would be slowed down by the operating system sharing the core used by your game with the other background tasks in the system.

Edit: Also see this question. The windows task scheduler will basically make sure that if one thread is using a hyperthreaded core heavily it should not schedule many tasks to use the other virtual half of the core. This will, however, still show up as 50% utilisation although the effective utilisation may be higher.

  • One question - performance for applications, running 1 thread with hyper-threading equals (or similar) performance without? – ShadowPrince Feb 5 '14 at 20:24
  • Performance will be similar, maybe better with HT (colloquially, and I have not tested!). Remember that even if an application is single threaded there are always other processes running in the system which are competing for processor time. HT just enables these to be run more efficiently by utilizing parts of the pipeline that are unused by your single threaded application. Without HT the single threaded process would be stopped completely to run whatever other process needs to run. – zelanix Feb 5 '14 at 22:16
  • This also depends on how intelligently the OS is assigning affinity to processes. In theory it knows that a single threaded application is heavily utilizing half a HT core and so will not schedule anything to the other half. In this case, the single threaded process will be running at the highest performance possible. – zelanix Feb 5 '14 at 22:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.