Matlab and Hyperthreading/Dual cores

  • Context: MATLAB 
  • Thread starter Thread starter 600burger
  • Start date Start date
  • Tags Tags
    Matlab
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 17K views
600burger
Messages
63
Reaction score
0
I recently noticed while crunching some CFD numbers in Matlab that only 50% of my HT processor is being used. I understand basically 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?

-Thanks!
 
Physics news on Phys.org
600burger said:
I recently noticed while crunching some CFD numbers in Matlab that only 50% of my HT processor is being used. I understand basically that HT is an early imitation of dual core. I assume if i turn off HT i will regain my lost cycles.
No cycles are lost. A dual core processor and hyperthreading are two different things.

600burger said:
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?
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"
 
Last edited by a moderator:
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