MATLAB Matlab and Hyperthreading/Dual cores

  • Thread starter Thread starter 600burger
  • Start date Start date
  • Tags Tags
    Matlab
AI Thread Summary
Matlab's performance on hyperthreaded processors can be limited, as it often only utilizes about 50% of the CPU's capabilities. Hyperthreading is not equivalent to dual-core processing, and turning off hyperthreading may not necessarily improve performance. Matlab is primarily designed as a single-threaded application, which means it does not fully leverage multi-core architectures, even with updates in newer versions. While dual-core processors can enhance performance in certain scenarios, they do not guarantee linear improvements due to potential synchronization issues. Overall, users may not see significant gains from upgrading to dual-core if their applications do not effectively utilize multi-threading.
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 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?

-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 basicly 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
 
Back
Top