IDL Matrix Multiply and Dual-Core CPUs [message #60258] |
Fri, 09 May 2008 07:27 |
s.haenger
Messages: 4 Registered: May 2008
|
Junior Member |
|
|
Hi,
I have a Problem with IDL 7.0
We have to multiply large matrices. With some matrix sizes, the CPU
usage is 100% but for most of the matrices it is 50%. (I'm runnning it
on a Intel T7250 (Dual Core, 2GHz, 2MB L2 Cache))
The CPU System Variable is configured like this:
IDL> print, !CPU
{ 0 0 2 2
100000 0}
Now we do this:
matA = randomn(42, 2000, 2200)
matB = randomn(43, 2020, 2000)
matIdl = matA##matB
So now i've got a CPU usage of 100%
but with this:
matA = randomn(42, 2500, 2500)
matB = randomn(43, 2520, 2500)
matIdl = matA##matB
the cpu usage is around 50%-60%
I've already tried to increase the TPOOL_NTHREADS and to decrease the
TPOOL_MIN_ELTS! It didn't help!
We throught it could be because the size (2500*2520=) produces an
overflow and the matrix size gets too small or negative, so IDL uses
just 1 thread to compute.
Does anybody know how I can fix that problem?
Thanks a lot
Samuel
|
|
|