Hi Samuel,
I saw a very similar problem with my quad-core PC running XP (32 bit)
with 4gigs of ram. I re-ran my test script on our two-core, 4-gig
linux box and got similar results with just slightly different array
sizes. Here is the script I ran:
cpu, /reset
help, !cpu, /str
Nk = 258
K = fltarr(Nk, Nk)
;
; Case 1.
;
Npix = 129047
d = fltarr(Npix, Nk)
t0 = systime(1)
d #= K
t1 = systime(1) - t0
print, 'Case #1: ', Npix, t1
;
; Case 2.
;
Npix = Npix + 1
d = fltarr(Npix, Nk)
t0 = systime(1)
d #= K
t2 = systime(1) - t0
print, 'Case #2: ', Npix, t2
On each of our computers case #2 used all available cores while case
#1 only used one core. The only difference between them is the
dimension of one of the arrays (Npix) is simply incremented by one.
The total memory used by the IDL process during this test is never
more and two-hundred megs or so. There is no way this problem is due
to a lack of physical memory. The sizes of these arrays are also
significantly larger then the default minimum number of elements
(default = 10000) required to enable multi-threading.
Any ideas?
Pierre


|