[torqueusers] MATLAB and cpusets

Martin Thompson martin.thompson at unsw.edu.au
Wed Dec 15 03:22:16 MST 2010


I suspect this is purely a MATLAB problem, but I thought I'd check if
anyone here has encountered it.

I have a cluster with CentOS 5.5 installed on each node.  I am using
Torque 2.4.11 configured with --enable-cpuset.  Each compute node
has /dev/cpuset mounted.

Submitting multithreaded jobs such as code compiled with OpenMP, MKL or
ATLAS all work as I would expect.  These jobs only get access to the
number of cpu cores requested and they are able to fully utilise them.
However, MATLAB does not behave as expected.  If a MATLAB job requests a
subset of the available cores on a compute node, say 6 out of 12, then
it will use those 6 cores if it is the only job running on that node.
However, if another job was already running on that node, say using the
other 6 cores, then MATLAB will not use its full allocation of cores.
In most of my tests, using MATLAB 2008b, 2009b and 2010b, it will only
use a single core instead of the 6 that are available.  Sometimes I have
seen MATLAB 2009b use 2 cores.  The MATLAB test I use to investigate
this problem is just the multiplication of two random 8000x8000
matrices.

Any ideas?

Many thanks

Martin




More information about the torqueusers mailing list