hyperthreading - what's it for?

Discussion in 'MacBook Pro' started by ljova.com, Apr 13, 2010.

  1. ljova.com macrumors member

    Joined:
    Oct 1, 2002
    #1
    hi guys, can I ask a stupid question -- what's "hyperthreading" good for?

    I read the news of the MacBookPro refresh yesterday, and came away with the sense that the 13" C2D MBP might actually be "faster" - unless you happen to be taking advantage of turboboost and hyperthreading functions.

    Are these app-specific advantages / do apps have to be coded differently to take advantage of them? I work predominantly in recording audio for film, so I deal a fair bit with uncompressed multitrack audio.

    Just to kvetch - I'm really not at all excited about upgrading my 3.5-year-old MacBookPro to one of the new ones, as it works fine 90% of the time. But seeing as it is out of warranty and shutting down on me every other day unexpectedly, I'm tempted to give in - especially if the OS reinstall doesn't fix much, which is what I'm trying ascertain right now.

    Many thanks!
     
  2. csnplt macrumors 6502

    csnplt

    Joined:
    Aug 29, 2008
    Location:
    Chicago Area
    #2
    Hyperthreading enables each core to show up as two to the OS, letting an application utilize 4 concurrent threads rather than 2. Basically, you'll see an increase in performance in certain apps (such as video encoding) and perhaps in general multitasking.

    The Core i5 and i7 are much faster than the Core 2 Duo at the same clockspeed, and the 15 and 17 inchers should be much faster than the 13'' (they also have a much better GPU, as well). Apple states that a 2.66 GHz new MBP vs. a 2.8 GHz Core 2 Duo old MBP is up to 50% faster, even though it is "slower" in its clockspeed. This is due to architectural improvements in the newer processors.

    The i5 and i7 also have a built in memory controller which should result in much higher memory bandwidth than on the Core 2 Duo version, though you may not notice this much in real usage.

    One other advantage of the i5 and i7 is their ability to dynamically overclock themselves, especially if one core is under-utyilized and another is maxed out. The 2.66 GHz i7, for example, can boost one of its cores to 3.33 GHz (I'm pretty sure) if it needs to do so. Intel calls this Turbo Boost.
     
  3. MikhailT macrumors 601

    Joined:
    Nov 12, 2007
    #3
    In the most simplistic terms, it means the CPU can do extra work per clock by telling the OS that it has more logical cores. For example, a non-HT enabled dual core CPU only has two physical cores and shows that to the OS. The HT enabled dual-core CPU while it has two physical cores, it shows up as four logical cores to the OS. It's telling the OS that it can do four different things at the same time instead of two.

    The turbo boost feature is basically the ability for the CPU to power down a few of the cores to increase the clock speed of one or two of the cores for faster performance. This boost the performance for the single-threaded applications. Not every application can do more than one work at a time, so a CPU with two or four cores would not be able to give those single threaded applications all the speed since the CPU is equally split between the cores. Once the single thread application starts to run, the turbo boost will kick in and give the fastest possible performance.
     
  4. TheRekz macrumors regular

    Joined:
    Sep 3, 2008
    #4
    Threading is basically splitting a process execution into two... it's basically like having two people doing the same task and in the end they meet at the finish line when the execution is done.
     
  5. ljova.com thread starter macrumors member

    Joined:
    Oct 1, 2002
    #5
    thank you everyone, all the replies seem pretty clear.
    one thing I wanted to confirm -- to take advantage of HT, no app needs to be somehow re-written.. i.e. the HT assignment is being done by the OS and/or the processor itself.. yes?

    thanks again. i'm warming up to the idea of upgrading.
    i'll definitely miss my expresscard slot and FW400 port, but there are plausible workarounds (for example - a USB-to-Expresscard adapter).
     
  6. MikhailT macrumors 601

    Joined:
    Nov 12, 2007
    #6
    Nothing needs to be done to take advantage of the HT, the whole point of HT is to "fool" the OS into thinking it is a "quad-core" CPU instead of a dual-core CPU. The OS will handle all the work for the applications of any thread capability. For applications to perform faster and better with multiple cores, they need to be coded for it (they need to be able to fork (create) processes/threads for the tasks), but it's not a requirement.

    Think about a book with chapters and a book with no chapters. A software with two or four cameras to scan the work, it's far easier and faster for the software to scan several chapters at same time with separate cameras than it is to scan the whole book at once since there's no way for the dumb software to know how to split the tasks at same time for each camera. It's a bad example but it fits the concept. Turbo boost in this case means three cameras will shut down to give one camera the ability to scan each page at much faster pace without getting slowed down by the other cameras.
     
  7. dusk007 macrumors 68040

    dusk007

    Joined:
    Dec 5, 2009
    #7
    Really? Because I'd say the explanations don't really explain anything.
    What HT really does is try to increase utilization of the resources in a CPU. A CPU splits up bigger commands into small ones, trys to figure out which ones it can handle in parallel because they do not depend on each other. A CPU has i.e. an Floating point unit and an ADD unit, both can do work simultaneously. This splitting also happens with just one thread in the work.
    Managing two threads at once (threads are designed to be parallel thus not dependent on each other) just makes it easier for the CPU to use more of the resources parallel. If one thread is just doing some integer calculations and the other is doing floating point they can be processed at the same time.
    HT is cheap in terms of transistors and extra power consumption compared to how much in performance gains it CAN produce.

    HT is completely done by the CPU and transparent to the OS. Everything that supports multiple cores support HT too.

    PS: HT can decrease performance as one single thread is not necessarily processed in the fastest possible way. Games used to be worse and still are sometimes when HT is enabled compared to disabled. Because the OS doesn't know what it is doing and sometimes hands the two most resource hungry threads to just one real core (2 logical). This improved with Arrendale as most Games now are optimized to use up to 4 threads usually today and in general there is neither a benefit not a penalty in games today. The 8 logical cores of Quad Core Nehalems react different.
    HT is not an improvement all over the place.
     

Share This Page