Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab and Hyperthreading/Dual cores

  1. Jun 3, 2007 #1
    I recently noticed while crunching some CFD numbers in Matlab that only 50% of my HT processor is being used. I understand basicly that HT is an early imitation of dual core. I assume if i turn off HT i will regain my lost cycles.

    My question is regarding an invedible upgrade to my rig, which in this day and age most likely means dual core. Does matlab take the same "hit" from dual core?

  2. jcsd
  3. Jun 3, 2007 #2
    No cycles are lost. A dual core processor and hyperthreading are two different things.

    Matlab was not designed as a multi/threaded application, which I think is rather embarrasing. Version R2007a seems to allow some multiple threads but I am not sure if this was some kind of a hack or an elegant redesign. Note that just because an application is called multi threaded that does not mean it´s throughput increases linearly with multiple cores. Every application can be made multi threaded with tons of synchronization locks which in the end can even make it slower instead of faster.

    I found a document that gives a summary http://www.mathworks.com/support/solutions/data/1-372IPG.html?1-372IPG" [Broken]
    Last edited by a moderator: May 2, 2017
  4. Jun 3, 2007 #3


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    A hyperthreaded processor has two execution contexts (i.e. it appears to the outside world to have "two processors") yet has only one processor's worth of function units. In other words, when one context is using part of the chip -- say, an adder -- the other context cannot.

    In certain kinds of situations, when you're running two programs which do very different things, there may not be much competition for function units, and your programs may well run much faster.

    On the other hand, when you're running a single thread on a single context, or running two programs which need the same function units, you will not see any improvement at all.

    - Warren
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook