What are the benefits of Hyper Threading?

Discussion in 'iMac' started by andrewfields88, Nov 6, 2009.

  1. andrewfields88 macrumors newbie

    Joined:
    Apr 30, 2006
    #1
    My understanding is that the Hyper Threading on the i7 creates 8 virtual cores, but what practical benefits will this give me as a video editor? How significant an advantage will I have with the i7 over the i5? I intend to get one of the quad cores with 8GB of RAM, Final Cut Studio and possibly Logic Pro 7.
     
  2. netkas macrumors 65816

    Joined:
    Oct 2, 2007
    #2
    nothing if it cant use more than 4 cores
     
  3. Rapmastac1 macrumors 65816

    Rapmastac1

    Joined:
    Aug 5, 2006
    Location:
    In the Depths of the SLC!
    #3
    Most apps are just barely supporting dual core. I don't think it was in Apple's best interest to put quad cores in these machines because they won't be put to use for another 2+ years. By the time the newer updated iMacs come out, applications will start supporting more than 2 cores, but 8 cores is nowhere near anytime soon.

    I would honestly stick with the i5 if you plan on having the iMac for more than 3 years. If you know you are going to upgrade to the newest iMac in two years time, I would just get the C2D.
     
  4. MacHamster68 macrumors 68040

    MacHamster68

    Joined:
    Sep 17, 2009
    #4
    hyper threading is something you have to believe in that it makes your computer faster as only programs who can take advantage of this technology will run faster others who cant will slow down dramatically
    and there are not many who can
    i had worked with windows systems using pentium 4 processors with hyper threading ,hmm to be honest most of the time it was better not to bother to enable it
    its like if i make you believe you have 4 hands ... now i tell you to write on two keyboards with 10 fingers on each , but you still have only 2 hands in reality only your brain thinks you have four

    just read about hyper threading
    http://en.wikipedia.org/wiki/Hyper-threading
     
  5. Poonaka macrumors member

    Joined:
    Sep 30, 2009
    #5
    The P4s were terrible with hyper-threading on. However the i7 version is supposed to be vastly superior.
     
  6. Poonaka macrumors member

    Joined:
    Sep 30, 2009
    #6
    You'd have to ask Apple if those products would benefit from using more cores. Otherwise the i5 is probably fine unless you are also running a bunch of other cpu hungry apps at the same time.
     
  7. sfroom macrumors regular

    Joined:
    Apr 30, 2008
    #7
    As it's been discussed in other threads, Hyper threading makes the processor faster at executing inefficient, multi-core aware code.

    If the code is written efficiently, hyper threading offers little advantage, because all 4 cores will be operating at 100%. However, if the code is executing inefficiently, you might have 4 cores operating at 60%, in which case, a Hyperthreading enabled processor starts sending computations to the cores not operating at 100%, to complete in their spare cycles.

    This is an overly simplistic explanation, but you get the idea.

    I don't know about the specific Applications you plan to work with, but I do know that where Hyperthreading shines the most is in video encoding, for what it's worth.

    For the average consumer, I'd highly recommend sticking with the i5, unless money isn't an issue. In your case, I think it might warrant a little more research, or at least waiting for the benchmarks from barefeats.
     
  8. MacHamster68 macrumors 68040

    MacHamster68

    Joined:
    Sep 17, 2009
    #8
    never trust a test you didn`t forge yourself
     
  9. Serif macrumors regular

    Joined:
    Jul 10, 2008
    Location:
    UK
    #9
    OK I'll bite :)

    Firstly, a Wikipedia search will probably explain this better than I can, but I'll give it a shot anyway. Hyperthreading is an attempt to make use of a processor core when the thread currently running on it is stalled because of a memory fetch.

    A core has a whole bunch of functional units on it, adders, multipliers, instruction schedulers etc. that will be sitting there idle because of a cache miss or getting a branch prediction wrong. The theory goes that for a small extra investment in chip complexity you can put an extra register set on the core, providing the context for a second thread, and the logic to switch between these two threads at a very fine grain of scheduling; essentially giving control to one thread for a few instructions until it would stall and then automatically switching to the other in the hope that it can now run. It's analogous to the switching between threads on a single core that is done by the OS, but is handled by the hardware directly at a much lower level.

    The downside of this is that if you keep a core working flat out then it will get hot, and to keep things under control the hardware will throttle back the clock, effectively cutting down the number of instructions executed per second. It does however look as though the i7 architecture has made the right tradeoffs for hyperthreading this time though; if you have enough threads running for hyperthreading to make a difference then an i7 will outperform an i5 doing the same job.

    A couple of things to keep in mind. Grand Central Dispatch (GCD) is being pushed to developers as an easy way of taking advantage of processors with lots of cores, and also a good way of using the huge power of GPUs for some type of tasks. The hardware companies are not increasing clock rates at the rate they were and are instead increasing the number of cores; a hundred core processor was announced this week. To take advantage of newer processors, developers are going to have to learn how to split work loads into multiple threads so you're already seeing some types of applications making good use of these chips and I'm sure lots more will follow.

    As for myself I'm putting my money where my opinion is. I do programming in a language called Erlang that can make full use of as many cores, either real or hyperthreaded, as it has available. I'll be stumping up for an i7 before the end of this year. I think the cost difference between the i5 and the i7 is worth it in terms of extending the useful lifetime of the machine as more and more consumer level applications take advantage of GCD and similar technologies.
     
  10. psingh01 macrumors 65816

    Joined:
    Apr 19, 2004
    #10
    Remember even if HT doesn't help much, the i7 iMac (2.8/3.46ghz) still has a faster clock speed than the i5 (2.66/3.2ghz). The 2nd number is the max clock with "turbo boost".
     
  11. ibwb macrumors regular

    Joined:
    Mar 7, 2006
    #11
    "Poorly written" is the wrong way to put it. At the assembly level the code is written by a compiler and everyone is using pretty much the same compilers.

    The benefits from hyperthreading depend on a lot of esoteric details, like how frequent branch mispredictions or cache misses are. These are not necessarily things that a programmer can control, even if they are very good and spend a lot of time on it, which basically nobody does. A whole lot depends on the nature of what you're trying to do -- does it involve a lot of decision points and branching? Are you working with a data set too large to fit in the cache? Etc.
     
  12. ma2ha3 macrumors regular

    ma2ha3

    Joined:
    Mar 13, 2007
    #12
    turn it off, waste of energy and heat.
    OS and software has not catch up with having so many cores.

     
  13. sfroom macrumors regular

    Joined:
    Apr 30, 2008
    #13
    Fixed. :) My intention wasn't to offend any coders out there! :) It was an explanation for laymen, written by a layman. I think it captures the general idea though.
     
  14. 300D macrumors 65816

    300D

    Joined:
    May 2, 2009
    Location:
    Tulsa
    #14
    People that think there is no software that can use 4 cores don't know what they're talking about. Nearly any program ever written for OSX will use all the cores it can.
     
  15. andyOSX macrumors member

    Joined:
    Dec 6, 2008
    Location:
    Vancouver, BC
    #15
    Wow, you are really clueless. People like you who are so misinformed yet go around blabbing as if they are some authority are really a menace on forums like these.

    Apple has been using dual processor machines since before 2000. So yeah, since OS X 10.0 developers have been writing multithreaded code. Pretty much everything written for OS X is multithreaded. Pro Apps like Final Cut Studio certainly take advantage of 8 or more cores and Hyper-Threading, especially Compressor.

    Even for consumers, handbreak is a great example of something that can use all 8 cores. God, even a radial blur in Photoshop CS4 can use all 8 cores.
     
  16. tri3limited macrumors 6502

    Joined:
    Jun 5, 2008
    Location:
    London
    #16
    Mate, if you're serious about video get a Mac Pro. Once you learn more and more about it you'll want to add monitoring via SDI/HDSDI which you'll need something like a Kona/BMD/Matrox card for which aren't compatible with iMacs. Also programs like Motion and Color utilise the GPU more than the processor so being able to insert better graphics is key. Raid is also highly important if you start dealing with uncompressed material, and if you're planning on gaining clients there will be a point where a client wants to work uncompressed.

    For the money you'd spend on the i7 it would be far better for you video future going to the Pro. Certainly if you're looking to make back the money spent on it via freelancing.
     
  17. Hellhammer Moderator

    Hellhammer

    Staff Member

    Joined:
    Dec 10, 2008
    Location:
    Finland
    #17
    Good joke man. Photoshop doesn't even support quad-core
     
  18. ksz macrumors 68000

    Joined:
    Oct 28, 2003
    Location:
    San Jose, CA
    #18
    Thank you for the first cogent and concise explanation of Hyperthreading that I've encountered.
     
  19. 300D macrumors 65816

    300D

    Joined:
    May 2, 2009
    Location:
    Tulsa
    #19
    That is correct. People, open Activity Monitor, right click on the columns and check "# Threads".

    Even Microsoft Messenger has 8 threads, meaning it can use 8 CPU cores. Granted it will never use that much power, but if even the lowly MS Messenger has the ability to use it then nearly everything else will.
     

    Attached Files:

  20. reebzor macrumors 6502a

    reebzor

    Joined:
    Jul 18, 2008
    Location:
    Philadelphia, PA
    #20
    Glad it took until the 9th post for someone to mention GCD.

    GCD is why you'll like having 8* cores.
     
  21. TMRaven macrumors 68020

    TMRaven

    Joined:
    Nov 5, 2009
    #21
    Lol. You're confusing two different types of threads.

    Those are just simple command threads the cpu allocates to each application/utility-- otherwise known as multithreading, or multitasking; every cpu can do that. If it's a single core cpu then it'll alternate between each thread at a very fast speed to multitask. Multi-cored processors can share the threads between themselves simultaneously. My firefox is currently using 15 threads but that doesn't mean it will benefit from 15 virtual cpu cores.
     
  22. 300D macrumors 65816

    300D

    Joined:
    May 2, 2009
    Location:
    Tulsa
    #22
    Lol. You just contradicted yourself and said exactly what I explained in the previous post.
     
  23. TMRaven macrumors 68020

    TMRaven

    Joined:
    Nov 5, 2009
    #23
    I perhaps worded it wrong, I'll try to reiterate.
    However you did not explain anything in your post, you just showed a picture of your activity monitor.

    A processor assigns threads to certain applications and tasks. The higher amount of threads to a certain task, the more executions are being ran for that task.

    All processors have the ability to multithread, otherwise they would be useless for multitasking. Single core processors multithread by rapidly switching between threads, thus affecting multitasking capabilities. Multicored processors can share those threads between their cores and execute them simultaneously, thus resulting in better multitasking performance. Whereas my G5 processor can only handle 1 thread at a time, a hyperthreaded lynnfield processor can handle 16 threads at a time-- but that only depends if the program is built to recognize multiple cores.

    Now according to your activity monitor, your firefox is using 18 threads, but mine is only using 15 threads. Does that make your firefox better in that it can take advantage of 18 cpu cores but mine only 15? You're basically confusing a "thread," which is a very fundamental part of a cpu's mechanics, to the ability to use x number of cpu cores.

    In theory any program that uses lots of threads can benefit from multiple cored cpus, but unless they're coded to do so, they will not be compatible with multiple cored cpus.
     
  24. 300D macrumors 65816

    300D

    Joined:
    May 2, 2009
    Location:
    Tulsa
    #24
    Once again, you've said exactly what I explained. :rolleyes:

    It means I've got more tabs open and/or more add-ons installed.

    You don't seem to grasp the basic fundamentals of whats being discussed here, you have repeatedly contradicted yourself in every post and repeat (reword) exactly what I had already explained the first time.
     
  25. TMRaven macrumors 68020

    TMRaven

    Joined:
    Nov 5, 2009
    #25
    Basic fundamental discussion? Contradicting myself? Saying what you have explained? You have explained nothing in this thread.

    The basic fundamental discussion is your believing that applications in mac osx are readily available to accept and benefit from multi-cored architecture by pulling up some numbers in activity monitor. Those numbers have nothing to do with the programs' abilities to accept multi-cores and parallel threading.

    This is all you have explained in the topic.
    Please pull the contradiction card again, I do insist.
     

Share This Page