You can set the NumThreads property of your cluster object. For example:
c = parcluster
c.NumThreads = 2;
j = batch(c, @eval, 0, {'spmd, maxNumCompThreads, end'}, 'Pool', 3);
wait(j), diary(j)
demonstrates that each worker in this case is using 2 computational threads.
