Thursday, October 19, 2006

Matlab dual core 100% or 50% CPU

[UPDATE: If you're searching for ways to better use your multiple cores, the R2007a release seems to support multithreaded computations. More on this on my recent post.]

I recently discovered that A LOT of my blog visitors came by searching things like "matlab dual core 100% CPU" (sometimes it's 50%). They are redirected to a post I wrote half a year ago. Apparently, people are having a lot of problems using Matlab properly on a dual-core machine. I've been contacted by emails by a few people, all complaining of the exact same problem: they recently purchased a dual-core machine. When the machine starts up, the matlab.exe process takes up 50% and doesn't release it (before even opening Matlab). They then open Matlab, which creates another instance of matlab.exe for which they have now only one free core. And that's not the end of it - the second matlab.exe process seems to be as CPU-hungry as the first one. Even after the initialization stage is over, it keeps taking up 50% CPU.

Bottom line - it takes a long time for the machine to start up, and once they open an instance of Matlab, the computer starts crawling like an old 486 machine, stuck with 100% CPU usage.

I don't know whether the problem is with Windows XP or with Matlab. Windows has an issue with dual core machines, as described in their knowledge base, but for some reason they don't make the hotfix available to the public.

If I find out the reason or a workaround, I'll post it. If any of the readers who reach this post find a solution - please let me know or write it in the comments of this post, so others won't have to go through the same ordeal.

No comments: