windows - Again about Hyper Threading

05
2014-04
  • ShadowPrince

    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.

  • Answers
  • zelanix

    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.

  • Damon

    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.


  • Related Question

    cpu - What is hyper-threading and how does it work?
  • Gordon Gustafson

    I've heard the term hyper-threading thrown around a bit recently, what exactly is hyper-threading and why is it important?


  • Related Answers
  • Josh K

    Hyper-threading is where your processor pretends to have 2 physical processor cores, yet only has 1 and some extra junk.

    The point of hyperthreading is that many times when you are executing code in the processor, there are parts of the processor that is idle. By including an extra set of CPU registers, the processor can act like it has two cores and thus use all parts of the processor in parallel. When the 2 cores both need to use one component of the processor, then one core ends up waiting of course. This is why it can not replace dual-core and such processors.

  • CJM

    Hyper-Threading is where two threads are able to run on one single-threaded core. When a thread on the core in question is stalling or in a halt state, hyper-threading enables the core to work on a second thread instead.

    Hyper-threading makes the OS think that the processor has double the number of cores, and often yields a performance improvement, but only in the region of 15-30% overall - though in some circumstances, there may actually be a performance hit (=<20%).

    Currently, most Atom chips and all i7 (and Xeon-equivalent chips) have hyper-threading, as did some older P4s. In the case of the Atoms, it's a desperate attempt to improve performance without increasing power consumption much; in the case of i7s, it differentiates them from the i5 range of chips.

    Complex processing work won't benefit much from HT, but certain (simple, highly multi-threaded) tasks, such as video encoding, benefit from HT. In reality, there is not a lot in it...