MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: activate more than one core in Mathematica 6.0 (for win)?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg79780] Re: activate more than one core in Mathematica 6.0 (for win)?
  • From: michael.p.croucher at googlemail.com
  • Date: Sat, 4 Aug 2007 05:54:18 -0400 (EDT)
  • References: <f8v18h$db8$1@smc.vnet.net>

On 3 Aug, 11:49, kristoph <kristophs.p... at web.de> wrote:
> Hi,
>
> How can Mathematica 6.0 use more than one core of a quad core cpu
> under Windows Vista? During calculations the system requires only 25 %
> of its capacity. This implies that it uses only one of the four cores.
>
> Thanks for answer,
> Kristoph

Hi Kristoph

As far as I know it is only certain linear algebra functions that
automatically make use of multiple cores.  On my dual core laptop
under windows and Mathematica 6 this seems to be working by default.
For example If I do

Timing[
 a = RandomReal[1, {1000, 1000}];
 b = SingularValueDecomposition[a];
 ]

I get a time of 5.9 (ish)  seconds.

Now in Mathematica 5.2 you could set the number of threads using the
operating system environment variable OMP_NUM_THREADS so I tried
setting this to 2 to see what happened - nothing!  The time stayed the
same.  However if I set it to 1 then the timing came out at 8.9
seconds.  This leads me to the conclusion that Mathematica 6
automatically makes use of multiple cores when it can but you can over-
ride its behavior using OMP_NUM_THREADS,   What would be nice is a
list of functions that makes use of multiple processors/cores.  I
think it is only certain BLAS/Lapack functions but am not sure.

As for Linux - I am confused!  I dual boot into Ubuntu on the same
laptop and this also has Mathematica 6.  The only thing that has
changed is the operating system - everything else is the same but I
get the following timings for the above code (to 1dp)

OMP_NUM_THREADS unset gives 8.8 seconds
OMP_NUM_THREADS=1 gives 8.5 seconds
OMP_NUM_THREADS=2 gives 8.8 seconds

using top I see the processor usage going over 100% when using 2
threads so it seems to be using both cores (only goes up to 100% on
one core). But using 2 cores is slower than one core and everything is
always slower than when I use my windows partition - so something is
messed up!

Best Regards,
Mike



  • Prev by Date: Re: Integration with non-numeric parameters
  • Next by Date: Re: Integration with non-numeric parameters
  • Previous by thread: Re: activate more than one core in Mathematica 6.0 (for win)?
  • Next by thread: Re: activate more than one core in Mathematica 6.0 (for win)?