Vienna Symphonic Library Forum
Forum Statistics

182,167 users have contributed to 42,207 threads and 254,681 posts.

In the past 24 hours, we have 1 new thread(s), 9 new post(s) and 44 new user(s).

  • Is VE Pro optimized for hyper-threading?

    Hey Vienna,

    I'm currently trying to figure something out on my Nehalem Mac Pro with 8-cores.  Intel introduced the hyperthreading technology with these computers which brings the level of virtual cores up to 16, doubling the amount from 8.  And In VE Pro's preferences, I have the option for using all 16 threads.  I however find that I use less CPU with putting that thread count down to 1, 2, or 3 since I'm using 13 instances of VE Pro on my orchestral template.

    But here's the weird part, VE Pro is by far the biggest CPU user on my computer, yet when I look at my iStat application, it only shows every other core (of the 16 cores/virtual cores) being used to its full potential.  It looks as if most of the regular cores are being used to about 40-70% while the virtual cores are sitting at 10%.  The link below goes to a picture of what I'm talking about.

    http://att.macrumors.com/attachment.php?attachmentid=243214&d=1280812451

    Now I'm not sure if this is just a OSX issue, or what.  But I know that in some other software, like rendering, when actually enter rendering, it full utilizes all 16 cores/virtual cores.

    So how does VE Pro handle hyper-threading?  Is there any way to enhance the performance?

    Thanks,

    ea


  • Are you using  Logic? If so then that will only be using 8 or your cores, virtual or otherwise. This could account for some of them being used more than others. if you are not using Logic, then I have no idea. Certainly I don't have any cores on my machine generally being used more than others.


  • CPU measurement in a hyperthreading context is not very easy. Hyperthreading was introduced to better handle execution stalling, due to branch misprediciton, cache misses etc. Since the HT-enabled CPU's have two architectural states per core, it allows switching to a different thread context during a stall. Depending on the threads running on a specific core, you can end up with a scenario where one virtual core measures 80%, while the other virtual core measures 20%, but it does not automatically mean that you have another 80% of a full virtual core available. Running an extra thread might even decrease total performance, due to cache L2/L3 pollution and so on. The whole thing gets kind of complex to be honest...

    In my own tests I can see a benefit in using up as many virtual cores as possible. Don't care about what the CPU meter reads, just see how much you can run before getting problems.


  • Yeah I've definitely figured out that hyper-threading is way complex.  Thank you for the reply Martin.

    Just out of curiousity, you said that you can see the benefit of using up as many virtual cores as possible.  Would you mind explaining a little more about how you see the benefit?  I'm sure I'm benefiting from it (since I have nothing really to compare it to), and I would just like to see how much I can make my machine run better.  Any recommendations other than what I've already said?  (putting the multi-threading in preferences down to a lower setting)

    Also, is there a reason that you don't use Grand Central Dispatch for Snow Leopard?  I don't know much about the programming of it, but it seems like an interesting way to spread out the CPU.

    Thanks again,

    ea